From 38281db955bfa76a61cd2e736445ca1f45e57149 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Thu, 15 Sep 2022 14:32:02 +0200 Subject: [PATCH] fix: tests --- tests/unit/layout/breadcrumbs.test.ts | 236 +++++++++++++------------- 1 file changed, 115 insertions(+), 121 deletions(-) diff --git a/tests/unit/layout/breadcrumbs.test.ts b/tests/unit/layout/breadcrumbs.test.ts index 05ec2298e..c041f6413 100644 --- a/tests/unit/layout/breadcrumbs.test.ts +++ b/tests/unit/layout/breadcrumbs.test.ts @@ -1,129 +1,123 @@ -// TODO: Remove once https://github.com/sveltejs/kit/issues/6259 is closed. import '@testing-library/jest-dom'; -test('mock', async () => { - expect(true).toBeTruthy(); +import { render } from '@testing-library/svelte'; +import BreadcrumbsComponent from '../../../src/lib/layout/Breadcrumbs.svelte'; +import { level, updateLayout } from '../../../src/lib/stores/layout'; +import { tick } from 'svelte'; + +test('shows relevant breadcrumbs', async () => { + const { queryByText } = render(BreadcrumbsComponent); + + updateLayout({ + title: 'Test', + level: 3, + breadcrumbs: [ + { + href: 'lorem', + title: 'First', + level: 1 + }, + { + href: 'ipsum', + title: 'Second', + level: 2 + }, + { + href: 'dolor/sit/amet', + title: 'Third' + } + ] + }); + + level.set(2); + await tick(); + expect(queryByText('First')).toBeInTheDocument(); + expect(queryByText('First')).toHaveAccessibleName(); + expect(queryByText('First')).toHaveAttribute('href', '/lorem'); + expect(queryByText('Second')).toBeInTheDocument(); + expect(queryByText('Second')).toHaveAccessibleName(); + expect(queryByText('Second')).toHaveAttribute('href', '/lorem/ipsum'); + expect(queryByText('Third')).not.toBeInTheDocument(); + + level.set(1); + await tick(); + expect(queryByText('First')).toBeInTheDocument(); + expect(queryByText('First')).toHaveAccessibleName(); + expect(queryByText('First')).toHaveAttribute('href', '/lorem'); + expect(queryByText('Second')).not.toBeInTheDocument(); + + level.set(0); + await tick(); + expect(queryByText('First')).not.toBeInTheDocument(); + expect(queryByText('Second')).not.toBeInTheDocument(); + + level.set(3); + await tick(); + expect(queryByText('First')).toBeInTheDocument(); + expect(queryByText('First')).toHaveAccessibleName(); + expect(queryByText('First')).toHaveAttribute('href', '/lorem'); + expect(queryByText('Second')).toBeInTheDocument(); + expect(queryByText('Second')).toHaveAccessibleName(); + expect(queryByText('Second')).toHaveAttribute('href', '/lorem/ipsum'); + expect(queryByText('Third')).toBeInTheDocument(); + expect(queryByText('Third')).toHaveAccessibleName(); + expect(queryByText('Third')).toHaveAttribute('href', '/lorem/ipsum/dolor/sit/amet'); }); -// import '@testing-library/jest-dom'; -// import { render } from '@testing-library/svelte'; -// import { Breadcrumbs as BreadcrumbsComponent } from '../../../src/lib/layout'; -// import { level, updateLayout } from '../../../src/lib/stores/layout'; -// import { tick } from 'svelte'; +test('shows relevant breadcrumbs and ignore order', async () => { + const { queryByText } = render(BreadcrumbsComponent); -// test('shows relevant breadcrumbs', async () => { -// const { queryByText } = render(BreadcrumbsComponent); + updateLayout({ + title: 'Test', + level: 3, + breadcrumbs: [ + { + href: 'ipsum', + title: 'Second', + level: 2 + }, + { + href: 'lorem', + title: 'First', + level: 1 + }, + { + href: 'dolor/sit/amet', + title: 'Third' + } + ] + }); -// updateLayout({ -// title: 'Test', -// level: 3, -// breadcrumbs: [ -// { -// href: 'lorem', -// title: 'First', -// level: 1 -// }, -// { -// href: 'ipsum', -// title: 'Second', -// level: 2 -// }, -// { -// href: 'dolor/sit/amet', -// title: 'Third' -// } -// ] -// }); + level.set(2); + await tick(); + expect(queryByText('First')).toBeInTheDocument(); + expect(queryByText('First')).toHaveAccessibleName(); + expect(queryByText('First')).toHaveAttribute('href', '/lorem'); + expect(queryByText('Second')).toBeInTheDocument(); + expect(queryByText('Second')).toHaveAccessibleName(); + expect(queryByText('Second')).toHaveAttribute('href', '/lorem/ipsum'); + expect(queryByText('Third')).not.toBeInTheDocument(); -// level.set(2); -// await tick(); -// expect(queryByText('First')).toBeInTheDocument(); -// expect(queryByText('First')).toHaveAccessibleName(); -// expect(queryByText('First')).toHaveAttribute('href', '/lorem'); -// expect(queryByText('Second')).toBeInTheDocument(); -// expect(queryByText('Second')).toHaveAccessibleName(); -// expect(queryByText('Second')).toHaveAttribute('href', '/lorem/ipsum'); -// expect(queryByText('Third')).not.toBeInTheDocument(); + level.set(1); + await tick(); + expect(queryByText('First')).toBeInTheDocument(); + expect(queryByText('First')).toHaveAccessibleName(); + expect(queryByText('First')).toHaveAttribute('href', '/lorem'); + expect(queryByText('Second')).not.toBeInTheDocument(); -// level.set(1); -// await tick(); -// expect(queryByText('First')).toBeInTheDocument(); -// expect(queryByText('First')).toHaveAccessibleName(); -// expect(queryByText('First')).toHaveAttribute('href', '/lorem'); -// expect(queryByText('Second')).not.toBeInTheDocument(); + level.set(0); + await tick(); + expect(queryByText('First')).not.toBeInTheDocument(); + expect(queryByText('Second')).not.toBeInTheDocument(); -// level.set(0); -// await tick(); -// expect(queryByText('First')).not.toBeInTheDocument(); -// expect(queryByText('Second')).not.toBeInTheDocument(); - -// level.set(3); -// await tick(); -// expect(queryByText('First')).toBeInTheDocument(); -// expect(queryByText('First')).toHaveAccessibleName(); -// expect(queryByText('First')).toHaveAttribute('href', '/lorem'); -// expect(queryByText('Second')).toBeInTheDocument(); -// expect(queryByText('Second')).toHaveAccessibleName(); -// expect(queryByText('Second')).toHaveAttribute('href', '/lorem/ipsum'); -// expect(queryByText('Third')).toBeInTheDocument(); -// expect(queryByText('Third')).toHaveAccessibleName(); -// expect(queryByText('Third')).toHaveAttribute('href', '/lorem/ipsum/dolor/sit/amet'); -// }); - -// test('shows relevant breadcrumbs and ignore order', async () => { -// const { queryByText } = render(BreadcrumbsComponent); - -// updateLayout({ -// title: 'Test', -// level: 3, -// breadcrumbs: [ -// { -// href: 'ipsum', -// title: 'Second', -// level: 2 -// }, -// { -// href: 'lorem', -// title: 'First', -// level: 1 -// }, -// { -// href: 'dolor/sit/amet', -// title: 'Third' -// } -// ] -// }); - -// level.set(2); -// await tick(); -// expect(queryByText('First')).toBeInTheDocument(); -// expect(queryByText('First')).toHaveAccessibleName(); -// expect(queryByText('First')).toHaveAttribute('href', '/lorem'); -// expect(queryByText('Second')).toBeInTheDocument(); -// expect(queryByText('Second')).toHaveAccessibleName(); -// expect(queryByText('Second')).toHaveAttribute('href', '/lorem/ipsum'); -// expect(queryByText('Third')).not.toBeInTheDocument(); - -// level.set(1); -// await tick(); -// expect(queryByText('First')).toBeInTheDocument(); -// expect(queryByText('First')).toHaveAccessibleName(); -// expect(queryByText('First')).toHaveAttribute('href', '/lorem'); -// expect(queryByText('Second')).not.toBeInTheDocument(); - -// level.set(0); -// await tick(); -// expect(queryByText('First')).not.toBeInTheDocument(); -// expect(queryByText('Second')).not.toBeInTheDocument(); - -// level.set(3); -// await tick(); -// expect(queryByText('First')).toBeInTheDocument(); -// expect(queryByText('First')).toHaveAccessibleName(); -// expect(queryByText('First')).toHaveAttribute('href', '/lorem'); -// expect(queryByText('Second')).toBeInTheDocument(); -// expect(queryByText('Second')).toHaveAccessibleName(); -// expect(queryByText('Second')).toHaveAttribute('href', '/lorem/ipsum'); -// expect(queryByText('Third')).toBeInTheDocument(); -// expect(queryByText('Third')).toHaveAccessibleName(); -// expect(queryByText('Third')).toHaveAttribute('href', '/lorem/ipsum/dolor/sit/amet'); -// }); + level.set(3); + await tick(); + expect(queryByText('First')).toBeInTheDocument(); + expect(queryByText('First')).toHaveAccessibleName(); + expect(queryByText('First')).toHaveAttribute('href', '/lorem'); + expect(queryByText('Second')).toBeInTheDocument(); + expect(queryByText('Second')).toHaveAccessibleName(); + expect(queryByText('Second')).toHaveAttribute('href', '/lorem/ipsum'); + expect(queryByText('Third')).toBeInTheDocument(); + expect(queryByText('Third')).toHaveAccessibleName(); + expect(queryByText('Third')).toHaveAttribute('href', '/lorem/ipsum/dolor/sit/amet'); +});