66 lines
1.9 KiB
PHP
66 lines
1.9 KiB
PHP
<?php
|
|
|
|
use App\Models\Audition;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
|
|
uses(RefreshDatabase::class);
|
|
|
|
test('only returns open auditions for open scope', function () {
|
|
// Arrange
|
|
$openAudition = Audition::factory()->create();
|
|
Audition::factory()->closed()->create();
|
|
|
|
// Act & Assert
|
|
expect(Audition::open()->get())
|
|
->toHaveCount(1)
|
|
->first()->id->toEqual($openAudition->id);
|
|
});
|
|
|
|
it('only returns auditions for seating with forSeating scope', function () {
|
|
// Arrange
|
|
Audition::factory(['for_seating' => 0])->create();
|
|
$seatingAudition = Audition::factory()->create();
|
|
|
|
// Act & Assert
|
|
expect(Audition::forSeating()->get())
|
|
->toHaveCount(1)
|
|
->first()->id->toEqual($seatingAudition->id);
|
|
});
|
|
|
|
it('only returns auditions for advancement with for forAdvancement scope', function () {
|
|
// Arrange
|
|
Audition::factory(['for_advancement' => 0])->create();
|
|
$advancementAudition = Audition::factory()->create();
|
|
|
|
// Act & Assert
|
|
expect(Audition::forAdvancement()->get())
|
|
->toHaveCount(1)
|
|
->first()->id->toEqual($advancementAudition->id);
|
|
});
|
|
|
|
it('only returns published auditions for seatsPublished scope', function () {
|
|
// Arrange
|
|
Audition::factory()->create();
|
|
$published = Audition::factory()->create();
|
|
$published->addFlag('seats_published');
|
|
|
|
// Act & Assert
|
|
expect(Audition::seatsPublished()->get())
|
|
->toHaveCount(1)
|
|
->first()->id->toEqual($published->id);
|
|
|
|
});
|
|
|
|
it('only returns published advancement auditions for advancementPublished scope', function () {
|
|
// Arrange
|
|
Audition::factory()->create();
|
|
$published = Audition::factory()->create();
|
|
$published->addFlag('advancement_published');
|
|
|
|
// Act & Assert
|
|
expect(Audition::advancementPublished()->get())
|
|
->toHaveCount(1)
|
|
->first()->id->toEqual($published->id);
|
|
|
|
});
|