Skip to content

Commit 10c9bab

Browse files
committed
feat: implemneted assertEventPushedChain
1 parent e789a97 commit 10c9bab

File tree

6 files changed

+31
-20
lines changed

6 files changed

+31
-20
lines changed

tests/ControllerGeneratorTest.php

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -75,16 +75,13 @@ public function testSuccess()
7575
$this->assertGeneratedFileEquals('created_controller.php', 'app/Http/Controllers/PostController.php');
7676
$this->assertGeneratedFileEquals('api.php', 'routes/api.php');
7777

78-
Event::assertDispatchedTimes(SuccessCreateMessage::class, 6);
79-
Event::assertDispatched(SuccessCreateMessage::class, function ($event) {
80-
return in_array($event->message, [
81-
"Created a new Route: Route::post('posts', [PostController::class, 'create']);",
82-
"Created a new Route: Route::put('posts/{id}', [PostController::class, 'update']);",
83-
"Created a new Route: Route::delete('posts/{id}', [PostController::class, 'delete']);",
84-
"Created a new Route: Route::get('posts/{id}', [PostController::class, 'get']);",
85-
"Created a new Route: Route::get('posts', [PostController::class, 'search']);",
86-
"Created a new Controller: PostController",
87-
]);
88-
});
78+
$this->assertEventPushedChain([
79+
SuccessCreateMessage::class => "Created a new Route: Route::post('posts', [PostController::class, 'create']);",
80+
SuccessCreateMessage::class => "Created a new Route: Route::put('posts/{id}', [PostController::class, 'update']);",
81+
SuccessCreateMessage::class => "Created a new Route: Route::delete('posts/{id}', [PostController::class, 'delete']);",
82+
SuccessCreateMessage::class => "Created a new Route: Route::get('posts/{id}', [PostController::class, 'get']);",
83+
SuccessCreateMessage::class => "Created a new Route: Route::get('posts', [PostController::class, 'search']);",
84+
SuccessCreateMessage::class => "Created a new Controller: PostController",
85+
]);
8986
}
9087
}

tests/NovaResourceGeneratorTest.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public function testCreateWithMissingNovaPackage()
2929
->setModel('Post')
3030
->generate();
3131

32-
$this->assertGeneratorEventPushed(
32+
$this->assertEventPushed(
3333
className: SuccessCreateMessage::class,
3434
message: 'Nova is not installed and NovaResource is skipped',
3535
);
@@ -82,7 +82,10 @@ public function testCreate()
8282

8383
$this->assertGeneratedFileEquals('created_resource.php', 'app/Nova/PostResource.php');
8484

85-
Event::assertDispatched(SuccessCreateMessage::class);
85+
$this->assertEventPushed(
86+
className: SuccessCreateMessage::class,
87+
message: 'Created a new Nova Resource: PostResource',
88+
);
8689
}
8790

8891
public function testGetModelFieldsFromDatabase()

tests/NovaTestGeneratorTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public function testCreateWithMissingNovaPackage()
7676
->setModel('Post')
7777
->generate();
7878

79-
$this->assertGeneratorEventPushed(
79+
$this->assertEventPushed(
8080
className: SuccessCreateMessage::class,
8181
message: 'Nova is not installed and NovaTest is skipped',
8282
);

tests/SeederGeneratorTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public function testCreateSeederWithOldConfig()
5454
->setModel('Post')
5555
->generate();
5656

57-
$this->assertGeneratorEventPushed(
57+
$this->assertEventPushed(
5858
className: WarningEvent::class,
5959
message: "You are using the deprecated value for 'entity-generator.stubs.database_empty_seeder' config. Please use 'entity-generator::database_empty_seeder'.",
6060
);

tests/Support/GeneratorMockTrait.php

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,4 @@ public function mockPhpFileContent(): string
4141
{
4242
return '<?php';
4343
}
44-
45-
public function assertGeneratorEventPushed(string $className, string $message): void
46-
{
47-
Event::assertDispatched($className, fn ($event) => $event->message === $message);
48-
}
4944
}

tests/TestCase.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Illuminate\Foundation\Bootstrap\LoadEnvironmentVariables;
66
use Illuminate\Foundation\Testing\Concerns\InteractsWithViews;
77
use Illuminate\Support\Arr;
8+
use Illuminate\Support\Facades\Event;
89
use Illuminate\Support\Str;
910
use Orchestra\Testbench\TestCase as BaseTestCase;
1011
use org\bovigo\vfs\vfsStream;
@@ -85,4 +86,19 @@ protected function assertGenerateFileExists(string $path): void
8586
{
8687
$this->assertFileExists("{$this->generatedFileBasePath}/{$path}");
8788
}
89+
90+
protected function assertEventPushed(string $className, string $message): void
91+
{
92+
Event::assertDispatched(
93+
event: $className,
94+
callback: fn ($event) => $event->message === $message,
95+
);
96+
}
97+
98+
protected function assertEventPushedChain(array $events): void
99+
{
100+
foreach ($events as $className => $message) {
101+
$this->assertEventPushed($className, $message);
102+
}
103+
}
88104
}

0 commit comments

Comments
 (0)