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

Function test_read_from_cache

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

Source from the content-addressed store, hash-verified

197
198 #[mz_ore::test(tokio::test)]
199 async fn test_read_from_cache() {
200 let controller = InMemorySecretsController::new();
201 let testing_reader = TestingSecretsReader::new(controller.reader());
202 let caching_reader = CachingSecretsReader::new(Arc::new(testing_reader.clone()));
203
204 let secret = [42, 42, 42, 42];
205 let id = CatalogItemId::User(1);
206
207 // Add a new secret and read it back.
208 controller
209 .ensure(CatalogItemId::User(1), &secret[..])
210 .await
211 .expect("success");
212 let roundtrip = caching_reader.read(id).await.expect("success");
213
214 // The secret should be correct.
215 assert_eq!(roundtrip, secret.to_vec());
216
217 // Read it a second time, our cache should be populated now.
218 let roundtrip2 = caching_reader.read(id).await.expect("success");
219 assert_eq!(roundtrip2, secret.to_vec());
220
221 let reads = testing_reader.drain();
222 assert_eq!(reads.len(), 1);
223
224 // We should only have one read, as the second should have hit the cache.
225 assert_eq!(reads[0], id);
226 }
227
228 #[mz_ore::test(tokio::test)]
229 async fn test_reading_expired_secret() {

Callers

nothing calls this directly

Calls 7

expectMethod · 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