Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 0 additions & 69 deletions src/__tests__/Connect-test.tsx

This file was deleted.

8 changes: 4 additions & 4 deletions src/hooks/useLoadConnect.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ import _isEmpty from 'lodash/isEmpty'

import {
loadConnect as loadConnectStart,
loadConnectSuccessWithProfile,
loadConnectSuccess,
loadConnectError,
} from 'src/redux/actions/Connect'
import { COMBO_JOB_DATA_TYPES } from 'src/const/comboJobDataTypes'
import { VERIFY_MODE } from 'src/const/Connect'
import { useApi, ApiContextTypes } from 'src/context/ApiContext'
import { __ } from 'src/utilities/Intl'
import type { RootState, AppDispatch } from 'src/redux/Store'
import type { RootState } from 'src/redux/Store'
import { instutionSupportRequestedProducts } from 'src/utilities/Institution'
import { getExperimentalFeatures } from 'src/redux/reducers/experimentalFeaturesSlice'

Expand Down Expand Up @@ -53,7 +53,7 @@ const useLoadConnect = () => {
return document.querySelector('html')?.getAttribute('lang') || 'en'
}, [document.querySelector('html')?.getAttribute('lang')])
const [config, setConfig] = useState<ClientConfigType>({} as ClientConfigType)
const dispatch = useDispatch<AppDispatch>()
const dispatch = useDispatch()

const loadConnect = useCallback((config: ClientConfigType) => setConfig(config), [config])

Expand All @@ -78,7 +78,7 @@ const useLoadConnect = () => {
if (clientSupportRequestedProducts(config, profiles.clientProfile)) {
return from(api.loadMembers(clientLocale)).pipe(
map((members = []) =>
loadConnectSuccessWithProfile({
loadConnectSuccess({
experimentalFeatures,
members,
widgetProfile: profiles.widgetProfile,
Expand Down
12 changes: 0 additions & 12 deletions src/redux/actions/Connect.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,18 +58,6 @@ export const loadConnectSuccess = (dependencies = {}) => ({
type: ActionTypes.LOAD_CONNECT_SUCCESS,
payload: dependencies,
})
export const loadConnectSuccessWithProfile =
(dependencies = {}) =>
(dispatch, getState) => {
const { profiles } = getState()

dispatch(
loadConnectSuccess({
...dependencies,
user: profiles.user,
}),
)
}

export const loadConnectError = (err) => ({
type: ActionTypes.LOAD_CONNECT_ERROR,
Expand Down
12 changes: 0 additions & 12 deletions src/redux/reducers/Connect.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ const loadConnectSuccess = (state, action) => {
institution = {},
experimentalFeatures = {},
widgetProfile,
user = {},
} = action.payload

return {
Expand All @@ -84,7 +83,6 @@ const loadConnectSuccess = (state, action) => {
institution,
widgetProfile,
experimentalFeatures,
user,
),
),
selectedInstitution: institution,
Expand Down Expand Up @@ -550,7 +548,6 @@ function getStartingStep(
institution,
widgetProfile,
experimentalFeatures = {},
user = {},
) {
// Unavailable institutions experimental feature: Make sure we don't load a user
// directly to an institution that should be unavailable.
Expand All @@ -577,18 +574,9 @@ function getStartingStep(
(institution && institutionIsBlockedForCostReasons(institution)) ||
(member && memberIsBlockedForCostReasons(member)) ||
!institutionIsAvailable
const shouldStepToDemoConnectGuard =
user?.is_demo &&
institution &&
!institution?.is_demo &&
(config.current_institution_guid ||
config.current_institution_code ||
config.current_member_guid)

if (shouldStepToInstitutionStatusDetails) {
return STEPS.INSTITUTION_STATUS_DETAILS
} else if (shouldStepToDemoConnectGuard) {
return STEPS.DEMO_CONNECT_GUARD
} else if (shouldStepToMFA)
// They configured connect to resolve MFA on a member.
return STEPS.MFA
Expand Down
109 changes: 24 additions & 85 deletions src/redux/reducers/__tests__/Connect-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -389,85 +389,6 @@ describe('Connect redux store', () => {
STEPS.ENTER_CREDENTIALS,
)
})

it('should set the step to DEMO_CONNECT_GUARD when launching with current_institution_guid and user is demo but institution is not', () => {
const institution = { guid: 'INS-1', is_demo: false, credentials }
const user = { guid: 'USR-1', is_demo: true }
const config = { current_institution_guid: 'INS-1' }
const afterState = reducer(
defaultState,
loadConnectSuccess({ institution, config, widgetProfile, user }),
)

expect(afterState.location[afterState.location.length - 1].step).toEqual(
STEPS.DEMO_CONNECT_GUARD,
)
})

it('should set the step to DEMO_CONNECT_GUARD when launching with current_institution_code and user is demo but institution is not', () => {
const institution = { guid: 'INS-1', code: 'bank_code', is_demo: false, credentials }
const user = { guid: 'USR-1', is_demo: true }
const config = { current_institution_code: 'bank_code' }
const afterState = reducer(
defaultState,
loadConnectSuccess({ institution, config, widgetProfile, user }),
)

expect(afterState.location[afterState.location.length - 1].step).toEqual(
STEPS.DEMO_CONNECT_GUARD,
)
})

it('should set the step to DEMO_CONNECT_GUARD when launching with current_member_guid and user is demo but institution is not', () => {
const institution = { guid: 'INS-1', is_demo: false, credentials }
const user = { guid: 'USR-1', is_demo: true }
const member = genMember({ guid: 'MBR-1', connection_status: ReadableStatuses.CONNECTED })
const config = { current_member_guid: 'MBR-1' }
const afterState = reducer(
defaultState,
loadConnectSuccess({ member, institution, config, widgetProfile, user }),
)

expect(afterState.location[afterState.location.length - 1].step).toEqual(
STEPS.DEMO_CONNECT_GUARD,
)
})

it('should NOT set the step to DEMO_CONNECT_GUARD when launching with current_institution_guid but user is not demo', () => {
const institution = { guid: 'INS-1', is_demo: false, credentials }
const user = { guid: 'USR-1', is_demo: false }
const config = { current_institution_guid: 'INS-1' }
const afterState = reducer(
defaultState,
loadConnectSuccess({ institution, config, widgetProfile, user }),
)

expect(afterState.location[afterState.location.length - 1].step).toEqual(
STEPS.ENTER_CREDENTIALS,
)
})

it('should NOT set the step to DEMO_CONNECT_GUARD when launching with current_institution_guid and both user and institution are demo', () => {
const institution = { guid: 'INS-1', is_demo: true, credentials }
const user = { guid: 'USR-1', is_demo: true }
const config = { current_institution_guid: 'INS-1' }
const afterState = reducer(
defaultState,
loadConnectSuccess({ institution, config, widgetProfile, user }),
)

expect(afterState.location[afterState.location.length - 1].step).toEqual(
STEPS.ENTER_CREDENTIALS,
)
})

it('should NOT set the step to DEMO_CONNECT_GUARD when user is demo but no institution parameters are provided', () => {
const user = { guid: 'USR-1', is_demo: true }
const config = {}
const afterState = reducer(defaultState, loadConnectSuccess({ config, widgetProfile, user }))

expect(afterState.location[afterState.location.length - 1].step).toEqual(STEPS.SEARCH)
})
})

describe('loadConnectError', () => {
Expand Down Expand Up @@ -534,7 +455,10 @@ describe('Connect redux store', () => {
const config = { mode: VERIFY_MODE }
const afterState = reducer(
{ ...defaultState, isComponentLoading: true },
loadConnectSuccess({ config, members: [], widgetProfile }),
{
type: ActionTypes.LOAD_CONNECT_SUCCESS,
payload: { config, members: [], widgetProfile },
},
)
expect(afterState.location[afterState.location.length - 1].step).toEqual(STEPS.SEARCH)
})
Expand All @@ -549,7 +473,10 @@ describe('Connect redux store', () => {
const members = [member]
const afterState = reducer(
{ ...defaultState, isComponentLoading: true },
loadConnectSuccess({ config, member, members, widgetProfile }),
{
type: ActionTypes.LOAD_CONNECT_SUCCESS,
payload: { config, member, members, widgetProfile },
},
)
expect(afterState.location[afterState.location.length - 1].step).toEqual(
STEPS.ACTIONABLE_ERROR,
Expand All @@ -573,7 +500,10 @@ describe('Connect redux store', () => {
const members = [member]
const afterState = reducer(
{ ...defaultState, isComponentLoading: true },
loadConnectSuccess({ config, member, members, widgetProfile }),
{
type: ActionTypes.LOAD_CONNECT_SUCCESS,
payload: { config, member, members, widgetProfile },
},
)
expect(afterState.location[afterState.location.length - 1].step).toEqual(
STEPS.ACTIONABLE_ERROR,
Expand All @@ -597,7 +527,10 @@ describe('Connect redux store', () => {
const members = [member]
const afterState = reducer(
{ ...defaultState, isComponentLoading: true },
loadConnectSuccess({ config, member, members, widgetProfile }),
{
type: ActionTypes.LOAD_CONNECT_SUCCESS,
payload: { config, member, members, widgetProfile },
},
)
expect(afterState.location[afterState.location.length - 1].step).toEqual(
STEPS.ENTER_CREDENTIALS,
Expand All @@ -621,7 +554,10 @@ describe('Connect redux store', () => {
const members = [member]
const afterState = reducer(
{ ...defaultState, isComponentLoading: true },
loadConnectSuccess({ config, member, members, widgetProfile }),
{
type: ActionTypes.LOAD_CONNECT_SUCCESS,
payload: { config, member, members, widgetProfile },
},
)
expect(afterState.location[afterState.location.length - 1].step).toEqual(STEPS.MFA)
})
Expand All @@ -642,7 +578,10 @@ describe('Connect redux store', () => {
const members = [member]
const afterState = reducer(
{ ...defaultState, isComponentLoading: true },
loadConnectSuccess({ config, member, members, accounts: [], widgetProfile }),
{
type: ActionTypes.LOAD_CONNECT_SUCCESS,
payload: { config, member, members, accounts: [], widgetProfile },
},
)
expect(afterState.location[afterState.location.length - 1].step).toEqual(
STEPS.ACTIONABLE_ERROR,
Expand Down
Loading