-
Notifications
You must be signed in to change notification settings - Fork 3k
/
Copy pathOnboardingSelectorsTest.ts
36 lines (35 loc) · 2.33 KB
/
OnboardingSelectorsTest.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import type {OnyxValue} from 'react-native-onyx';
import {hasCompletedGuidedSetupFlowSelector} from '@libs/onboardingSelectors';
import CONST from '@src/CONST';
import type ONYXKEYS from '@src/ONYXKEYS';
describe('onboardingSelectors', () => {
// Not all users have this NVP defined as we did not run a migration to backfill it for existing accounts, hence we need to make sure
// the onboarding flow is only showed to the users with `hasCompletedGuidedSetupFlow` set to false
describe('hasCompletedGuidedSetupFlowSelector', () => {
// It might be the case that backend returns an empty array if the NVP is not defined on this particular account
it('Should return true if onboarding NVP is an array', () => {
const onboarding = [] as OnyxValue<typeof ONYXKEYS.NVP_ONBOARDING>;
expect(hasCompletedGuidedSetupFlowSelector(onboarding)).toBe(true);
});
it('Should return true if onboarding NVP is an empty object', () => {
const onboarding = {} as OnyxValue<typeof ONYXKEYS.NVP_ONBOARDING>;
expect(hasCompletedGuidedSetupFlowSelector(onboarding)).toBe(true);
});
it('Should return true if onboarding NVP contains only signupQualifier', () => {
const onboarding = {signupQualifier: CONST.ONBOARDING_SIGNUP_QUALIFIERS.VSB} as OnyxValue<typeof ONYXKEYS.NVP_ONBOARDING>;
expect(hasCompletedGuidedSetupFlowSelector(onboarding)).toBe(true);
});
it('Should return true if onboarding NVP contains hasCompletedGuidedSetupFlow = true', () => {
const onboarding = {hasCompletedGuidedSetupFlow: true} as OnyxValue<typeof ONYXKEYS.NVP_ONBOARDING>;
expect(hasCompletedGuidedSetupFlowSelector(onboarding)).toBe(true);
});
it('Should return false if onboarding NVP contains hasCompletedGuidedSetupFlow = false', () => {
const onboarding = {hasCompletedGuidedSetupFlow: false} as OnyxValue<typeof ONYXKEYS.NVP_ONBOARDING>;
expect(hasCompletedGuidedSetupFlowSelector(onboarding)).toBe(false);
});
it('Should return true if onboarding NVP contains only selfTourViewed', () => {
const onboarding = {selfTourViewed: true} as OnyxValue<typeof ONYXKEYS.NVP_ONBOARDING>;
expect(hasCompletedGuidedSetupFlowSelector(onboarding)).toBe(true);
});
});
});