()
| 579 | manager: manager.clone(), |
| 580 | options: Default::default(), |
| 581 | })) |
| 582 | .build(); |
| 583 | |
| 584 | // Cold pass to load cache |
| 585 | client.get(url.clone()).send().await?; |
| 586 | |
| 587 | // Try to load cached object |
| 588 | let data = |
| 589 | CacheManager::get(&manager, &format!("{}:{}", GET, url_parse(&url)?)) |
| 590 | .await?; |
| 591 | assert!(data.is_some()); |
| 592 | |
| 593 | // Hot pass to make sure the cached response was served without warning |
| 594 | let res = client.get(url).send().await?; |
| 595 | assert!(res.headers().get("warning").is_none()); |
| 596 | assert_eq!(res.bytes().await?, TEST_BODY); |
| 597 | Ok(()) |
| 598 | } |
| 599 | |
| 600 | #[tokio::test] |
| 601 | async fn no_store_mode() -> Result<()> { |
| 602 | let mock_server = MockServer::start().await; |
| 603 | let m = build_mock(CACHEABLE_PUBLIC, TEST_BODY, 200, 2); |
| 604 | let _mock_guard = mock_server.register_as_scoped(m).await; |
| 605 | let url = format!("{}/", mock_server.uri()); |
| 606 | let manager = create_cache_manager(); |
| 607 | |
| 608 | // Construct reqwest client with NoStore mode |
| 609 | let client = ClientBuilder::new(Client::new()) |
| 610 | .with(Cache(HttpCache { |
| 611 | mode: CacheMode::NoStore, |
| 612 | manager: manager.clone(), |
| 613 | options: Default::default(), |
nothing calls this directly
no test coverage detected