@@ -31,6 +31,11 @@ routeTester.delete("/api/delete/:_id", (req, res) => {
3131 res . status ( 200 ) . json ( { deleted : req . params . _id } )
3232} )
3333
34+ // PUT endpoint (like /api/update, /api/bulkUpdate)
35+ routeTester . put ( "/api/update" , ( req , res ) => {
36+ res . status ( 200 ) . json ( { received : req . body } )
37+ } )
38+
3439// Release endpoint uses PATCH without a JSON body (uses Slug header)
3540routeTester . patch ( "/api/release/:_id" , ( req , res ) => {
3641 res . status ( 200 ) . json ( { released : req . params . _id } )
@@ -150,4 +155,22 @@ describe("Content-Type validation middleware", () => {
150155 expect ( response . body . released ) . toBe ( "abc123" )
151156 } )
152157
158+ it ( "accepts application/json on PUT endpoint" , async ( ) => {
159+ const response = await request ( routeTester )
160+ . put ( "/api/update" )
161+ . set ( "Content-Type" , "application/json" )
162+ . send ( { test : "put-data" } )
163+ expect ( response . statusCode ) . toBe ( 200 )
164+ expect ( response . body . received . test ) . toBe ( "put-data" )
165+ } )
166+
167+ it ( "returns 415 for text/plain on PUT endpoint" , async ( ) => {
168+ const response = await request ( routeTester )
169+ . put ( "/api/update" )
170+ . set ( "Content-Type" , "text/plain" )
171+ . send ( "some text" )
172+ expect ( response . statusCode ) . toBe ( 415 )
173+ expect ( response . text ) . toContain ( "Unsupported Content-Type" )
174+ } )
175+
153176} )
0 commit comments