From 21298c88722b3c3cca231cb7c96e965c02fe8314 Mon Sep 17 00:00:00 2001 From: Marliana Lara Date: Fri, 25 Jan 2019 16:23:21 -0500 Subject: [PATCH] Add Breadcrumbs test --- __tests__/components/Breadcrumbs.test.jsx | 70 ++++++++++++++++++++++ src/components/Breadcrumbs/Breadcrumbs.jsx | 1 + 2 files changed, 71 insertions(+) create mode 100644 __tests__/components/Breadcrumbs.test.jsx diff --git a/__tests__/components/Breadcrumbs.test.jsx b/__tests__/components/Breadcrumbs.test.jsx new file mode 100644 index 0000000000..71aa040560 --- /dev/null +++ b/__tests__/components/Breadcrumbs.test.jsx @@ -0,0 +1,70 @@ +import React from 'react'; +import { mount } from 'enzyme'; +import { MemoryRouter } from 'react-router-dom'; +import Breadcrumbs from '../../src/components/Breadcrumbs/Breadcrumbs'; + +describe('', () => { + let breadcrumbWrapper; + let breadcrumb; + let breadcrumbItem; + let breadcrumbHeading; + + const config = { + '/foo': 'Foo', + '/foo/1': 'One', + '/foo/1/bar': 'Bar', + '/foo/1/bar/fiz': 'Fiz' + }; + + const findChildren = () => { + breadcrumb = breadcrumbWrapper.find('Breadcrumb'); + breadcrumbItem = breadcrumbWrapper.find('BreadcrumbItem'); + breadcrumbHeading = breadcrumbWrapper.find('BreadcrumbHeading'); + }; + + test('initially renders succesfully', () => { + breadcrumbWrapper = mount( + + + + ); + + findChildren(); + + expect(breadcrumb).toHaveLength(1); + expect(breadcrumbItem).toHaveLength(2); + expect(breadcrumbHeading).toHaveLength(1); + expect(breadcrumbItem.first().text()).toBe('Foo'); + expect(breadcrumbItem.last().text()).toBe('One'); + expect(breadcrumbHeading.text()).toBe('Bar'); + breadcrumbWrapper.unmount(); + }); + + test('renders breadcrumb items defined in breadcrumbConfig', () => { + const routes = [ + ['/fo', 0], + ['/foo', 0], + ['/foo/1', 1], + ['/foo/baz', 1], + ['/foo/1/bar', 2], + ['/foo/1/bar/fiz', 3], + ]; + + routes.forEach(([location, crumbLength]) => { + const breadcrumbWrapper = mount( + + + + ); + + expect(breadcrumbWrapper.find('BreadcrumbItem')).toHaveLength(crumbLength); + breadcrumbWrapper.unmount(); + }) + + }); + +}); diff --git a/src/components/Breadcrumbs/Breadcrumbs.jsx b/src/components/Breadcrumbs/Breadcrumbs.jsx index ffc4f95346..e63525a335 100644 --- a/src/components/Breadcrumbs/Breadcrumbs.jsx +++ b/src/components/Breadcrumbs/Breadcrumbs.jsx @@ -23,6 +23,7 @@ const Breadcrumbs = ({ breadcrumbConfig }) => { > } />