MCPcopy Create free account
hub / github.com/06chaynes/http-cache / delete_request_invalidates_cache

Function delete_request_invalidates_cache

http-cache-quickcache/src/test.rs:341–395  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

339
340#[tokio::test]
341async fn delete_request_invalidates_cache() -> Result<()> {
342 let mock_server = MockServer::start().await;
343
344 let m_get = Mock::given(method("GET"))
345 .respond_with(
346 ResponseTemplate::new(200)
347 .insert_header("cache-control", CACHEABLE_PUBLIC)
348 .set_body_bytes(TEST_BODY),
349 )
350 .expect(1);
351
352 let m_delete = Mock::given(method("DELETE"))
353 .respond_with(ResponseTemplate::new(204))
354 .expect(1);
355
356 let mock_guard_get = mock_server.register_as_scoped(m_get).await;
357 let url = format!("{}/", mock_server.uri());
358 let manager = QuickManager::default();
359
360 let client = ClientBuilder::new(Client::new())
361 .with(Cache(HttpCache {
362 mode: CacheMode::Default,
363 manager: manager.clone(),
364 options: HttpCacheOptions::default(),
365 }))
366 .build();
367
368 // Cache a GET response
369 client.get(url.clone()).send().await?;
370
371 // Verify it's cached
372 let data = http_cache::CacheManager::get(
373 &manager,
374 &format!("GET:{}", url_parse(&url)?),
375 )
376 .await?;
377 assert!(data.is_some());
378
379 drop(mock_guard_get);
380 let _mock_guard_delete = mock_server.register_as_scoped(m_delete).await;
381
382 // DELETE request should invalidate cache
383 let delete_res = client.delete(url.clone()).send().await?;
384 assert_eq!(delete_res.status(), 204);
385
386 // Verify cache was invalidated
387 let data = http_cache::CacheManager::get(
388 &manager,
389 &format!("GET:{}", url_parse(&url)?),
390 )
391 .await?;
392 assert!(data.is_none());
393
394 Ok(())
395}
396
397#[tokio::test]
398async fn options_request_not_cached() -> Result<()> {

Callers

nothing calls this directly

Calls 5

buildMethod · 0.80
cloneMethod · 0.80
CacheClass · 0.50
getMethod · 0.45
deleteMethod · 0.45

Tested by

no test coverage detected