From 299426191ed7d1cd004ddee873e3931ebea67c01 Mon Sep 17 00:00:00 2001 From: Eric Liu Date: Tue, 17 Dec 2019 09:22:39 -0800 Subject: [PATCH 1/3] test(breadcrumb): add tests for Breadcrumb --- src/components/Breadcrumb/Breadcrumb.test.js | 40 +++++++++++++++++++ .../__snapshots__/Breadcrumb.test.js.snap | 7 ++++ 2 files changed, 47 insertions(+) create mode 100644 src/components/Breadcrumb/Breadcrumb.test.js create mode 100644 src/components/Breadcrumb/__snapshots__/Breadcrumb.test.js.snap diff --git a/src/components/Breadcrumb/Breadcrumb.test.js b/src/components/Breadcrumb/Breadcrumb.test.js new file mode 100644 index 00000000..6f8c68b2 --- /dev/null +++ b/src/components/Breadcrumb/Breadcrumb.test.js @@ -0,0 +1,40 @@ +import { fireEvent, render } from '@testing-library/svelte'; +import Component from './Breadcrumb.Story.svelte'; + +describe('Breadcrumb', () => { + function getLastBreadcrumbItem(container) { + const breadcrumbItems = container.querySelectorAll('.bx--breadcrumb-item'); + return breadcrumbItems[breadcrumbItems.length - 1]; + } + + test('default', () => { + const { getByText, container, rerender } = render(Component, { noTrailingSlash: false }); + const selector = '.bx--breadcrumb--no-trailing-slash'; + expect(getByText('Breadcrumb 1')).toBeInTheDocument(); + expect(getByText('Breadcrumb 2')).toBeInTheDocument(); + expect(getByText('Breadcrumb 3')).toBeInTheDocument(); + expect(container.querySelector(selector)).not.toBeInTheDocument(); + expect(container.innerHTML).toMatchSnapshot(); + + rerender({ props: { noTrailingSlash: true } }); + expect(container.querySelector(selector)).toBeInTheDocument(); + expect(container.innerHTML).toMatchSnapshot(); + }); + + test('skeleton', () => { + const { container } = render(Component, { story: 'skeleton' }); + expect(container.innerHTML).toMatchSnapshot(); + }); + + test('current page', () => { + const { container } = render(Component, { story: 'current page' }); + const lastItem = getLastBreadcrumbItem(container); + expect(lastItem.classList.contains('bx--breadcrumb-item--current')).toEqual(true); + }); + + test('current page with aria-current', () => { + const { container } = render(Component, { story: 'current page with aria-current' }); + const lastItem = getLastBreadcrumbItem(container); + expect(lastItem.querySelector('[aria-current="page"]')).toBeTruthy(); + }); +}); diff --git a/src/components/Breadcrumb/__snapshots__/Breadcrumb.test.js.snap b/src/components/Breadcrumb/__snapshots__/Breadcrumb.test.js.snap new file mode 100644 index 00000000..40e82b62 --- /dev/null +++ b/src/components/Breadcrumb/__snapshots__/Breadcrumb.test.js.snap @@ -0,0 +1,7 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Breadcrumb default 1`] = `"
"`; + +exports[`Breadcrumb default 2`] = `"
"`; + +exports[`Breadcrumb skeleton 1`] = `"
 
 
 
"`; From 5726e99d92cc99b830b100f37168b2a3d5ca6309 Mon Sep 17 00:00:00 2001 From: Eric Liu Date: Tue, 17 Dec 2019 09:27:57 -0800 Subject: [PATCH 2/3] test(lib): add test for cx --- src/lib/__tests__/cx.spec.js | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/lib/__tests__/cx.spec.js diff --git a/src/lib/__tests__/cx.spec.js b/src/lib/__tests__/cx.spec.js new file mode 100644 index 00000000..1127b04b --- /dev/null +++ b/src/lib/__tests__/cx.spec.js @@ -0,0 +1,10 @@ +import { cx } from '../cx'; + +test('cx', () => { + expect(cx(null)).toEqual(''); + expect(cx(undefined)).toEqual(''); + expect(cx('--')).toEqual('bx--'); + expect(cx('--', null)).toEqual('bx--'); + expect(cx(0, undefined, '--', null, 1)).toEqual('bx--'); + expect(cx(1 && '1', 0 && '0')).toEqual('1'); +}); From 659cd995579cc1f43189bd2267422a63b8847ff4 Mon Sep 17 00:00:00 2001 From: Eric Liu Date: Tue, 17 Dec 2019 09:28:25 -0800 Subject: [PATCH 3/3] ci(travis): run test command in script --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index f3349e4b..1d6797d4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,4 +2,5 @@ language: node_js node_js: 10 cache: yarn script: + - yarn test - yarn build