Skip to content

Commit a0e14ed

Browse files
committed
reorganise tests
1 parent ab33924 commit a0e14ed

File tree

2 files changed

+78
-58
lines changed

2 files changed

+78
-58
lines changed
Lines changed: 2 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
<?php
22

3-
use Illuminate\Support\Facades\Route;
43
use Codinglabs\FeatureFlags\Models\Feature;
54
use Codinglabs\FeatureFlags\Enums\FeatureState;
65
use Codinglabs\FeatureFlags\Facades\FeatureFlag;
7-
use Codinglabs\FeatureFlags\Middleware\VerifyFeatureIsOn;
6+
use Codinglabs\FeatureFlags\Events\FeatureUpdatedEvent;
87
use Codinglabs\FeatureFlags\Exceptions\MissingFeatureException;
98

109
beforeEach(function () {
@@ -13,10 +12,6 @@
1312
'feature-flags.cache_prefix' => 'testing',
1413
]);
1514

16-
Route::get('test-middleware', function () {
17-
return 'ok';
18-
})->middleware(VerifyFeatureIsOn::class . ':some-feature');
19-
2015
cache()->store('array')->clear();
2116
});
2217

@@ -158,7 +153,7 @@
158153

159154
FeatureFlag::updateFeatureState('some-feature', FeatureState::on());
160155

161-
Event::assertDispatched(\Codinglabs\FeatureFlags\Events\FeatureUpdatedEvent::class);
156+
Event::assertDispatched(FeatureUpdatedEvent::class);
162157
expect(FeatureFlag::isOn('some-feature'))->toBeTrue()
163158
->and(FeatureFlag::isOff('some-feature'))->toBeFalse()
164159
->and(cache()->store('array')->get('testing.some-feature'))->toBe(FeatureState::on()->value);
@@ -171,54 +166,3 @@
171166

172167
expect(config('feature-flags.cache_store'))->toBe('file');
173168
});
174-
175-
it('returns a 500 status when a feature does not exist', function () {
176-
$this->withoutExceptionHandling();
177-
178-
$this->expectException(MissingFeatureException::class);
179-
180-
$this->get('test-middleware')
181-
->assertStatus(500);
182-
});
183-
184-
it('returns a 404 status when a feature is off', function () {
185-
Feature::factory()->create([
186-
'name' => 'some-feature',
187-
'state' => FeatureState::off()
188-
]);
189-
190-
$this->get('test-middleware')
191-
->assertStatus(404);
192-
});
193-
194-
it('returns a 404 status when a feature is dynamic', function () {
195-
Feature::factory()->create([
196-
'name' => 'some-feature',
197-
'state' => FeatureState::dynamic()
198-
]);
199-
200-
$this->get('test-middleware')
201-
->assertStatus(404);
202-
});
203-
204-
it('returns an ok status when a feature is dynamic and enabled', function () {
205-
Feature::factory()->create([
206-
'name' => 'some-feature',
207-
'state' => FeatureState::dynamic()
208-
]);
209-
210-
FeatureFlag::registerDynamicHandler('some-feature', fn ($feature) => true);
211-
212-
$this->get('test-middleware')
213-
->assertOk();
214-
});
215-
216-
it('returns an ok status when a feature is on', function () {
217-
Feature::factory()->create([
218-
'name' => 'some-feature',
219-
'state' => FeatureState::on()
220-
]);
221-
222-
$this->get('test-middleware')
223-
->assertOk();
224-
});

tests/MiddlewareTest.php

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
<?php
2+
3+
use Illuminate\Support\Facades\Route;
4+
use Codinglabs\FeatureFlags\Models\Feature;
5+
use Codinglabs\FeatureFlags\Enums\FeatureState;
6+
use Codinglabs\FeatureFlags\Facades\FeatureFlag;
7+
use Codinglabs\FeatureFlags\Middleware\VerifyFeatureIsOn;
8+
use Codinglabs\FeatureFlags\Exceptions\MissingFeatureException;
9+
10+
beforeEach(function () {
11+
config([
12+
'feature-flags.cache_store' => 'array',
13+
'feature-flags.cache_prefix' => 'testing',
14+
]);
15+
16+
Route::get('test-middleware', function () {
17+
return 'ok';
18+
})->middleware(VerifyFeatureIsOn::class . ':some-feature');
19+
20+
cache()->store('array')->clear();
21+
});
22+
23+
afterEach(function () {
24+
FeatureFlag::reset();
25+
});
26+
27+
it('returns a 500 status when a feature does not exist', function () {
28+
$this->withoutExceptionHandling();
29+
30+
$this->expectException(MissingFeatureException::class);
31+
32+
$this->get('test-middleware')
33+
->assertStatus(500);
34+
});
35+
36+
it('returns a 404 status when a feature is off', function () {
37+
Feature::factory()->create([
38+
'name' => 'some-feature',
39+
'state' => FeatureState::off()
40+
]);
41+
42+
$this->get('test-middleware')
43+
->assertStatus(404);
44+
});
45+
46+
it('returns a 404 status when a feature is dynamic', function () {
47+
Feature::factory()->create([
48+
'name' => 'some-feature',
49+
'state' => FeatureState::dynamic()
50+
]);
51+
52+
$this->get('test-middleware')
53+
->assertStatus(404);
54+
});
55+
56+
it('returns an ok status when a feature is dynamic and enabled', function () {
57+
Feature::factory()->create([
58+
'name' => 'some-feature',
59+
'state' => FeatureState::dynamic()
60+
]);
61+
62+
FeatureFlag::registerDynamicHandler('some-feature', fn ($feature) => true);
63+
64+
$this->get('test-middleware')
65+
->assertOk();
66+
});
67+
68+
it('returns an ok status when a feature is on', function () {
69+
Feature::factory()->create([
70+
'name' => 'some-feature',
71+
'state' => FeatureState::on()
72+
]);
73+
74+
$this->get('test-middleware')
75+
->assertOk();
76+
});

0 commit comments

Comments
 (0)