41 lines
1.3 KiB
PHP
41 lines
1.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Tests\Feature\Marketing;
|
|
|
|
use App\Models\WeddingPackage;
|
|
use Database\Seeders\ContentSeeder;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Tests\TestCase;
|
|
|
|
class WeddingPackageTest extends TestCase
|
|
{
|
|
use RefreshDatabase;
|
|
|
|
public function test_published_scope_excludes_drafts_and_keeps_cms_order(): void
|
|
{
|
|
WeddingPackage::factory()->create(['name' => 'Rascunho', 'published_at' => null]);
|
|
$second = WeddingPackage::factory()->published()->create(['name' => 'Segundo', 'sort_order' => 20]);
|
|
$first = WeddingPackage::factory()->published()->create(['name' => 'Primeiro', 'sort_order' => 10]);
|
|
|
|
$packages = WeddingPackage::query()->published()->orderBy('sort_order')->get();
|
|
|
|
$this->assertCount(2, $packages);
|
|
$this->assertTrue($packages->first()?->is($first));
|
|
$this->assertTrue($packages->last()?->is($second));
|
|
}
|
|
|
|
public function test_content_seeder_creates_official_wedding_modalities(): void
|
|
{
|
|
$this->app->detectEnvironment(fn (): string => 'testing');
|
|
|
|
$this->seed(ContentSeeder::class);
|
|
|
|
$this->assertSame(
|
|
['Essenza', 'Conduzione', 'Grand Jour'],
|
|
WeddingPackage::query()->published()->orderBy('sort_order')->pluck('name')->all(),
|
|
);
|
|
}
|
|
}
|