team = Team::factory()->create(); $this->user = User::factory()->create(); $this->user->teams()->attach($this->team, ['role' => 'owner']); $this->actingAs($this->user); session(['currentTeam' => $this->team]); $this->server = Server::factory()->create(['team_id' => $this->team->id]); $this->destination = StandaloneDocker::where('server_id', $this->server->id)->firstOrFail(); $this->project = Project::factory()->create(['team_id' => $this->team->id]); $this->environment = Environment::factory()->create(['project_id' => $this->project->id]); }); it('creates a standalone database backup without S3 and opens its configuration', function () { $database = StandalonePostgresql::create([ 'name' => 'postgres', 'image' => 'postgres:16-alpine', 'postgres_user' => 'postgres', 'postgres_password' => 'password', 'postgres_db' => 'postgres', 'environment_id' => $this->environment->id, 'destination_id' => $this->destination->id, 'destination_type' => $this->destination->getMorphClass(), ]); $component = Livewire::test(CreateScheduledBackup::class, ['database' => $database]) ->assertDontSee('Save to S3') ->set('frequency', 'daily') ->call('submit'); $backup = ScheduledDatabaseBackup::query()->sole(); $component->assertRedirectToRoute('project.database.backup.execution', [ 'project_uuid' => $this->project->uuid, 'environment_uuid' => $this->environment->uuid, 'database_uuid' => $database->uuid, 'backup_uuid' => $backup->uuid, ]); expect($backup->save_s3)->toBeFalsy() ->and($backup->s3_storage_id)->toBeNull(); }); it('creates a service database backup without S3 and opens its configuration', function () { $service = Service::factory()->create([ 'server_id' => $this->server->id, 'destination_id' => $this->destination->id, 'destination_type' => $this->destination->getMorphClass(), 'environment_id' => $this->environment->id, ]); $database = ServiceDatabase::create([ 'service_id' => $service->id, 'name' => 'postgres', 'image' => 'postgres:16-alpine', 'custom_type' => 'postgresql', ]); $component = Livewire::test(CreateScheduledBackup::class, ['database' => $database]) ->assertDontSee('Save to S3') ->set('frequency', 'daily') ->call('submit'); $backup = ScheduledDatabaseBackup::query()->sole(); $component->assertRedirectToRoute('project.service.database.backup.show', [ 'project_uuid' => $this->project->uuid, 'environment_uuid' => $this->environment->uuid, 'service_uuid' => $service->uuid, 'stack_service_uuid' => $database->uuid, 'backup_uuid' => $backup->uuid, ]); expect($backup->save_s3)->toBeFalsy() ->and($backup->s3_storage_id)->toBeNull(); });