()
| 258 | |
| 259 | #[mz_ore::test(tokio::test)] |
| 260 | async fn test_disabling_cache() { |
| 261 | let controller = InMemorySecretsController::new(); |
| 262 | let testing_reader = TestingSecretsReader::new(controller.reader()); |
| 263 | let caching_reader = CachingSecretsReader::new(Arc::new(testing_reader.clone())); |
| 264 | |
| 265 | let secret = [42, 42, 42, 42]; |
| 266 | let id = CatalogItemId::User(1); |
| 267 | |
| 268 | // Store a value. |
| 269 | controller.ensure(id, &secret).await.expect("success"); |
| 270 | |
| 271 | // Read twice, which should hit the cache the second time. |
| 272 | caching_reader.read(id).await.expect("success"); |
| 273 | caching_reader.read(id).await.expect("success"); |
| 274 | |
| 275 | let reads = testing_reader.drain(); |
| 276 | assert_eq!(reads.len(), 1); |
| 277 | |
| 278 | // Disable caching. |
| 279 | caching_reader.disable_caching(); |
| 280 | |
| 281 | // Read twice again, both should hit the source. |
| 282 | caching_reader.read(id).await.expect("success"); |
| 283 | caching_reader.read(id).await.expect("success"); |
| 284 | |
| 285 | let reads = testing_reader.drain(); |
| 286 | assert_eq!(reads.len(), 2); |
| 287 | |
| 288 | // Re-enable caching. |
| 289 | caching_reader.enable_caching(); |
| 290 | |
| 291 | // Read twice again, first should populate the cache, second should hit it. |
| 292 | caching_reader.read(id).await.expect("success"); |
| 293 | caching_reader.read(id).await.expect("success"); |
| 294 | |
| 295 | let reads = testing_reader.drain(); |
| 296 | assert_eq!(reads.len(), 1); |
| 297 | } |
| 298 | |
| 299 | #[mz_ore::test(tokio::test)] |
| 300 | async fn updating_cache_values() { |
nothing calls this directly
no test coverage detected