test: Schema cache load debouncing
test: adjust replicateM to 100
(cherry picked from commit 328598eaed)
This commit is contained in:
committed by
Taimoor Zaeem
parent
77dde73057
commit
aae929a718
@@ -47,6 +47,31 @@ spec = describe "Server started with metrics enabled" $ do
|
|||||||
-- wait up to 2 secs so that retry can happen
|
-- wait up to 2 secs so that retry can happen
|
||||||
waitFor (2 * sec) "SchemaCacheLoadedObs" $ \x -> [ o | o@(SchemaCacheLoadedObs{}) <- pure x]
|
waitFor (2 * sec) "SchemaCacheLoadedObs" $ \x -> [ o | o@(SchemaCacheLoadedObs{}) <- pure x]
|
||||||
|
|
||||||
|
it "Should debounce schema cache loads" $ do
|
||||||
|
SpecState{specAppState = appState, specMetrics = metrics, specObsChan} <- getState
|
||||||
|
let waitFor = waitForObs specObsChan
|
||||||
|
|
||||||
|
liftIO $ checkState' metrics [
|
||||||
|
-- we expect exactly 2 successful schema cache loads
|
||||||
|
schemaCacheLoads "FAIL" (+0),
|
||||||
|
schemaCacheLoads "SUCCESS" (+2)
|
||||||
|
] $ do
|
||||||
|
AppState.schemaCacheLoader appState
|
||||||
|
-- at this moment there is no dedicated observation emited
|
||||||
|
-- when schema cache load starts
|
||||||
|
-- so we wait for DBConnectedObs which is emited right after successful
|
||||||
|
-- PostgreSQL version query during schema cache loading
|
||||||
|
waitFor (1 * sec) "DBConnectedObs" $ \x -> [ o | o@(DBConnectedObs{}) <- pure x]
|
||||||
|
-- request schema cache load multiple times
|
||||||
|
-- all of them should be handled by a single schema cache load
|
||||||
|
replicateM_ 100 (AppState.schemaCacheLoader appState)
|
||||||
|
-- wait for two expected SchemaCacheLoadedObs events
|
||||||
|
replicateM_ 2 $ waitFor (1 * sec) "SchemaCacheLoadedObs" $ \x -> [ o | o@(SchemaCacheLoadedObs{}) <- pure x]
|
||||||
|
-- wait 1 sec to make sure we capture all potential schema cache loads
|
||||||
|
-- (there should be none but we need to verify that)
|
||||||
|
threadDelay $ 1 * sec
|
||||||
|
|
||||||
|
|
||||||
where
|
where
|
||||||
-- prometheus-client api to handle vectors is convoluted
|
-- prometheus-client api to handle vectors is convoluted
|
||||||
schemaCacheLoads label = expectField @"schemaCacheLoads" $
|
schemaCacheLoads label = expectField @"schemaCacheLoads" $
|
||||||
|
|||||||
Reference in New Issue
Block a user