···261261262262 @impl Slipstream
263263 def handle_info({:run_deployment, sid}, socket) do
264264- case Map.get(socket.active_deployments, sid) do
265265- nil ->
264264+ case State.lookup_deployment(sid, socket.active_deployments) do
265265+ :not_found ->
266266 Logger.warning(msg: "Deployment not found", sid: sid)
267267 {:noreply, socket}
268268269269- deployment ->
269269+ {:ok, deployment} ->
270270 {:ok, _} =
271271 push_message(
272272 socket,
+7
apps/garden/lib/garden/socket/state.ex
···5757 Enum.filter(subscriptions, & &1.poll_on_connect)
5858 end
59596060+ def lookup_deployment(sid, active_deployments) do
6161+ case Map.get(active_deployments, sid) do
6262+ nil -> :not_found
6363+ deployment -> {:ok, deployment}
6464+ end
6565+ end
6666+6067 def receive_deployment(%Deployment{skipped: true}, _active_deployments) do
6168 :skipped
6269 end
+19
apps/garden/test/garden/socket/state_test.exs
···175175 assert map_size(active) == 2
176176 end
177177 end
178178+179179+ describe "lookup_deployment/2" do
180180+ test "returns deployment when found" do
181181+ deployment = %Deployment{
182182+ sid: "deploy_123",
183183+ request_id: "dr_456",
184184+ seed_deployments: [],
185185+ skipped: false
186186+ }
187187+188188+ active = %{"deploy_123" => deployment}
189189+190190+ assert {:ok, ^deployment} = State.lookup_deployment("deploy_123", active)
191191+ end
192192+193193+ test "returns not_found when missing" do
194194+ assert :not_found = State.lookup_deployment("deploy_123", %{})
195195+ end
196196+ end
178197end