Skip to content

Commit

Permalink
Merge pull request #3 from kaushiknishchay/test-case
Browse files Browse the repository at this point in the history
Test cases for Components
  • Loading branch information
kaushiknishchay committed Mar 29, 2018
2 parents c62ba25 + 9be6a04 commit 0a52aa5
Show file tree
Hide file tree
Showing 7 changed files with 90 additions and 8 deletions.
7 changes: 5 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"branches": 30,
"functions": 30,
"lines": 30,
"statements": 10
"statements": 30
}
}
},
Expand All @@ -31,9 +31,12 @@
"react-router-dom": "^4.2.2",
"react-scripts": "1.1.1",
"redux": "^3.7.2",
"redux-devtools-extension": "^2.13.2",
"redux-immutable": "^4.0.0",
"redux-logger": "^3.0.6",
"redux-thunk": "^2.2.0"
"redux-thunk": "^2.2.0",
"enzyme": "^3.3.0",
"enzyme-adapter-react-16": "^1.1.1"
},
"scripts": {
"start": "react-scripts start",
Expand Down
15 changes: 15 additions & 0 deletions src/components/__test__/Profile.test.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import React from 'react';
import { shallow } from 'enzyme';
import Profile from '../Profile';

describe('Profile Component', () => {
const profileData = {
login: 'username',
bio: 'this is my bio',
avatar_url: 'https://avatars1.githubusercontent.com/u/15786884?v=4',
};
it('should Render Profile Info', () => {
const wrapper = shallow(<Profile data={profileData} />);
expect(wrapper.find('.mt-0').contains(profileData.login)).toBe(true);
});
});
21 changes: 21 additions & 0 deletions src/components/__test__/RepoList.test.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import React from 'react';
import { shallow } from 'enzyme';
import RepoList from '../RepoList';

describe('RepoList Component', () => {
const repos = [{
id: 35507603,
name: 'aerosolve',
},
{
id: 88910481,
name: 'airbnb-spark-thrift',
}];

it('should Render 2 repo items', () => {
const wrapper = shallow(<RepoList data={repos} />);

// should show 2 repo items in list
expect(wrapper.find('.list-group-item').length).toBe(2);
});
});
34 changes: 34 additions & 0 deletions src/containers/__test__/Header.test.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import React from 'react';
import { shallow } from 'enzyme';
import Header from '../../components/Header';

describe('Header Container Component', () => {
it('should show Sign In Button', () => {
const onClick = jest.fn();

const wrapper = shallow(<Header isSignIn={false} onClick={onClick} />);

const btn = wrapper.find('button');

expect(btn.text()).toBe('Sign In');

btn.simulate('click', 'text');

expect(onClick.mock.calls[0][0]).toBe('text');

expect(onClick).toHaveBeenCalledTimes(1);
});
it('should show Sign Out Button', () => {
const onClick = jest.fn();

const wrapper = shallow(<Header isSignIn onClick={onClick} />);

const btn = wrapper.find('button');

expect(btn.text()).toBe('Sign Out');

btn.simulate('click', 'text');

expect(onClick.mock.calls[0][0]).toBe('text');
});
});
11 changes: 6 additions & 5 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
/* eslint-disable react/jsx-filename-extension */
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import registerServiceWorker from './registerServiceWorker';
import { BrowserRouter as Router } from 'react-router-dom';
import rootReducer from './reducers';
import { applyMiddleware, createStore } from 'redux';
import { logger } from 'redux-logger';
import thunk from 'redux-thunk';
import { Provider } from 'react-redux';
import { composeWithDevTools } from 'redux-devtools-extension';
import { BrowserRouter as Router } from 'react-router-dom';
import './index.css';
import App from './App';
import registerServiceWorker from './registerServiceWorker';
import rootReducer from './reducers';

const store = createStore(rootReducer, composeWithDevTools(applyMiddleware(thunk, logger)));

Expand Down
6 changes: 5 additions & 1 deletion src/service/__mocks__/httpFetch.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@ export function getAuthToken(code) {
},
});
} else {
reject('Token fetch failed');
reject({
data: {
error: 'bad_code',
},
});
}
});
}
Expand Down
4 changes: 4 additions & 0 deletions src/setupTests.js
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
import 'jest-localstorage-mock';
import Adapter from 'enzyme-adapter-react-16';
import * as Enzyme from 'enzyme';

Enzyme.configure({ adapter: new Adapter() });

0 comments on commit 0a52aa5

Please sign in to comment.