-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDeleteABTestTest.php
53 lines (40 loc) · 1.47 KB
/
DeleteABTestTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
namespace App\Containers\AppSection\ABTest\UI\API\Tests\Functional;
use App\Containers\AppSection\ABTest\Data\Dictionaries\ABTestPermissions;
use App\Containers\AppSection\ABTest\Data\Dictionaries\ABTestStatus;
use App\Containers\AppSection\ABTest\Models\ABTest;
use App\Containers\AppSection\ABTest\UI\API\Tests\ApiTestCase;
use Illuminate\Testing\Fluent\AssertableJson;
class DeleteABTestTest extends ApiTestCase
{
protected string $endpoint = 'delete@v1/ab-tests/{id}';
protected array $access = [
'permissions' => ABTestPermissions::DELETE->value,
'roles' => '',
];
public function testDeleteExistingABTest(): void
{
$aBTest = ABTest::factory()->create();
$response = $this->injectId($aBTest->id)->makeCall();
$response->assertStatus(204);
}
public function testDeleteExistingNonDraftABTest(): void
{
$aBTest = ABTest::factory()->create([
'status' => ABTestStatus::Active,
]);
$response = $this->injectId($aBTest->id)->makeCall();
$response->assertStatus(417);
$response->assertJson(
fn (AssertableJson $json) => $json->has('message')
->where('message', 'Not allowed to delete non draft test')
->etc()
);
}
public function testDeleteNonExistingABTest(): void
{
$invalidId = 7777;
$response = $this->injectId($invalidId)->makeCall([]);
$response->assertStatus(404);
}
}