diff --git a/lib/hexdocs/queue.ex b/lib/hexdocs/queue.ex index 6bfd3da..1f850c7 100644 --- a/lib/hexdocs/queue.ex +++ b/lib/hexdocs/queue.ex @@ -106,12 +106,16 @@ defmodule Hexdocs.Queue do body = Hexdocs.Store.get(:repo_bucket, key) - case type do - :upload -> - process_upload(key, repository, package, version, body, start) + if body do + case type do + :upload -> + process_upload(key, repository, package, version, body, start) - :search -> - process_search(key, repository, package, version, body, start) + :search -> + process_search(key, repository, package, version, body, start) + end + else + Logger.error("#{log_prefix} #{key}: package not found in store") end :error -> diff --git a/test/hexdocs/http_test.exs b/test/hexdocs/http_test.exs index 8a960f8..81d0310 100644 --- a/test/hexdocs/http_test.exs +++ b/test/hexdocs/http_test.exs @@ -16,9 +16,8 @@ defmodule Hexdocs.HTTPTest do end setup do - port = Enum.random(50_000..60_000) - start_supervised!({Plug.Cowboy, plug: StreamingPlug, scheme: :http, port: port}) - {:ok, port: port} + start_supervised!({Plug.Cowboy, plug: StreamingPlug, scheme: :http, port: 0}) + {:ok, port: :ranch.get_port(StreamingPlug.HTTP)} end describe "get_stream/2" do diff --git a/test/hexdocs/plug_gs_test.exs b/test/hexdocs/plug_gs_test.exs index ad8bb69..67732ba 100644 --- a/test/hexdocs/plug_gs_test.exs +++ b/test/hexdocs/plug_gs_test.exs @@ -90,8 +90,8 @@ defmodule Hexdocs.PlugGSTest do :ets.delete_all_objects(:mock_gcs_files) # Start mock GCS server - port = Enum.random(50_000..60_000) - start_supervised!({Plug.Cowboy, plug: MockGCSPlug, scheme: :http, port: port}) + start_supervised!({Plug.Cowboy, plug: MockGCSPlug, scheme: :http, port: 0}) + port = :ranch.get_port(MockGCSPlug.HTTP) # Configure to use GS store with mock server original_store_impl = Application.get_env(:hexdocs, :store_impl)