Match decoded OpenAI error body, not raw JSON
Switch the 500-response stubs to Req.Test.json so Req decodes the body, then match the map shape. Avoids coupling the assertion to the exact JSON serialization. Refs #176
This commit is contained in:
@@ -296,10 +296,12 @@ defmodule MusicLibrary.Records.SimilarityTest do
|
|||||||
record = record(%{genres: ["rock"]})
|
record = record(%{genres: ["rock"]})
|
||||||
|
|
||||||
Req.Test.stub(OpenAI.API, fn conn ->
|
Req.Test.stub(OpenAI.API, fn conn ->
|
||||||
Plug.Conn.send_resp(conn, 500, JSON.encode!(%{"error" => "internal server error"}))
|
conn
|
||||||
|
|> Plug.Conn.put_status(500)
|
||||||
|
|> Req.Test.json(%{"error" => "internal server error"})
|
||||||
end)
|
end)
|
||||||
|
|
||||||
assert {:error, "{\"error\":\"internal server error\"}"} =
|
assert {:error, %{"error" => "internal server error"}} =
|
||||||
Similarity.generate_embedding(record)
|
Similarity.generate_embedding(record)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -48,10 +48,12 @@ defmodule MusicLibrary.Worker.GenerateRecordEmbeddingTest do
|
|||||||
record = record()
|
record = record()
|
||||||
|
|
||||||
Req.Test.stub(OpenAI.API, fn conn ->
|
Req.Test.stub(OpenAI.API, fn conn ->
|
||||||
Plug.Conn.send_resp(conn, 500, JSON.encode!(%{"error" => "internal server error"}))
|
conn
|
||||||
|
|> Plug.Conn.put_status(500)
|
||||||
|
|> Req.Test.json(%{"error" => "internal server error"})
|
||||||
end)
|
end)
|
||||||
|
|
||||||
assert {:error, "{\"error\":\"internal server error\"}"} =
|
assert {:error, %{"error" => "internal server error"}} =
|
||||||
perform_job(GenerateRecordEmbedding, %{"record_id" => record.id})
|
perform_job(GenerateRecordEmbedding, %{"record_id" => record.id})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user