@@ -30,6 +30,36 @@ test('lists active destinations', function () {
|
||||
->assertJsonFragment(['id' => $active->id]);
|
||||
});
|
||||
|
||||
test('paginates companies and destinations', function () {
|
||||
EvCompany::factory()->count(20)->create(['is_active' => true]);
|
||||
Destination::factory()->count(20)->create(['is_active' => true]);
|
||||
|
||||
$this->withHeader('Authorization', "Bearer {$this->token}")
|
||||
->getJson('/api/v1/companies')
|
||||
->assertSuccessful()
|
||||
->assertJsonCount(15, 'data')
|
||||
->assertJsonPath('meta.total', 20);
|
||||
|
||||
$this->withHeader('Authorization', "Bearer {$this->token}")
|
||||
->getJson('/api/v1/destinations')
|
||||
->assertSuccessful()
|
||||
->assertJsonCount(15, 'data')
|
||||
->assertJsonPath('meta.total', 20);
|
||||
});
|
||||
|
||||
test('searches destinations by comma-separated terms', function () {
|
||||
$yangon = Destination::factory()->create(['is_active' => true, 'name' => 'Yangon']);
|
||||
$mandalay = Destination::factory()->create(['is_active' => true, 'name' => 'Mandalay']);
|
||||
Destination::factory()->create(['is_active' => true, 'name' => 'Bagan']);
|
||||
|
||||
$this->withHeader('Authorization', "Bearer {$this->token}")
|
||||
->getJson('/api/v1/destinations?search=yangon,mandalay')
|
||||
->assertSuccessful()
|
||||
->assertJsonCount(2, 'data')
|
||||
->assertJsonFragment(['id' => $yangon->id])
|
||||
->assertJsonFragment(['id' => $mandalay->id]);
|
||||
});
|
||||
|
||||
test('companies endpoint rejects unauthenticated requests', function () {
|
||||
$this->getJson('/api/v1/companies')->assertUnauthorized();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user