@@ -224,4 +224,43 @@ await describe('server', async t => {
224224 assert . equal ( spaceFromGet . name , spaceWithName . name , `space name from GET MUST match space name from most recent PUT` )
225225 }
226226 } )
227+
228+ await test ( 'DELETE /space/:uuid' , async t => {
229+ const spaceUuid = crypto . randomUUID ( )
230+
231+ // first create the space
232+ {
233+ const responseToCreateSpace = await server . fetch ( new Request (
234+ new URL ( `/space/${ spaceUuid } ` , 'http://example.example' ) ,
235+ {
236+ method : 'PUT' ,
237+ body : JSON . stringify ( { name : `space ${ spaceUuid } ` } ) ,
238+ headers : {
239+ 'Content-Type' : 'application/json' ,
240+ } ,
241+ }
242+ ) )
243+ assert . ok ( responseToCreateSpace . ok )
244+ }
245+
246+ const request = new Request ( new URL ( `/space/${ spaceUuid } ` , 'http://example.example' ) , {
247+ method : 'DELETE' ,
248+ headers : {
249+ 'Content-Type' : 'application/json' ,
250+ } ,
251+ } )
252+ const response = await server . fetch ( request )
253+ assert . equal ( response . status , 204 , 'response status to DELETE /spaces/ MUST be 204' )
254+
255+ // now try to GET it and see if it was deleted
256+ const responseToGetSpace = await server . fetch ( new Request ( new URL ( `/space/${ spaceUuid } ` , 'http://example.example' ) , {
257+ method : 'GET' ,
258+ headers : {
259+ 'Accept' : 'application/json' ,
260+ } ,
261+ } ) )
262+ assert . equal (
263+ responseToGetSpace . status , 404 ,
264+ `response status to GET /space/:uuid MUST be 404 after DELETE` )
265+ } )
227266} )
0 commit comments