Skip to content

Instantly share code, notes, and snippets.

@FabricioFFC
Created August 25, 2018 20:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save FabricioFFC/8453dcf687ed350d7b58f64e0021da4a to your computer and use it in GitHub Desktop.
Save FabricioFFC/8453dcf687ed350d7b58f64e0021da4a to your computer and use it in GitHub Desktop.
import React from 'react';
import renderer from 'react-test-renderer';
import humps from 'humps';
import TeamDetails from '../../../src/components/TeamDetails';
import brazilMock from '../../fixtures/teams/brazil.json';
const brazilTeam = humps.camelizeKeys(brazilMock);
describe('TeamDetails', () => {
describe('render', () => {
it('show the team details components with team image, stats and players', () => {
// given
const expectedStatDescription = 'Ranking na FIFA';
// when
const teamDetailsRendered = renderer.create(<TeamDetails team={brazilTeam} />);
const teamDetailsRenderedAsJSON = teamDetailsRendered.toJSON();
const teamDetailsRenderedAsString = JSON.stringify(teamDetailsRenderedAsJSON);
// then
expect(teamDetailsRenderedAsString.includes(brazilTeam.profileImage)).toBe(true);
expect(teamDetailsRenderedAsString.includes(expectedStatDescription)).toBe(true);
brazilTeam.players.forEach(player => {
expect(teamDetailsRenderedAsString.includes(player.name)).toBe(true);
});
expect(teamDetailsRenderedAsJSON).toMatchSnapshot();
});
describe('exception cases', () => {
it('render components even when team prop is undefined', () => {
// given
const expectedStatDescription = 'Ranking na FIFA';
// when
const teamDetailsRendered = renderer.create(<TeamDetails />);
const teamDetailsRenderedAsJSON = teamDetailsRendered.toJSON();
const teamDetailsRenderedAsString = JSON.stringify(teamDetailsRenderedAsJSON);
// then
expect(teamDetailsRenderedAsString.includes(expectedStatDescription)).toBe(true);
expect(teamDetailsRenderedAsString.includes(brazilTeam.profileImage)).toBe(false);
expect(teamDetailsRenderedAsJSON).toMatchSnapshot();
});
it('render components even when team dont have players', () => {
// given
const expectedStatDescription = 'Ranking na FIFA';
let teamWithoutPlayers = Object.assign(brazilTeam)
teamWithoutPlayers.players = [];
// when
const teamDetailsRendered = renderer.create(<TeamDetails team={teamWithoutPlayers} />);
const teamDetailsRenderedAsJSON = teamDetailsRendered.toJSON();
const teamDetailsRenderedAsString = JSON.stringify(teamDetailsRenderedAsJSON);
// then
expect(teamDetailsRenderedAsString.includes(brazilTeam.profileImage)).toBe(true);
expect(teamDetailsRenderedAsString.includes(expectedStatDescription)).toBe(true);
brazilTeam.players.forEach(player => {
expect(teamDetailsRenderedAsString.includes(player.name)).toBe(false);
});
expect(teamDetailsRenderedAsJSON).toMatchSnapshot();
});
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment