2024-07-26 10:53:47 -04:00
|
|
|
<?php
|
|
|
|
|
|
|
|
use App\Models\ModVersion;
|
|
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
|
|
use Illuminate\Support\Carbon;
|
|
|
|
|
2024-07-31 14:40:19 -04:00
|
|
|
uses(RefreshDatabase::class);
|
|
|
|
|
2024-07-26 10:53:47 -04:00
|
|
|
it('includes only published mod versions', function () {
|
|
|
|
$publishedMod = ModVersion::factory()->create([
|
|
|
|
'published_at' => Carbon::now()->subDay(),
|
|
|
|
]);
|
|
|
|
$unpublishedMod = ModVersion::factory()->create([
|
|
|
|
'published_at' => Carbon::now()->addDay(),
|
|
|
|
]);
|
|
|
|
$noPublishedDateMod = ModVersion::factory()->create([
|
|
|
|
'published_at' => null,
|
|
|
|
]);
|
|
|
|
|
2024-07-31 14:40:19 -04:00
|
|
|
$all = ModVersion::withoutGlobalScopes()->get();
|
|
|
|
expect($all)->toHaveCount(3);
|
|
|
|
|
2024-07-26 10:53:47 -04:00
|
|
|
$mods = ModVersion::all();
|
|
|
|
|
2024-07-31 20:30:50 -04:00
|
|
|
expect($mods)->toHaveCount(1)
|
|
|
|
->and($mods->contains($publishedMod))->toBeTrue()
|
|
|
|
->and($mods->contains($unpublishedMod))->toBeFalse()
|
|
|
|
->and($mods->contains($noPublishedDateMod))->toBeFalse();
|
2024-07-26 10:53:47 -04:00
|
|
|
});
|
|
|
|
|
|
|
|
it('handles null published_at as not published', function () {
|
|
|
|
$modWithNoPublishDate = ModVersion::factory()->create([
|
|
|
|
'published_at' => null,
|
|
|
|
]);
|
|
|
|
|
|
|
|
$mods = ModVersion::all();
|
|
|
|
|
2024-07-31 14:06:56 -04:00
|
|
|
expect($mods->contains($modWithNoPublishDate))->toBeFalse();
|
2024-07-26 10:53:47 -04:00
|
|
|
});
|