Fix tests to use actual store and app

This commit is contained in:
Joey Payne 2016-05-17 07:28:11 -06:00
commit 5279717f95
2 changed files with 62 additions and 26 deletions

View file

@ -4,14 +4,30 @@ import React from 'react'
import ReactDOM from 'react-dom' import ReactDOM from 'react-dom'
import TestUtils from 'react-addons-test-utils' import TestUtils from 'react-addons-test-utils'
import injectTapEventPlugin from "react-tap-event-plugin"
injectTapEventPlugin()
const { Provider } = require('react-redux')
const App = require('../../containers/App').default
const EntrySelector = require('../EntrySelector').default const EntrySelector = require('../EntrySelector').default
const configureStore = require('../../store/configureStore').default
const store = configureStore()
const Chrome49 = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2454.85 Safari/537.36'
global.navigator = { userAgent: Chrome49 }
describe('EntrySelector', () => { describe('EntrySelector', () => {
it('test jest', () => { it('test jest', () => {
var entrySelector = TestUtils.renderIntoDocument( var prov = TestUtils.renderIntoDocument(
<EntrySelector id="entry-selector" className="left inline fill-height" /> <Provider store={store}>
<App />
</Provider>
) )
var entrySelector = TestUtils.findRenderedComponentWithType(prov, EntrySelector)
expect(entrySelector.state.notes.length).toEqual(0) expect(entrySelector.state.notes.length).toEqual(0)
}) })
}) })

View file

@ -4,16 +4,24 @@ import React from 'react'
import ReactDOM from 'react-dom' import ReactDOM from 'react-dom'
import TestUtils from 'react-addons-test-utils' import TestUtils from 'react-addons-test-utils'
import * as utils from '../../utils'
utils.APP_NAME = 'JestTest'
import path from 'path' import path from 'path'
import fs from 'fs' import fs from 'fs'
const Chrome49 = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2454.85 Safari/537.36'
global.navigator = { userAgent: Chrome49 }
const injectTapEventPlugin = require("react-tap-event-plugin") const injectTapEventPlugin = require("react-tap-event-plugin")
injectTapEventPlugin() injectTapEventPlugin()
const LibraryNav = require('../LibraryNav').default const LibraryNav = require('../LibraryNav').default
const { Provider } = require('react-redux')
const App = require('../../containers/App').default
const configureStore = require('../../store/configureStore').default
const store = configureStore()
function tap(element){ function tap(element){
var dom = ReactDOM.findDOMNode(element).firstChild var dom = ReactDOM.findDOMNode(element).firstChild
@ -22,36 +30,43 @@ function tap(element){
describe('LibraryNav', () => { describe('LibraryNav', () => {
beforeEach(() => { it('test index select', (done) => {
}) var prov = TestUtils.renderIntoDocument(
<Provider store={store}>
it('test index select', () => { <App />
var libraryNav = TestUtils.renderIntoDocument( </Provider>
<LibraryNav id="library-nav" className="left inline fill-height" />
) )
expect(libraryNav.state.navItems.length).toEqual(5) var libraryNav = TestUtils.findRenderedComponentWithType(prov, LibraryNav)
var libraryNavList = libraryNav.refs.mainList var state = libraryNav.context.store.getState()
expect(state.navigation.menuItems.length).toEqual(5)
var entriesItem = libraryNav.refs.Entries expect(state.navigation.selectionIndex).toEqual(0)
tap(entriesItem)
expect(libraryNavList.state.selectedIndex).toEqual(0)
var allNotesItem = libraryNav.refs['All Notes'] var allNotesItem = libraryNav.refs['All Notes']
tap(allNotesItem) libraryNav.menuItemClicked(allNotesItem.props.value, {}, () => {
expect(libraryNavList.state.selectedIndex).toEqual(4) state = libraryNav.context.store.getState()
expect(state.navigation.selectionIndex).toEqual(4)
done()
})
}) })
it('test add notebook', (done) => { it('test add notebook', (done) => {
var libraryNav = TestUtils.renderIntoDocument( var prov = TestUtils.renderIntoDocument(
<LibraryNav id="library-nav" className="left inline fill-height" /> <Provider store={store}>
<App />
</Provider>
) )
var libraryNav = TestUtils.findRenderedComponentWithType(prov, LibraryNav)
var initialLen = libraryNav.state.notebooks.length
var state = libraryNav.context.store.getState()
var initialLen = state.navigation.notebooks.length
var callback = (notebook) => { var callback = (notebook) => {
var afterLen = libraryNav.state.notebooks.length var afterLen = state.navigation.notebooks.length
expect(afterLen).toBeGreaterThan(initialLen) expect(afterLen).toBeGreaterThan(initialLen)
@ -67,14 +82,19 @@ describe('LibraryNav', () => {
}) })
it('test delete notebook', (done) => { it('test delete notebook', (done) => {
var libraryNav = TestUtils.renderIntoDocument( var prov = TestUtils.renderIntoDocument(
<LibraryNav id="library-nav" className="left inline fill-height" /> <Provider store={store}>
<App />
</Provider>
) )
var libraryNav = TestUtils.findRenderedComponentWithType(prov, LibraryNav)
var initialLen = libraryNav.state.notebooks.length var state = libraryNav.context.store.getState()
var initialLen = state.navigation.notebooks.length
var callback = (notebook) => { var callback = (notebook) => {
var afterLen = libraryNav.state.notebooks.length var afterLen = state.navigation.notebooks.length
expect(initialLen).toBeGreaterThan(afterLen) expect(initialLen).toBeGreaterThan(afterLen)