user = User::factory()->create(); $this->team = Team::factory()->create(); $this->team->members()->attach($this->user->id, ['role' => 'owner']); InstanceSettings::unguarded(function () { InstanceSettings::query()->create([ 'id' => 0, 'is_registration_enabled' => true, ]); }); $this->actingAs($this->user); session(['currentTeam' => $this->team]); $this->server = Server::factory()->create(['team_id' => $this->team->id]); $this->destination = StandaloneDocker::query()->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]); $this->application = Application::factory()->create([ 'environment_id' => $this->environment->id, 'destination_id' => $this->destination->id, 'destination_type' => $this->destination->getMorphClass(), 'name' => 'Pure Dockerfile Example', 'status' => 'running', ]); }); it('hides the breadcrumb trail on mobile while keeping the current status visible', function () { $response = $this->get(route('project.application.configuration', [ 'project_uuid' => $this->project->uuid, 'environment_uuid' => $this->environment->uuid, 'application_uuid' => $this->application->uuid, ])); $response->assertSuccessful(); // The resource breadcrumb lives in the top bar (project / environment / resource switchers). $response->assertSee('title="Switch project"', false); $response->assertSee('title="Switch environment"', false); $response->assertSee('title="Switch resource"', false); // Desktop resource actions dock into the top bar; the slot is hidden below xl. $response->assertSee('
', false); // Below xl, the heading keeps the resource name, current status, and a split action in one row. expect(preg_match( '/