From 0ee0dcb118e791574595a048fcc9818f26439ec0 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Mon, 20 Apr 2026 06:22:41 +0100 Subject: [PATCH] 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 --- test/music_library/records/similarity_test.exs | 6 ++++-- .../music_library/worker/generate_record_embedding_test.exs | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/test/music_library/records/similarity_test.exs b/test/music_library/records/similarity_test.exs index f6834f8a..80e5267c 100644 --- a/test/music_library/records/similarity_test.exs +++ b/test/music_library/records/similarity_test.exs @@ -296,10 +296,12 @@ defmodule MusicLibrary.Records.SimilarityTest do record = record(%{genres: ["rock"]}) 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) - assert {:error, "{\"error\":\"internal server error\"}"} = + assert {:error, %{"error" => "internal server error"}} = Similarity.generate_embedding(record) end end diff --git a/test/music_library/worker/generate_record_embedding_test.exs b/test/music_library/worker/generate_record_embedding_test.exs index 25b95422..dfb011fa 100644 --- a/test/music_library/worker/generate_record_embedding_test.exs +++ b/test/music_library/worker/generate_record_embedding_test.exs @@ -48,10 +48,12 @@ defmodule MusicLibrary.Worker.GenerateRecordEmbeddingTest do record = record() 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) - assert {:error, "{\"error\":\"internal server error\"}"} = + assert {:error, %{"error" => "internal server error"}} = perform_job(GenerateRecordEmbedding, %{"record_id" => record.id}) end