token-wizard/test/components/StepThree/index.spec.js

100 lines
3.1 KiB
JavaScript

import React from 'react'
import { StepThree } from '../../../src/components/StepThree'
import { strategies } from '../../../src/utils/strategies'
import renderer from 'react-test-renderer'
import Adapter from 'enzyme-adapter-react-15'
import { configure } from 'enzyme'
import {
contractStore,
web3Store,
tierStore,
generalStore,
gasPriceStore,
reservedTokenStore,
deploymentStore,
tokenStore,
crowdsaleStore
} from '../../../src/stores'
import { MemoryRouter } from 'react-router'
import { Provider } from 'mobx-react'
import MockDate from 'mockdate'
configure({ adapter: new Adapter() })
global.scrollTo = jest.fn()
jest.mock('../../../src/utils/api')
jest.mock('../../../src/utils/fetchFile')
const currentTime = '2018-03-13T11:00:00'
MockDate.set(currentTime)
describe('StepThree', () => {
const stores = {
contractStore,
web3Store,
tierStore,
generalStore,
gasPriceStore,
reservedTokenStore,
deploymentStore,
tokenStore,
crowdsaleStore
}
describe('StepThree - renders', () => {
strategies.forEach(strategy => {
it(`should render StepThree for ${strategy.display}`, () => {
// Given
// tierStore.addCrowdsale(walletAddress)
stores.crowdsaleStore.setProperty('strategy', strategy.type)
const component = renderer.create(
<Provider {...stores}>
<MemoryRouter initialEntries={['/']}>
<StepThree {...stores} />
</MemoryRouter>
</Provider>
)
// When
const tree = component.toJSON()
// Then
expect(tree).toMatchSnapshot()
})
})
})
// This tests is expected to trigger 'handleOnSubmit' method... but up to this point it wasn't working
// describe('StepThree - methods', () => {
// it(`should call onSubmit handler if form is valid`, () => {
// // Given
// const walletAddress = '0xAC7022d55dA6C8BB229b1Ba3Ce8A16724FF79c4A'
// const [{ type: strategy }] = strategies
// stores.crowdsaleStore.setProperty('strategy', strategy)
// stores.tierStore.addCrowdsale(walletAddress)
// stores.tokenStore.setProperty('decimals', 18)
//
// const wrapper = mount(
// <Provider {...stores}>
// <MemoryRouter initialEntries={['/']}>
// <StepThree {...stores} />
// </MemoryRouter>
// </Provider>
// )
// const handleOnSubmit = jest.spyOn(wrapper.find('StepThree').instance(), 'handleOnSubmit')
// // wrapper.update()
//
// // When
// wrapper.find('input[name="walletAddress"]').simulate('change', { target: { value: walletAddress } })
// wrapper.find('input[name="tiers[0].endTime"]').simulate('change', { target: { value: '2018-03-14T12:00:00' } })
// wrapper.find('input[name="tiers[0].rate"]').simulate('change', { target: { value: '100000' } })
// wrapper.find('input[name="tiers[0].supply"]').simulate('change', { target: { value: '100' } })
// wrapper.find('ButtonContinue').simulate('submit')
//
// // Then
// expect(handleOnSubmit).toHaveBeenCalledTimes(1)
// })
// })
})