seed([ WebsiteTypeSeeder::class, SocialMediaSeeder::class, TenantSeeder::class, ]); $expectedCodes = ['instagram', 'facebook', 'linkedin', 'whatsapp']; $expectedUrls = [ 'https://www.instagram.com/sonderargentina/', 'https://www.facebook.com/SonderArgentina/', 'https://www.linkedin.com/company/35664983/', 'https://wa.me/5493412602222', ]; foreach (['sonder', 'fiesta_futbol_infantil'] as $tenantCode) { $socialMedia = Tenant::query() ->where('codigo', $tenantCode) ->firstOrFail() ->socialMedia() ->get(); $this->assertSame($expectedCodes, $socialMedia->pluck('code')->all()); $this->assertSame($expectedUrls, $socialMedia->pluck('pivot.url')->all()); $this->assertSame([0, 1, 2, 3], $socialMedia->pluck('pivot.orden')->all()); } } public function test_it_assigns_each_tenant_its_website_type_and_extras(): void { Storage::fake('s3'); $this->seed([ WebsiteTypeSeeder::class, SocialMediaSeeder::class, TenantSeeder::class, ]); $sonder = Tenant::query() ->where('codigo', 'sonder') ->with('websiteExtras.websiteTypeExtra') ->sole(); $this->assertSame('shopit', $sonder->website_type_code); $carousel = $sonder->websiteExtras ->firstWhere('websiteTypeExtra.codigo', 'carousel'); $this->assertNotNull($carousel); $this->assertCount(6, $carousel->config); foreach ($carousel->config as $attachmentId) { $this->assertDatabaseHas('attachments', [ 'id' => $attachmentId, 'type' => 'image', ]); } $fiesta = Tenant::query() ->where('codigo', 'fiesta_futbol_infantil') ->with('websiteExtras.websiteTypeExtra') ->sole(); $this->assertSame('onticket', $fiesta->website_type_code); $extras = $fiesta->websiteExtras->keyBy('websiteTypeExtra.codigo'); $this->assertEqualsCanonicalizing( ['heroConfig', 'eventConfig'], $extras->keys()->all(), ); $heroConfig = $extras->get('heroConfig')->config; $this->assertSame('