test(contracts): whitelist the unified row's two new keys on search rows

The H4 row-completion commit made abridged/audio_metadata emit on the
search wire (the endpoint serializes the row directly) — exactly what
the pin exists to surface. Whitelisted per the additive rule with the
changelog entry.
This commit is contained in:
John O'Keefe committed 2026-10-17 16:57:20 -04:00
1 parent c538efe722
commit 010c0cb287
2 files changed
+9

No files matched your search

+4
View File
@@ -656,6 +656,10 @@ func TestContractPin_SearchJSON(t *testing.T) {
"kobo_content_id", "kobo_metadata", "tags_search", "contributors_search", "kobo_content_id", "kobo_metadata", "tags_search", "contributors_search",
"narrators", "file_sha256", "opf_identifier", "opf_uuid", "narrators", "file_sha256", "opf_identifier", "opf_uuid",
"hash_confidence", "library_name", "library_type_name", "hash_confidence", "library_name", "library_type_name",
// H4: the unified row gained the two lagging columns (additive,
// EXPLAIN plan-identical) and the search endpoint serializes the
// row directly, so they emit here.
"abridged", "audio_metadata",
} }
url := fmt.Sprintf("%s/api/media-items/search?q=%s&library_id=%s", setup.Server.URL, url.QueryEscape(fx.itemTitle), fx.libraryID) url := fmt.Sprintf("%s/api/media-items/search?q=%s&library_id=%s", setup.Server.URL, url.QueryEscape(fx.itemTitle), fx.libraryID)
+5
View File
@@ -87,3 +87,8 @@ cover_image_path, has_conflict, format_group, badge`.
`last_modified_at` are now maintained. Note PUT unchanged on the wire `last_modified_at` are now maintained. Note PUT unchanged on the wire
(content+position) but routed through the service the same way. (content+position) but routed through the service the same way.
Response shapes unchanged (same row models — pins green). Response shapes unchanged (same row models — pins green).
- **H4 (unified row completion)** — `/api/media-items/search` rows[]
whitelisted ADDITIVE keys `abridged, audio_metadata`: the unified
search row gained the two columns it lagged (EXPLAIN plan-identical —
both ride the already-scanned media_items side), and the endpoint
serializes the row directly, so they emit. No key removed or renamed.