feat(social-media): add 'orden' field to social media pivot table and update related functionality
This commit is contained in:
@@ -30,6 +30,7 @@ class TenantSocialMediaTest extends TestCase
|
||||
'tenant_code',
|
||||
'social_media_code',
|
||||
'url',
|
||||
'orden',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
], Schema::getColumnListing('tenant_social_media'));
|
||||
@@ -46,6 +47,7 @@ class TenantSocialMediaTest extends TestCase
|
||||
|
||||
$tenant->socialMedia()->attach($instagram->code, [
|
||||
'url' => 'https://instagram.com/acme',
|
||||
'orden' => 3,
|
||||
]);
|
||||
|
||||
$this->assertTrue($tenant->socialMedia()->firstOrFail()->is($instagram));
|
||||
@@ -53,6 +55,7 @@ class TenantSocialMediaTest extends TestCase
|
||||
'https://instagram.com/acme',
|
||||
$tenant->socialMedia()->firstOrFail()->pivot->url
|
||||
);
|
||||
$this->assertSame(3, $tenant->socialMedia()->firstOrFail()->pivot->orden);
|
||||
$this->assertTrue($instagram->tenants()->firstOrFail()->is($tenant));
|
||||
}
|
||||
|
||||
@@ -91,6 +94,7 @@ class TenantSocialMediaTest extends TestCase
|
||||
[
|
||||
'code' => $instagram->code,
|
||||
'url' => 'https://instagram.com/acme',
|
||||
'orden' => 4,
|
||||
],
|
||||
],
|
||||
])
|
||||
@@ -105,6 +109,7 @@ class TenantSocialMediaTest extends TestCase
|
||||
'tenant_code' => $tenant->codigo,
|
||||
'social_media_code' => $instagram->code,
|
||||
'url' => 'https://instagram.com/acme',
|
||||
'orden' => 4,
|
||||
]);
|
||||
$this->assertDatabaseMissing('tenant_social_media', [
|
||||
'tenant_code' => $tenant->codigo,
|
||||
@@ -112,6 +117,33 @@ class TenantSocialMediaTest extends TestCase
|
||||
]);
|
||||
}
|
||||
|
||||
public function test_tenant_social_media_are_returned_in_configured_order(): void
|
||||
{
|
||||
$tenant = $this->createTenant();
|
||||
$instagram = $this->createSocialMedia('instagram', 'Instagram');
|
||||
$facebook = $this->createSocialMedia('facebook', 'Facebook');
|
||||
|
||||
$this->putJson("/api/tenants/{$tenant->codigo}", [
|
||||
'social_media' => [
|
||||
[
|
||||
'code' => $instagram->code,
|
||||
'url' => 'https://instagram.com/acme',
|
||||
'orden' => 20,
|
||||
],
|
||||
[
|
||||
'code' => $facebook->code,
|
||||
'url' => 'https://facebook.com/acme',
|
||||
'orden' => 10,
|
||||
],
|
||||
],
|
||||
])
|
||||
->assertOk()
|
||||
->assertJsonPath('data.social_media.0.code', 'facebook')
|
||||
->assertJsonPath('data.social_media.1.code', 'instagram')
|
||||
->assertJsonMissingPath('data.social_media.0.orden')
|
||||
->assertJsonMissingPath('data.social_media.1.orden');
|
||||
}
|
||||
|
||||
public function test_tenant_store_synchronizes_social_media(): void
|
||||
{
|
||||
$instagram = $this->createSocialMedia('instagram', 'Instagram');
|
||||
|
||||
Reference in New Issue
Block a user