Skip to content

Commit c4dc4d8

Browse files
author
Given Ncube
committed
fix: changed test suite to phpunit and used process isolation to avoid file conflicts
1 parent 2952a65 commit c4dc4d8

File tree

5 files changed

+253
-236
lines changed

5 files changed

+253
-236
lines changed

src/LaravelAuthorizerServiceProvider.php

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,15 @@ public function boot()
3232
{
3333
parent::boot();
3434

35-
AboutCommand::add(
36-
'Laravel Authorizer',
37-
fn () => [
38-
'version' => '0.0.1',
39-
'author' => 'Flixtechs Labs',
40-
'license' => 'MIT',
41-
]
42-
);
35+
if (version_compare($this->app->version(), '9.21.0') >= 0) {
36+
AboutCommand::add(
37+
'Laravel Authorizer',
38+
fn() => [
39+
'version' => '0.0.1',
40+
'author' => 'Flixtechs Labs',
41+
'license' => 'MIT',
42+
]
43+
);
44+
}
4345
}
4446
}

tests/GeneratePermissionsTest.php

Lines changed: 86 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -3,86 +3,99 @@
33
namespace FlixtechsLabs\LaravelAuthorizer\Tests;
44

55
use FlixtechsLabs\LaravelAuthorizer\Commands\GeneratePermissionsCommand;
6+
use Illuminate\Foundation\Testing\RefreshDatabase;
67
use function Pest\Laravel\assertDatabaseHas;
78
use function Pest\Laravel\assertDatabaseMissing;
89

9-
it('can generate permissions', function () {
10-
collect([
11-
'User',
12-
'Post',
13-
'Comment',
14-
'Tag',
15-
'Product',
16-
'Category',
17-
'Order',
18-
'OrderItem',
19-
])->each(
20-
fn ($model) => $this->artisan('make:model', [
21-
'name' => $model,
22-
])
23-
);
10+
class GeneratePermissionsTest extends TestCase
11+
{
12+
use RefreshDatabase;
2413

25-
$this->artisan(GeneratePermissionsCommand::class)
26-
->expectsOutput('Generating permissions...')
27-
->assertSuccessful();
14+
public function testCanAlsoRunTests(): void
15+
{
16+
$this->assertTrue(true);
17+
}
2818

29-
assertDatabaseHas('permissions', [
30-
'name' => 'create post',
31-
]);
32-
assertDatabaseHas('permissions', [
33-
'name' => 'update post',
34-
]);
35-
assertDatabaseHas('permissions', [
36-
'name' => 'delete post',
37-
]);
38-
assertDatabaseHas('permissions', [
39-
'name' => 'create comment',
40-
]);
41-
assertDatabaseHas('permissions', [
42-
'name' => 'update comment',
43-
]);
44-
assertDatabaseHas('permissions', [
45-
'name' => 'delete comment',
46-
]);
47-
assertDatabaseHas('permissions', [
48-
'name' => 'create tag',
49-
]);
50-
assertDatabaseHas('permissions', [
51-
'name' => 'update tag',
52-
]);
53-
});
19+
public function testCanGeneratePermissionsForAllModels(): void
20+
{
21+
collect([
22+
'User',
23+
'Post',
24+
'Comment',
25+
'Tag',
26+
'Product',
27+
'Category',
28+
'Order',
29+
'OrderItem',
30+
])->each(
31+
fn($model) => $this->artisan('make:model', [
32+
'name' => $model,
33+
])
34+
);
5435

55-
it('can generate permission for just one model', function () {
56-
collect([
57-
'User',
58-
'Post',
59-
'Comment',
60-
'Tag',
61-
'Product',
62-
'Category',
63-
'Order',
64-
'OrderItem',
65-
])->each(
66-
fn ($model) => $this->artisan('make:model', [
67-
'name' => $model,
68-
])
69-
);
36+
$this->artisan(GeneratePermissionsCommand::class)
37+
->expectsOutput('Generating permissions...')
38+
->assertSuccessful();
39+
40+
$this->assertDatabaseHas('permissions', [
41+
'name' => 'create post',
42+
]);
43+
$this->assertDatabaseHas('permissions', [
44+
'name' => 'update post',
45+
]);
46+
$this->assertDatabaseHas('permissions', [
47+
'name' => 'delete post',
48+
]);
49+
$this->assertDatabaseHas('permissions', [
50+
'name' => 'create comment',
51+
]);
52+
$this->assertDatabaseHas('permissions', [
53+
'name' => 'update comment',
54+
]);
55+
$this->assertDatabaseHas('permissions', [
56+
'name' => 'delete comment',
57+
]);
58+
$this->assertDatabaseHas('permissions', [
59+
'name' => 'create tag',
60+
]);
61+
$this->assertDatabaseHas('permissions', [
62+
'name' => 'update tag',
63+
]);
64+
}
7065

71-
$this->artisan(GeneratePermissionsCommand::class, [
72-
'--model' => 'Post',
73-
])
74-
->expectsOutput('Generating permissions...')
75-
->assertSuccessful();
66+
public function testCanGeneratePermissionForJustTheSpecifiedModel(): void
67+
{
68+
collect([
69+
'User',
70+
'Post',
71+
'Comment',
72+
'Tag',
73+
'Product',
74+
'Category',
75+
'Order',
76+
'OrderItem',
77+
])->each(
78+
fn($model) => $this->artisan('make:model', [
79+
'name' => $model,
80+
])
81+
);
82+
83+
$this->artisan(GeneratePermissionsCommand::class, [
84+
'--model' => 'Post',
85+
])
86+
->expectsOutput('Generating permissions...')
87+
->assertSuccessful();
7688

77-
assertDatabaseHas('permissions', [
78-
'name' => 'create post',
79-
]);
89+
$this->assertDatabaseHas('permissions', [
90+
'name' => 'create post',
91+
]);
8092

81-
assertDatabaseHas('permissions', [
82-
'name' => 'update post',
83-
]);
93+
$this->assertDatabaseHas('permissions', [
94+
'name' => 'update post',
95+
]);
8496

85-
assertDatabaseMissing('permissions', [
86-
'name' => 'delete tag',
87-
]);
88-
});
97+
$this->assertDatabaseMissing('permissions', [
98+
'name' => 'delete tag',
99+
]);
100+
}
101+
}

0 commit comments

Comments
 (0)