team = Team::factory()->create(); $this->user = User::factory()->create(); $this->team->members()->attach($this->user->id, ['role' => 'owner']); $this->actingAs($this->user); session(['currentTeam' => $this->team]); $this->privateKey = PrivateKey::factory()->create(['team_id' => $this->team->id]); }); function disabledServer(): Server { $server = Server::factory()->create([ 'team_id' => test()->team->id, 'private_key_id' => test()->privateKey->id, ]); $server->settings->is_traffic_analytics_enabled = false; $server->settings->save(); return $server; } it('does not show a traffic nudge on the dashboard', function () { disabledServer(); loadLazy(Livewire::test(DashboardTrafficAnalytics::class)) ->assertOk() ->assertDontSee('can start collecting traffic analytics'); }); it('shows the analytics-page nudge when an eligible server has analytics disabled', function () { disabledServer(); loadLazy(Livewire::test(Analytics::class)) ->assertOk() ->assertSee('can start collecting traffic analytics'); }); it('does not count swarm or build servers in the analytics-page nudge', function () { $swarm = disabledServer(); $swarm->settings->is_swarm_manager = true; $swarm->settings->save(); $build = disabledServer(); $build->settings->server_role = ServerRole::BUILD; $build->settings->is_build_server = true; $build->settings->save(); loadLazy(Livewire::test(Analytics::class)) ->assertOk() ->assertDontSee('can start collecting traffic analytics'); });