package nativeapiimport ("encoding/json""net/http""net/http/httptest". "github.com/onsi/ginkgo/v2". "github.com/onsi/gomega")var _ = Describe("writeDeleteManyResponse", func() {var w *httptest.ResponseRecorderwrite := func(ids ...string) map[string]any {w = httptest.NewRecorder()writeDeleteManyResponse(w, httptest.NewRequest("DELETE", "/missing", nil), ids)var body map[string]anyExpect(json.Unmarshal(w.Body.Bytes(), &body)).To(Succeed(), "response body must be valid JSON: %s", w.Body.String())return body}It("returns a single id as an object", func() {Expect(write("abc123")).To(HaveKeyWithValue("id", "abc123"))})It("returns multiple ids as a list", func() {Expect(write("a", "b")).To(HaveKeyWithValue("ids", ConsistOf("a", "b")))})It("stays valid JSON when the id contains a backslash", func() {Expect(write(`a\`)).To(HaveKeyWithValue("id", `a\`))})It("stays valid JSON when the id contains a quote", func() {Expect(write(`a"b`)).To(HaveKeyWithValue("id", `a"b`))})It("does not HTML-escape the id into entities", func() {Expect(write("a&b")).To(HaveKeyWithValue("id", "a&b"))})It("responds 200 with a JSON content type", func() {write("abc123")Expect(w.Code).To(Equal(http.StatusOK))Expect(w.Header().Get("Content-Type")).To(Equal("application/json"))})})