Skip to content

Commit

Permalink
use enzyme and update tests
Browse files Browse the repository at this point in the history
  • Loading branch information
doobix committed Mar 30, 2018
1 parent dbf2175 commit b8c3253
Show file tree
Hide file tree
Showing 4 changed files with 272 additions and 31 deletions.
7 changes: 5 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,17 @@
"version": "0.1.0",
"private": true,
"dependencies": {
"enzyme": "^3.3.0",
"enzyme-adapter-react-16": "^1.1.1",
"react": "^16.2.0",
"react-dom": "^16.2.0",
"react-scripts": "1.1.1"
"react-scripts": "1.1.1",
"react-test-renderer": "^16.3.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}
}
24 changes: 17 additions & 7 deletions src/App.test.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,22 @@
import React from 'react';
import ReactDOM from 'react-dom';
import renderer from 'react-test-renderer';
import { mount, shallow } from 'enzyme';
import App from './App';
import setupBrowserMocks from './utils/browserMocks';

setupBrowserMocks();
describe('App', () => {
it('renders correctly', () => {
const wrapper = shallow(<App />);
expect(wrapper.find('WeightCheckboxes')).toHaveLength(2);
expect(wrapper.find('WeightResults')).toHaveLength(1);
});

it('renders without crashing', () => {
const div = document.createElement('div');
ReactDOM.render(<App />, div);
ReactDOM.unmountComponentAtNode(div);
it('changing weight works correctly', () => {
const expectedResults = 'Add these weights to each side of the barbell to get 200 lbs:';
const wrapper = mount(<App />);
wrapper.find('.input-weight').simulate('change', {
target: { value: 200 },
});
wrapper.find('form').simulate('submit');
expect(wrapper.find('.weight-results p').text()).toBe(expectedResults);
});
});
15 changes: 6 additions & 9 deletions src/utils/browserMocks.js → src/setupTests.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
var localStorageMock = (function() {
var store = {};
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';

const localStorageMock = (function() {
const store = {};
return {
getItem: function(key) {
return store[key] || null;
Expand All @@ -12,13 +14,8 @@ var localStorageMock = (function() {
store = {};
}
};

})();

var setupBrowserMocks = function() {
Object.defineProperty(window, 'localStorage', {
value: localStorageMock
});
}
global.localStorage = localStorageMock;

export default setupBrowserMocks;
configure({ adapter: new Adapter() });
Loading

0 comments on commit b8c3253

Please sign in to comment.