MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / test_disabling_cache

Function test_disabling_cache

src/secrets/src/cache.rs:260–297  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

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() {

Callers

nothing calls this directly

Calls 9

expectMethod · 0.80
disable_cachingMethod · 0.80
enable_cachingMethod · 0.80
UserClass · 0.50
readerMethod · 0.45
cloneMethod · 0.45
ensureMethod · 0.45
readMethod · 0.45
drainMethod · 0.45

Tested by

no test coverage detected