Skip to content

Commit 68eb671

Browse files
committed
test: add tests for masking with screen loading
1 parent 1d7f7b0 commit 68eb671

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

test/utils/screen_loading/screen_loading_manager_test.dart

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,92 @@ void main() {
454454
),
455455
).called(1);
456456
});
457+
458+
test(
459+
'[startScreenLoadingTrace] should start screen loading trace when screen loading trace matches UI trace matching screen name',
460+
() async {
461+
const isSameScreen = true;
462+
const matchingScreenName = 'matching_screen_name';
463+
mScreenLoadingManager = ScreenLoadingManagerNoResets.init();
464+
when(FlagsConfig.screenLoading.isEnabled()).thenAnswer((_) async => true);
465+
when(IBGBuildInfo.I.isIOS).thenReturn(false);
466+
when(mDateTime.now()).thenReturn(time);
467+
468+
// Match on matching screen name
469+
when(
470+
RouteMatcher.I.match(
471+
routePath: screenName,
472+
actualPath: matchingScreenName,
473+
),
474+
).thenReturn(isSameScreen);
475+
476+
when(
477+
RouteMatcher.I.match(
478+
routePath: screenName,
479+
actualPath: screenName,
480+
),
481+
).thenReturn(!isSameScreen);
482+
483+
ScreenLoadingManager.I.currentUiTrace = uiTrace.copyWith(
484+
matchingScreenName: matchingScreenName,
485+
);
486+
487+
await ScreenLoadingManager.I.startScreenLoadingTrace(screenLoadingTrace);
488+
489+
final actualUiTrace = ScreenLoadingManager.I.currentUiTrace!;
490+
491+
expect(
492+
ScreenLoadingManager.I.currentScreenLoadingTrace,
493+
equals(screenLoadingTrace),
494+
);
495+
expect(
496+
actualUiTrace.didStartScreenLoading,
497+
isTrue,
498+
);
499+
});
500+
501+
test(
502+
'[startScreenLoadingTrace] should not start screen loading trace when screen loading trace does not matches UI trace matching screen name',
503+
() async {
504+
const isSameScreen = false;
505+
const matchingScreenName = 'matching_screen_name';
506+
mScreenLoadingManager = ScreenLoadingManagerNoResets.init();
507+
when(FlagsConfig.screenLoading.isEnabled()).thenAnswer((_) async => true);
508+
when(IBGBuildInfo.I.isIOS).thenReturn(false);
509+
when(mDateTime.now()).thenReturn(time);
510+
511+
// Don't match on matching screen name
512+
when(
513+
RouteMatcher.I.match(
514+
routePath: screenName,
515+
actualPath: matchingScreenName,
516+
),
517+
).thenReturn(isSameScreen);
518+
519+
when(
520+
RouteMatcher.I.match(
521+
routePath: screenName,
522+
actualPath: screenName,
523+
),
524+
).thenReturn(!isSameScreen);
525+
526+
ScreenLoadingManager.I.currentUiTrace = uiTrace.copyWith(
527+
matchingScreenName: matchingScreenName,
528+
);
529+
530+
await ScreenLoadingManager.I.startScreenLoadingTrace(screenLoadingTrace);
531+
532+
final actualUiTrace = ScreenLoadingManager.I.currentUiTrace!;
533+
534+
expect(
535+
ScreenLoadingManager.I.currentScreenLoadingTrace,
536+
isNull,
537+
);
538+
expect(
539+
actualUiTrace.didStartScreenLoading,
540+
isFalse,
541+
);
542+
});
457543
});
458544

459545
group('reportScreenLoading tests', () {

0 commit comments

Comments
 (0)