refactor(event): move event configuration onto tenant
This commit is contained in:
@@ -4,7 +4,6 @@ namespace Tests\Feature\Event;
|
||||
|
||||
use App\Domains\Auth\Models\User;
|
||||
use App\Domains\Authorization\Enums\RoleCode;
|
||||
use App\Domains\Event\Models\Event;
|
||||
use App\Domains\Tenant\Models\Tenant;
|
||||
use App\Domains\Tenant\Models\WebsiteType;
|
||||
use Database\Seeders\AuthorizationSeeder;
|
||||
@@ -50,17 +49,14 @@ class AdminAppEventControllerTest extends TestCase
|
||||
->assertJsonPath('data.contact.instagram_url', 'https://instagram.com/acme')
|
||||
->assertJsonPath('data.contact.facebook_url', null);
|
||||
|
||||
$eventId = $response->json('data.id');
|
||||
|
||||
$this->assertDatabaseHas('events', [
|
||||
'id' => $eventId,
|
||||
'tenant_code' => $tenant->codigo,
|
||||
'name' => 'Festival Acme',
|
||||
'address' => 'Predio Ferial, Rosario',
|
||||
$this->assertSame($tenant->id, $response->json('data.id'));
|
||||
$this->assertDatabaseHas('tenants', [
|
||||
'id' => $tenant->id,
|
||||
'event_title' => 'Festival Acme',
|
||||
'event_location' => 'Predio Ferial, Rosario',
|
||||
]);
|
||||
$this->assertSame($eventId, $tenant->fresh()->active_event_id);
|
||||
$this->assertDatabaseHas('event_dates', [
|
||||
'event_id' => $eventId,
|
||||
'tenant_code' => $tenant->codigo,
|
||||
'date' => '2026-10-09',
|
||||
'time_start' => '09:00:00',
|
||||
'time_end' => '18:30:00',
|
||||
@@ -86,24 +82,27 @@ class AdminAppEventControllerTest extends TestCase
|
||||
->assertJsonMissing(['title' => 'Other Event']);
|
||||
}
|
||||
|
||||
public function test_reading_a_tenant_without_an_active_event_returns_not_found(): void
|
||||
public function test_reading_a_tenant_without_event_configuration_returns_empty_values(): void
|
||||
{
|
||||
$tenant = $this->createTenant('acme');
|
||||
Sanctum::actingAs($this->createAdminAppUser($tenant));
|
||||
|
||||
$this->getJson('/api/v1/adminapp/tenant/event')->assertNotFound();
|
||||
$this->getJson('/api/v1/adminapp/tenant/event')
|
||||
->assertOk()
|
||||
->assertJsonPath('data.title', null)
|
||||
->assertJsonCount(0, 'data.dates');
|
||||
}
|
||||
|
||||
public function test_updating_reuses_the_active_event_and_synchronizes_dates_and_contact(): void
|
||||
{
|
||||
$tenant = $this->createTenant('acme');
|
||||
$event = $this->createActiveEvent($tenant, 'Old Event');
|
||||
$firstDate = $event->dates()->create([
|
||||
$eventTenant = $this->createActiveEvent($tenant, 'Old Event');
|
||||
$firstDate = $eventTenant->eventDates()->create([
|
||||
'date' => '2026-10-01',
|
||||
'time_start' => '08:00',
|
||||
'time_end' => '12:00',
|
||||
]);
|
||||
$removedDate = $event->dates()->create([
|
||||
$removedDate = $eventTenant->eventDates()->create([
|
||||
'date' => '2026-10-02',
|
||||
'time_start' => '08:00',
|
||||
'time_end' => '12:00',
|
||||
@@ -127,7 +126,7 @@ class AdminAppEventControllerTest extends TestCase
|
||||
|
||||
$this->putJson('/api/v1/adminapp/tenant/event', $payload)
|
||||
->assertOk()
|
||||
->assertJsonPath('data.id', $event->id)
|
||||
->assertJsonPath('data.id', $tenant->id)
|
||||
->assertJsonPath('data.dates.0.id', $firstDate->id)
|
||||
->assertJsonPath('data.contact.facebook_url', null);
|
||||
|
||||
@@ -175,7 +174,7 @@ class AdminAppEventControllerTest extends TestCase
|
||||
'contact.whatsapp_url',
|
||||
]);
|
||||
|
||||
$this->assertDatabaseCount('events', 0);
|
||||
$this->assertNull($tenant->fresh()->event_title);
|
||||
}
|
||||
|
||||
public function test_social_media_accepts_any_registered_code_and_rejects_unknown_codes(): void
|
||||
@@ -257,14 +256,13 @@ class AdminAppEventControllerTest extends TestCase
|
||||
]);
|
||||
}
|
||||
|
||||
private function createActiveEvent(Tenant $tenant, string $name): Event
|
||||
private function createActiveEvent(Tenant $tenant, string $name): Tenant
|
||||
{
|
||||
$event = $tenant->events()->create([
|
||||
'name' => $name,
|
||||
'address' => 'Rosario',
|
||||
$tenant->update([
|
||||
'event_title' => $name,
|
||||
'event_location' => 'Rosario',
|
||||
]);
|
||||
$tenant->update(['active_event_id' => $event->id]);
|
||||
|
||||
return $event;
|
||||
return $tenant->fresh();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user