-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPublishABTestTest.php
More file actions
66 lines (51 loc) · 1.78 KB
/
PublishABTestTest.php
File metadata and controls
66 lines (51 loc) · 1.78 KB
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
54
55
56
57
58
59
60
61
62
63
64
65
66
<?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 App\Containers\AppSection\Logging\Data\Enums\LogAction;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Queue;
class PublishABTestTest extends ApiTestCase
{
protected string $endpoint = 'post@v1/ab-tests/{id}/publish';
protected array $access = [
'permissions' => ABTestPermissions::PUBLISH->value,
'roles' => '',
];
public function testPublishABTest(): void
{
Queue::fake();
$aBTest = ABTest::factory()->create([
'status' => ABTestStatus::Active->value,
]);
Http::fake([
'*' => Http::response(['field' => 'bar']),
]);
$response = $this->injectId($aBTest->id)->makeCall();
$response->assertStatus(200);
$this->assertDatabaseHas('logs', [
'model_id' => $aBTest->id,
'action' => LogAction::Publish->value,
]);
}
public function testPublishDraftABTest(): void
{
Queue::fake();
$aBTest = ABTest::factory()->create([
'status' => ABTestStatus::Draft->value,
]);
Http::fake([
'*' => Http::response(['field' => 'bar']),
]);
$response = $this->injectId($aBTest->id)->makeCall();
$response->assertStatus(422);
}
public function testUpdateNonExistingABTest(): void
{
$invalidId = 7777;
$response = $this->injectId($invalidId)->makeCall([]);
$response->assertStatus(422);
}
}