feature: add sample tests

This commit is contained in:
George Lima 2018-11-28 13:12:42 -03:00
parent e55ddacf2e
commit 4674909ecb
4 changed files with 139 additions and 0 deletions

View File

@ -0,0 +1,28 @@
import configureStore from 'redux-mock-store';
import { ADD_TODO } from '../../app/constants/actions';
import { addTodo } from '../../app/actions/add-todo';
const store = configureStore()();
describe('Todo Actions', () => {
beforeEach(() => store.clearActions());
test('should create an action to add a new todo', () => {
const text = 'Hello World!';
store.dispatch(addTodo(text));
expect(store.getActions()[0]).toEqual(
expect.objectContaining({
type: ADD_TODO,
payload: {
text,
id: expect.any(String),
editing: false,
createdAt: expect.any(Number),
},
}),
);
});
});

View File

@ -0,0 +1,16 @@
import React from 'react';
import { shallow } from 'enzyme';
import toJson from 'enzyme-to-json';
import { SidebarComponent } from '../../app/components/sidebar/index';
describe('<Sidebar />', () => {
describe('render()', () => {
test('should render correctly', () => {
const wrapper = shallow(<SidebarComponent />);
const component = wrapper.dive();
expect(toJson(component)).toMatchSnapshot();
});
});
});

View File

@ -0,0 +1,69 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`<Sidebar /> render() should render correctly 1`] = `
<StyledComponent
forwardedClass={
Object {
"$$typeof": Symbol(react.forward_ref),
"attrs": Array [],
"componentStyle": ComponentStyle {
"componentId": "sc-bdVaJa",
"isStatic": true,
"rules": Array [
"
",
"
display: flex;
flex-direction: column;
width: 200px;
position: absolute;
left: 0;
top: 0;
height: 100vh;
background: #ccc;
",
"
",
],
},
"displayName": "styled.div",
"render": [Function],
"styledComponentId": "sc-bdVaJa",
"target": "div",
"toString": [Function],
"warnTooManyClasses": [Function],
"withComponent": [Function],
}
}
forwardedRef={null}
>
<Link
key="/"
replace={false}
to="/"
>
Dashboard
</Link>
<Link
key="/send"
replace={false}
to="/send"
>
Send
</Link>
<Link
key="/receive"
replace={false}
to="/receive"
>
Receive
</Link>
<Link
key="/settings"
replace={false}
to="/settings"
>
Settings
</Link>
</StyledComponent>
`;

View File

@ -0,0 +1,26 @@
import todoReducer from '../../app/reducers/todo';
import { ADD_TODO } from '../../app/constants/actions';
describe('Todo Reducer', () => {
test('should return the valid initial state', () => {
const action = { type: 'UNKNOWN_ACTION' };
const initialState = [];
expect(todoReducer(undefined, action)).toEqual(initialState);
});
test('should add a new todo', () => {
const action = {
type: ADD_TODO,
payload: {
id: 'abc123',
text: 'Hello World!',
editing: false,
createdAt: new Date().getTime(),
},
};
const expectedState = [action.payload];
expect(todoReducer(undefined, action)).toEqual(expectedState);
});
});