Skip to content

Commit

Permalink
test - added personal form tests
Browse files Browse the repository at this point in the history
  • Loading branch information
tony-blockchain committed Jul 18, 2018
1 parent 34eabff commit 0f94188
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ import React from 'react'
import { TestBed, getDispatchSpyReducer, createTestStore } from 'utils/testbed'
import { mount } from 'enzyme'
import { combineReducers } from 'redux'
import { last } from 'ramda'

import { actions } from 'data'
import { actions, actionTypes } from 'data'
import { MODAL_NAME } from 'data/components/identityVerification/model'
import { coreReducers, paths, coreSagasFactory } from 'blockchain-wallet-v4/src'
import identityVerificationReducer from 'data/components/identityVerification/reducers'
Expand Down Expand Up @@ -145,6 +146,21 @@ describe('IdentityVerification Modal', () => {
expect(wrapper.find('Field[name="email"]')).toHaveLength(1)
})

it('should show current email after navigation', () => {
wrapper
.find('Field[name="email"]')
.closest('template__VerifiedContainer')
.find('template__EditLink')
.prop('onClick')()
wrapper.update()
expect(
wrapper
.find('Field[name="email"]')
.find('input')
.prop('value')
).toBe(stubMail)
})

it('should navigate to sms number edit form on edit mobile button click', () => {
wrapper
.find('Field[name="smsNumber"]')
Expand All @@ -155,6 +171,68 @@ describe('IdentityVerification Modal', () => {
expect(wrapper.find(EditSmsNumber)).toHaveLength(1)
expect(wrapper.find('Field[name="smsNumber"]')).toHaveLength(1)
})

it('should show current number after navigation', () => {
wrapper
.find('Field[name="smsNumber"]')
.closest('template__VerifiedContainer')
.find('template__EditLink')
.prop('onClick')()
wrapper.update()
expect(
wrapper.find('Field[name="smsNumber"]').prop('defaultValue')
).toBe(stubMobile)
})

it('should be disabled and not submit by default', () => {
expect(wrapper.find('Button[type="submit"]').prop('disabled')).toBe(
true
)
wrapper.find('template__PersonalForm').simulate('submit')
expect(last(dispatchSpy.mock.calls)[0].type).toEqual(
actionTypes.form.SET_SUBMIT_FAILED
)
})

it('should enable continue if all fields are filled', () => {
wrapper
.find('Field[name="dob"]')
.find('input')
.simulate('change', { target: { value: '11/11/1999' } })
wrapper
.find('Field[name="lastName"]')
.find('input')
.simulate('change', { target: { value: 'Beloved' } })
wrapper
.find('Field[name="firstName"]')
.find('input')
.simulate('change', { target: { value: 'User' } })
wrapper.update()
expect(wrapper.find('Button[type="submit"]').prop('disabled')).toBe(
false
)
})

it('should validate age to be over 18', () => {
wrapper
.find('Field[name="dob"]')
.find('input')
.simulate('change', {
target: { value: `11/11/${new Date().getFullYear() - 17}` }
})
wrapper
.find('Field[name="lastName"]')
.find('input')
.simulate('change', { target: { value: 'Beloved' } })
wrapper
.find('Field[name="firstName"]')
.find('input')
.simulate('change', { target: { value: 'User' } })
wrapper.update()
expect(wrapper.find('Button[type="submit"]').prop('disabled')).toBe(
true
)
})
})
})
})
Original file line number Diff line number Diff line change
Expand Up @@ -264,8 +264,8 @@ const Personal = ({
<Button
uppercase
nature='primary'
type='submit'
fullwidth
onClick={handleSubmit}
disabled={
invalid ||
submitting ||
Expand Down
2 changes: 2 additions & 0 deletions packages/blockchain-wallet-v4-frontend/src/utils/testbed.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import ConnectedIntlProvider from 'providers/ConnectedIntlProvider'
import ThemeProvider from 'providers/ThemeProvider'
import configureLocales from 'services/LocalesService'
import preferencesReducer from 'data/preferences/reducers'
import formReducer from 'data/form/reducers'

export const createTestStore = (
reducers = {},
Expand All @@ -18,6 +19,7 @@ export const createTestStore = (
) => {
const sagaMiddleware = createSagaMiddleware()
const combinedReducers = combineReducers({
form: formReducer,
prferences: preferencesReducer,
...reducers
})
Expand Down

0 comments on commit 0f94188

Please sign in to comment.