MCPcopy Create free account
hub / github.com/dfinity/orbit / wait_for_request_with_extra_ticks

Function wait_for_request_with_extra_ticks

tests/integration/src/utils.rs:267–303  ·  view source on GitHub ↗
(
    env: &PocketIc,
    user_id: Principal,
    station_canister_id: CanisterId,
    request: RequestDTO,
    extra_ticks: u64,
)

Source from the content-addressed store, hash-verified

265}
266
267pub fn wait_for_request_with_extra_ticks(
268 env: &PocketIc,
269 user_id: Principal,
270 station_canister_id: CanisterId,
271 request: RequestDTO,
272 extra_ticks: u64,
273) -> Result<RequestDTO, Option<RequestStatusDTO>> {
274 // wait for the request to be approved
275 env.advance_time(Duration::from_secs(2));
276 env.tick();
277 // wait for the request to be processing
278 env.advance_time(Duration::from_secs(2));
279 env.tick();
280 // wait in case the request calls out to other canisters
281 env.advance_time(Duration::from_secs(2));
282 env.tick();
283
284 for _ in 0..extra_ticks {
285 // timer's period for processing requests is 5 seconds
286 env.advance_time(Duration::from_secs(5));
287 env.tick();
288 }
289 // wait for the request to be completed
290 for _ in 0..100 {
291 let new_request = get_request(env, user_id, station_canister_id, request.clone());
292 if is_request_completed(new_request.clone()) {
293 return Ok(new_request);
294 }
295 if is_request_evaluated(new_request.clone()) {
296 return Err(Some(new_request.status));
297 }
298 // timer's period for processing requests is 5 seconds
299 env.advance_time(Duration::from_secs(5));
300 env.tick();
301 }
302 Err(None)
303}
304
305pub fn execute_request(
306 env: &PocketIc,

Callers 3

wait_for_requestFunction · 0.85
failed_system_restoreFunction · 0.85

Calls 3

is_request_completedFunction · 0.85
is_request_evaluatedFunction · 0.85
get_requestFunction · 0.70

Tested by 1

failed_system_restoreFunction · 0.68