Skip to content

Commit

Permalink
refactor: Allow integration tests to use source code (#25)
Browse files Browse the repository at this point in the history
* Remove the need to import built versions of packages in integration tests using jest's moduleNameMapper option

* Upgrade jest with bugfix: jestjs/jest#8210

* prettify
  • Loading branch information
hedgepigdaniel committed Apr 11, 2019
1 parent 3492cac commit b5c3d34
Show file tree
Hide file tree
Showing 57 changed files with 601 additions and 389 deletions.
1 change: 0 additions & 1 deletion jest.config.js
Expand Up @@ -7,6 +7,5 @@ module.exports = {
path.resolve(__dirname, './config/babel-jest'),
),
},
testPathIgnorePatterns: ['/node_modules/', '<rootDir>/cjs/', '<rootDir>/es/'],
testEnvironment: 'node',
}
6 changes: 3 additions & 3 deletions package.json
Expand Up @@ -36,7 +36,7 @@
"@babel/runtime": "^7.3.4",
"babel-core": "^7.0.0-bridge.0",
"babel-eslint": "^9.0.0-beta.3",
"babel-jest": "^24.1.0",
"babel-jest": "^24.7.1",
"babel-loader": "^8.0.4",
"babel-watch": "git://github.com/hedgepigdaniel/babel-watch.git",
"cross-env": "^5.0.1",
Expand All @@ -55,8 +55,8 @@
"flow-bin": "^0.78.0",
"flow-copy-source": "^2.0.2",
"husky": "^0.14.3",
"jest": "^24.1.0",
"jest-cli": "^24.1.0",
"jest": "^24.7.1",
"jest-cli": "^24.7.1",
"jest-localstorage-mock": "^2.4.0",
"lerna": "^3.13.1",
"lint-staged": "^7.2.0",
Expand Down
6 changes: 3 additions & 3 deletions packages/integration-tests/__helpers__/createTest.js
Expand Up @@ -2,9 +2,9 @@ import { applyMiddleware, createStore, combineReducers } from 'redux'
import {
get,
clear,
} from '@respond-framework/rudy/src/history/utils/sessionStorage'
import { locationToUrl } from '@respond-framework/rudy/src/utils'
import { createRouter } from '@respond-framework/rudy/src'
} from '@respond-framework/rudy/history/utils/sessionStorage'
import { locationToUrl } from '@respond-framework/rudy/utils'
import { createRouter } from '@respond-framework/rudy'
import awaitUrlChange from './awaitUrlChange'

export default async (...allArgs) => {
Expand Down
4 changes: 2 additions & 2 deletions packages/integration-tests/__test-helpers__/createLink.js
Expand Up @@ -3,9 +3,9 @@ import renderer from 'react-test-renderer'
import { createStore, applyMiddleware } from 'redux'
import { Provider } from 'react-redux'

import { createRouter } from '@respond-framework/rudy/src'
import { createRouter } from '@respond-framework/rudy'

import Link, { NavLink } from '@respond-framework/rudy/src/Link'
import Link, { NavLink } from '@respond-framework/link'

const createLink = async (props, initialPath, options, isNavLink) => {
const link = isNavLink ? <NavLink {...props} /> : <Link {...props} />
Expand Down
4 changes: 2 additions & 2 deletions packages/integration-tests/__test-helpers__/createSequence.js
@@ -1,6 +1,6 @@
import { applyMiddleware, createStore, combineReducers } from 'redux'
import { createRouter, createScene } from '@respond-framework/rudy/src'
import { NOT_FOUND } from '@respond-framework/rudy/src/types'
import { createRouter, createScene } from '@respond-framework/rudy'
import { NOT_FOUND } from '@respond-framework/rudy/types'

import fakeAsyncWork from './fakeAsyncWork'

Expand Down
@@ -1,6 +1,6 @@
import createSmartHistory from '@respond-framework/rudy/src/history'
import { createInitialState } from '@respond-framework/rudy/src/core/createReducer'
import { NOT_FOUND } from '@respond-framework/rudy/src/types'
import { createHistory as createSmartHistory } from '@respond-framework/rudy'
import { createInitialState } from '@respond-framework/rudy/core/createReducer'
import { NOT_FOUND } from '@respond-framework/rudy/types'

export default async (type, pathname) => {
// eslint-disable-line import/prefer-default-export
Expand Down
4 changes: 2 additions & 2 deletions packages/integration-tests/__test-helpers__/rudySetup.js
@@ -1,7 +1,7 @@
import { applyMiddleware, createStore, combineReducers } from 'redux'
import reduxThunk from 'redux-thunk'
import { createRouter, createScene } from '@respond-framework/rudy/src'
import { NOT_FOUND } from '@respond-framework/rudy/src/types'
import { createRouter, createScene } from '@respond-framework/rudy'
import { NOT_FOUND } from '@respond-framework/rudy/types'

import fakeAsyncWork from './fakeAsyncWork'

Expand Down
2 changes: 1 addition & 1 deletion packages/integration-tests/__test-helpers__/setup.js
@@ -1,6 +1,6 @@
import { applyMiddleware, createStore } from 'redux'
import reduxThunk from 'redux-thunk'
import { createRouter } from '@respond-framework/rudy/src'
import { createRouter } from '@respond-framework/rudy'

const setup = (
path = '/',
Expand Down
2 changes: 1 addition & 1 deletion packages/integration-tests/__test-helpers__/setupThunk.js
@@ -1,5 +1,5 @@
import { createStore, applyMiddleware, combineReducers } from 'redux'
import createRouter from '@respond-framework/rudy/src/core/createRouter'
import createRouter from '@respond-framework/rudy/core/createRouter'

export default async (
path = '/',
Expand Down
2 changes: 1 addition & 1 deletion packages/integration-tests/__tests__/Link/Link.js
@@ -1,4 +1,4 @@
import { NOT_FOUND } from '@respond-framework/rudy/src/types'
import { NOT_FOUND } from '@respond-framework/rudy/types'
import createLink, { event } from '../../__test-helpers__/createLink'

test('ON_CLICK: dispatches location-aware action', async () => {
Expand Down
4 changes: 2 additions & 2 deletions packages/integration-tests/__tests__/integration/SPA.js
@@ -1,7 +1,7 @@
import createTest from '../../__helpers__/createTest'

jest.mock('@respond-framework/rudy/src/utils/isHydrate', () => () => false)
jest.mock('@respond-framework/utils/cjs/isServer', () => () => false)
jest.mock('@respond-framework/rudy/utils/isHydrate', () => () => false)
jest.mock('@respond-framework/utils/isServer', () => () => false)

createTest('callbacks called on load if SPA', {
FIRST: {
Expand Down
@@ -1,4 +1,4 @@
import { addRoutes } from '@respond-framework/rudy/src/actions'
import { addRoutes } from '@respond-framework/rudy/actions'
import createTest from '../../../__helpers__/createTest'

createTest(
Expand Down
@@ -1,4 +1,4 @@
import { changeBasename } from '@respond-framework/rudy/src/actions'
import { changeBasename } from '@respond-framework/rudy/actions'
import createTest from '../../../__helpers__/createTest'

createTest(
Expand Down
Expand Up @@ -12,7 +12,7 @@ import {
setHash,
setBasename,
redirect,
} from '@respond-framework/rudy/src/actions'
} from '@respond-framework/rudy/actions'
import createTest from '../../../__helpers__/createTest'

const routes = {
Expand Down
@@ -1,5 +1,5 @@
import { notFound } from '@respond-framework/rudy/src/actions'
import createScene from '@respond-framework/rudy/src/createScene'
import { notFound } from '@respond-framework/rudy/actions'
import createScene from '@respond-framework/rudy/createScene'
import createTest from '../../../__helpers__/createTest'

createTest('dispatch(notFound())', {}, [notFound()])
Expand Down
@@ -1,4 +1,4 @@
import { redirect } from '@respond-framework/rudy/src/actions'
import { redirect } from '@respond-framework/rudy/actions'
import createTest from '../../../__helpers__/createTest'

createTest('dispatch(redirect(action))', {}, [redirect({ type: 'REDIRECTED' })])
Expand Down
@@ -1,4 +1,4 @@
import { jump } from '@respond-framework/rudy/src/actions'
import { jump } from '@respond-framework/rudy/actions'
import createTest, { resetBrowser } from '../../../../__helpers__/createTest'

beforeEach(resetBrowser)
Expand Down
@@ -1,4 +1,4 @@
import { jump } from '@respond-framework/rudy/src/actions'
import { jump } from '@respond-framework/rudy/actions'
import createTest, {
resetBrowser,
setupStore,
Expand Down
@@ -1,4 +1,4 @@
import { push } from '@respond-framework/rudy/src/actions'
import { push } from '@respond-framework/rudy/actions'
import createTest, { resetBrowser } from '../../../../__helpers__/createTest'

beforeEach(resetBrowser)
Expand Down
@@ -1,4 +1,4 @@
import { push } from '@respond-framework/rudy/src/actions'
import { push } from '@respond-framework/rudy/actions'
import createTest, { resetBrowser } from '../../../../__helpers__/createTest'

beforeEach(resetBrowser)
Expand Down
@@ -1,4 +1,4 @@
import { replace } from '@respond-framework/rudy/src/actions'
import { replace } from '@respond-framework/rudy/actions'
import createTest, { resetBrowser } from '../../../../__helpers__/createTest'

beforeEach(resetBrowser)
Expand Down
@@ -1,5 +1,5 @@
import { locationToUrl } from '@respond-framework/rudy/src/utils'
import { reset } from '@respond-framework/rudy/src/actions'
import { locationToUrl } from '@respond-framework/rudy/utils'
import { reset } from '@respond-framework/rudy/actions'
import createTest, { resetBrowser } from '../../../../__helpers__/createTest'

beforeEach(resetBrowser)
Expand Down
@@ -1,5 +1,5 @@
import { locationToUrl } from '@respond-framework/rudy/src/utils'
import { reset } from '@respond-framework/rudy/src/actions'
import { locationToUrl } from '@respond-framework/rudy/utils'
import { reset } from '@respond-framework/rudy/actions'
import createTest, {
resetBrowser,
setupStore,
Expand Down
@@ -1,4 +1,4 @@
import { set, setState } from '@respond-framework/rudy/src/actions'
import { set, setState } from '@respond-framework/rudy/actions'
import createTest, { resetBrowser } from '../../../../__helpers__/createTest'

beforeEach(resetBrowser)
Expand Down
@@ -1,5 +1,5 @@
import { locationToUrl } from '@respond-framework/rudy/src/utils'
import { jump } from '@respond-framework/rudy/src/actions'
import { locationToUrl } from '@respond-framework/rudy/utils'
import { jump } from '@respond-framework/rudy/actions'
import createTest from '../../../../__helpers__/createTest'

createTest(
Expand Down
@@ -1,5 +1,5 @@
import { locationToUrl } from '@respond-framework/rudy/src/utils'
import { jump } from '@respond-framework/rudy/src/actions'
import { locationToUrl } from '@respond-framework/rudy/utils'
import { jump } from '@respond-framework/rudy/actions'
import createTest from '../../../../__helpers__/createTest'

createTest(
Expand Down
@@ -1,5 +1,5 @@
import { locationToUrl } from '@respond-framework/rudy/src/utils'
import { jump } from '@respond-framework/rudy/src/actions'
import { locationToUrl } from '@respond-framework/rudy/utils'
import { jump } from '@respond-framework/rudy/actions'
import createTest from '../../../../__helpers__/createTest'

createTest(
Expand Down
@@ -1,5 +1,5 @@
import { locationToUrl } from '@respond-framework/rudy/src/utils'
import { push } from '@respond-framework/rudy/src/actions'
import { locationToUrl } from '@respond-framework/rudy/utils'
import { push } from '@respond-framework/rudy/actions'
import createTest from '../../../../__helpers__/createTest'

createTest(
Expand Down
@@ -1,5 +1,5 @@
import { locationToUrl } from '@respond-framework/rudy/src/utils'
import { replace } from '@respond-framework/rudy/src/actions'
import { locationToUrl } from '@respond-framework/rudy/utils'
import { replace } from '@respond-framework/rudy/actions'
import createTest from '../../../../__helpers__/createTest'

createTest(
Expand Down
@@ -1,5 +1,5 @@
import { locationToUrl } from '@respond-framework/rudy/src/utils'
import { reset } from '@respond-framework/rudy/src/actions'
import { locationToUrl } from '@respond-framework/rudy/utils'
import { reset } from '@respond-framework/rudy/actions'
import createTest from '../../../../__helpers__/createTest'

createTest(
Expand Down
@@ -1,5 +1,5 @@
import { locationToUrl } from '@respond-framework/rudy/src/utils'
import { reset } from '@respond-framework/rudy/src/actions'
import { locationToUrl } from '@respond-framework/rudy/utils'
import { reset } from '@respond-framework/rudy/actions'
import createTest from '../../../../__helpers__/createTest'

createTest(
Expand Down
@@ -1,5 +1,5 @@
import { locationToUrl } from '@respond-framework/rudy/src/utils'
import { reset } from '@respond-framework/rudy/src/actions'
import { locationToUrl } from '@respond-framework/rudy/utils'
import { reset } from '@respond-framework/rudy/actions'
import createTest from '../../../../__helpers__/createTest'

createTest(
Expand Down
@@ -1,5 +1,5 @@
import { locationToUrl } from '@respond-framework/rudy/src/utils'
import { set } from '@respond-framework/rudy/src/actions'
import { locationToUrl } from '@respond-framework/rudy/utils'
import { set } from '@respond-framework/rudy/actions'
import createTest from '../../../../__helpers__/createTest'

createTest(
Expand Down
@@ -1,5 +1,5 @@
import { locationToUrl } from '@respond-framework/rudy/src/utils'
import { set } from '@respond-framework/rudy/src/actions'
import { locationToUrl } from '@respond-framework/rudy/utils'
import { set } from '@respond-framework/rudy/actions'
import createTest from '../../../../__helpers__/createTest'

createTest(
Expand Down
@@ -1,14 +1,12 @@
import { get } from '@respond-framework/rudy/src/history/utils/sessionStorage'
import { get } from '@respond-framework/rudy/history/utils/sessionStorage'
import createTest, { setupStore } from '../../../../__helpers__/createTest'

// MemoryHistory can be used as a fallback in the browser (ie. 8/9)
// Those browsers do support SessionStorage, so we have capabilities to remember
// entries even in those older browsers.

jest.mock('@respond-framework/rudy/src/history/utils/supports', () => ({
...require.requireActual(
'@respond-framework/rudy/src/history/utils/supports',
),
jest.mock('@respond-framework/rudy/history/utils/supports', () => ({
...require.requireActual('@respond-framework/rudy/history/utils/supports'),
supportsSession: jest.fn(() => true),
supportsHistory: jest.fn(() => false),
}))
Expand Down
Expand Up @@ -3,10 +3,8 @@ import createTest, { setupStore } from '../../../../__helpers__/createTest'
// when there is no `sessionStorage`, we fallback to our innovative solution of
// storing all session info on EVERY entry of the real browser history!

jest.mock('@respond-framework/rudy/src/history/utils/supports', () => ({
...require.requireActual(
'@respond-framework/rudy/src/history/utils/supports',
),
jest.mock('@respond-framework/rudy/history/utils/supports', () => ({
...require.requireActual('@respond-framework/rudy/history/utils/supports'),
supportsSession: jest.fn(() => false),
}))

Expand Down
Expand Up @@ -3,10 +3,8 @@ import createTest, { setupStore } from '../../../../__helpers__/createTest'
// when there is no `sessionStorage`, we fallback to our innovative solution of
// storing all session info on EVERY entry of the real browser history!

jest.mock('@respond-framework/rudy/src/history/utils/supports', () => ({
...require.requireActual(
'@respond-framework/rudy/src/history/utils/supports',
),
jest.mock('@respond-framework/rudy/history/utils/supports', () => ({
...require.requireActual('@respond-framework/rudy/history/utils/supports'),
supportsSession: jest.fn(() => false),
}))

Expand Down
@@ -1,4 +1,4 @@
import { get } from '@respond-framework/rudy/src/history/utils/sessionStorage'
import { get } from '@respond-framework/rudy/history/utils/sessionStorage'
import createTest, { setupStore } from '../../../../__helpers__/createTest'

beforeAll(async () => {
Expand Down
@@ -1,4 +1,4 @@
import { get } from '@respond-framework/rudy/src/history/utils/sessionStorage'
import { get } from '@respond-framework/rudy/history/utils/sessionStorage'
import createTest, { setupStore } from '../../../../__helpers__/createTest'

beforeAll(async () => {
Expand Down
@@ -1,4 +1,4 @@
import { get } from '@respond-framework/rudy/src/history/utils/sessionStorage'
import { get } from '@respond-framework/rudy/history/utils/sessionStorage'
import createTest, { setupStore } from '../../../../__helpers__/createTest'

// note restoreFromMiddle is in fact the same as restoreFromFront
Expand Down
@@ -1,4 +1,4 @@
import { callRoute } from '@respond-framework/rudy/src/utils'
import { callRoute } from '@respond-framework/rudy/utils'
import createTest from '../../__helpers__/createTest'

createTest(
Expand Down
Expand Up @@ -2,9 +2,9 @@ import {
transformAction,
call,
enter,
} from '@respond-framework/rudy/src/middleware'
} from '@respond-framework/rudy/middleware'

import { compose } from '@respond-framework/rudy/src/core'
import { compose } from '@respond-framework/rudy/core'
import createTest from '../../__helpers__/createTest'

createTest('call({ start: true })', {
Expand Down
@@ -1,4 +1,4 @@
import { Request } from '@respond-framework/rudy/src/core/createRequest'
import { Request } from '@respond-framework/rudy/core/createRequest'
import createTest from '../../__helpers__/createTest'

createTest(
Expand Down
@@ -1,4 +1,4 @@
import createScene from '@respond-framework/rudy/src/createScene'
import createScene from '@respond-framework/rudy/createScene'
import createTest from '../../../__helpers__/createTest'

const routesMap = {
Expand Down
@@ -1,4 +1,4 @@
import createScene from '@respond-framework/rudy/src/createScene'
import createScene from '@respond-framework/rudy/createScene'
import createTest from '../../../__helpers__/createTest'

const routesMap = {
Expand Down
@@ -1,4 +1,4 @@
import createScene from '@respond-framework/rudy/src/createScene'
import createScene from '@respond-framework/rudy/createScene'

const routesMap = {
SECOND: {
Expand Down
@@ -1,4 +1,4 @@
import { notFound } from '@respond-framework/rudy/src/actions'
import { notFound } from '@respond-framework/rudy/actions'
import createTest from '../../__helpers__/createTest'

createTest('routes as path string', {
Expand Down
4 changes: 2 additions & 2 deletions packages/integration-tests/__tests__/integration/hydrate.js
@@ -1,7 +1,7 @@
import createTest from '../../__helpers__/createTest'

jest.mock('@respond-framework/rudy/src/utils/isHydrate', () => () => true)
jest.mock('@respond-framework/utils/cjs/isServer', () => () => false)
jest.mock('@respond-framework/rudy/utils/isHydrate', () => () => true)
jest.mock('@respond-framework/utils/isServer', () => () => false)

createTest('beforeEnter + thunk callbacks NOT called if isHydrate', {
FIRST: {
Expand Down

0 comments on commit b5c3d34

Please sign in to comment.