Deployment and lifecycle management for Nix
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

refactor: extract should_reload? into Garden.Socket.State

SOW-74

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

+29 -2
+2 -2
apps/garden/lib/garden/socket.ex
··· 325 325 end 326 326 327 327 def handle_info(:check_pending_reload, socket) do 328 - if map_size(socket.active_deployments) == 0 do 329 - if Garden.take_pending_reload(), do: reload_garden_service() 328 + if State.should_reload?(socket.active_deployments, Garden.take_pending_reload()) do 329 + reload_garden_service() 330 330 end 331 331 332 332 {:noreply, socket}
+4
apps/garden/lib/garden/socket/state.ex
··· 83 83 end 84 84 end 85 85 86 + def should_reload?(active_deployments, pending_reload) do 87 + map_size(active_deployments) == 0 and pending_reload 88 + end 89 + 86 90 def receive_deployment(%Deployment{skipped: true}, _active_deployments) do 87 91 :skipped 88 92 end
+23
apps/garden/test/garden/socket/state_test.exs
··· 232 232 assert Map.has_key?(updated_active, "deploy_2") 233 233 end 234 234 end 235 + 236 + describe "should_reload?/2" do 237 + test "returns true when no active deployments and pending reload" do 238 + assert State.should_reload?(%{}, true) 239 + end 240 + 241 + test "returns false when active deployments exist" do 242 + active = %{ 243 + "deploy_1" => %Deployment{ 244 + sid: "deploy_1", 245 + request_id: "dr_1", 246 + seed_deployments: [], 247 + skipped: false 248 + } 249 + } 250 + 251 + refute State.should_reload?(active, true) 252 + end 253 + 254 + test "returns false when no pending reload" do 255 + refute State.should_reload?(%{}, false) 256 + end 257 + end 235 258 end