Skip to content

Commit cddc7a0

Browse files
author
Chri$
committed
Test:[LAR-60] Add feature test for declined article
1 parent 07500c1 commit cddc7a0

File tree

2 files changed

+48
-2
lines changed

2 files changed

+48
-2
lines changed

app/Http/Livewire/Modals/DeclinedArticle.php

+4-2
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@
77
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
88
use App\Notifications\SendDeclinedArticle;
99
use Illuminate\Support\Facades\Cache;
10+
use Illuminate\View\View;
1011
use LivewireUI\Modal\ModalComponent;
1112
use App\Policies\ArticlePolicy;
1213
use App\Models\Article;
1314

15+
1416
final class DeclinedArticle extends ModalComponent
1517
{
1618
use AuthorizesRequests;
@@ -21,7 +23,7 @@ final class DeclinedArticle extends ModalComponent
2123

2224
public ?Article $article = null;
2325

24-
protected $rules = [
26+
protected array $rules = [
2527
'raison' => 'required|string|min:6',
2628
'description' => 'required|string',
2729
];
@@ -54,7 +56,7 @@ public function declined(): void
5456
}
5557

5658

57-
public function render()
59+
public function render(): View
5860
{
5961
return view('livewire.modals.declined-article');
6062
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use App\Http\Livewire\Modals\DeclinedArticle;
6+
use Illuminate\Support\Facades\Notification;
7+
use App\Notifications\SendDeclinedArticle;
8+
use Spatie\Permission\Models\Role;
9+
use App\Models\Article;
10+
use App\Models\User;
11+
use Livewire\Livewire;
12+
13+
beforeEach(function (): void {
14+
$this->moderatorUser = User::factory()->create();
15+
Role::create(['name' => 'moderator']);
16+
$this->moderatorUser->assignRole('moderator');
17+
$this->article =Article::factory()->create();
18+
19+
$this->actingAs($this->moderatorUser);
20+
});
21+
22+
describe(DeclinedArticle::class, function (): void {
23+
it('Admin or moderator can declined article', function (): void {
24+
Notification::fake();
25+
expect($this->article->declined_at)
26+
->toBe(null);
27+
28+
Livewire::actingAs($this->moderatorUser)
29+
->test(DeclinedArticle::class, [(int) $this->article->id])
30+
->set('raison', 'Manque d\'originalité')
31+
->set('description', 'Malheureusement, après une étude approfondie, nous regrettons de vous informer que votre article n\'a pas été sélectionné pour publication dans notre liste d\'article.')
32+
->call('declined');
33+
34+
Notification::assertSentTo(
35+
[$this->article->user], SendDeclinedArticle::class
36+
);
37+
38+
39+
expect(Article::findOrFail($this->article->id)->declined_at)
40+
->not
41+
->toBe(null);
42+
});
43+
})
44+
->group('address');

0 commit comments

Comments
 (0)