UNPKG

@kadconsulting/dry

Version:
201 lines 9.36 kB
import { jsx as _jsx } from "react/jsx-runtime"; // import { useEffect, useRef, useState } from 'react'; // import { render, screen, waitFor } from '@testing-library/react'; import { render } from '@testing-library/react'; import NavBar from './NavBar'; import { BrowserRouter } from 'react-router-dom'; // import type { NavBarProps } from './NavBarTypes'; describe('NavBar', () => { it('renders without crashing', () => { const { container } = render(_jsx(BrowserRouter, { children: _jsx(NavBar, { navRoutes: { 'Coaching Programs': { name: 'Coaching Programs', visibleInNav: true, path: '/coaching-programs', subNavigation: { 'Junior Group': { subRoutes: { 'Future 36ers': { name: 'Future 36ers', path: '/coaching-programs/junior-group/future-36ers', }, 'Learn to Play': { name: 'Learn to Play', path: '/coaching-programs/junior-group/learn-to-play', }, 'Play To Improve': { name: 'Play To Improve', path: '/coaching-programs/junior-group/play-to-improve', }, 'Train To Compete': { name: 'Train To Compete', path: '/coaching-programs/junior-group/train-to-compete', }, }, path: '/coaching-programs/junior-group', name: 'Junior Group', icon: 'JuniorGroupIcon', }, 'Adult Group': { subRoutes: { 'PEAK Starters': { name: 'PEAK Starters', path: '/coaching-programs/adult-group/peak-starters', }, 'PEAK Performers': { name: 'PEAK Performers', path: '/coaching-programs/adult-group/peak-performers', }, 'Chip and Sip': { name: 'Chip and Sip', path: '/coaching-programs/adult-group/chip-and-sip', }, 'Playing School': { name: 'Playing School', path: '/coaching-programs/adult-group/playing-school', }, 'Individual Coaching': { name: 'Individual Coaching', path: '/coaching-programs/adult-group/individual-coaching', }, }, path: '/coaching-programs/adult-group', name: 'Adult Group', icon: 'AdultGroupIcon', }, }, }, 'Playing Programs': { name: 'Playing Programs', visibleInNav: true, path: '/playing-programs', subNavigation: { 'PGA Junior League': { icon: '', name: 'PGA Junior League', path: '/playing-programs/pga-junior-league', }, 'Junior Play Club': { icon: '', name: 'Junior Play Club', path: '/playing-programs/junior-play-club', }, 'Operation 36 Matches': { icon: '', name: 'Operation 36 Matches', path: '/playing-programs/operation-36-matches', }, }, }, 'Book Now': { name: 'Book Now', visibleInNav: true, path: '/book-now', subNavigation: { 'Simulator Bay': { icon: '', name: 'Simulator Bay', path: '/book-now/simulator-bay', }, 'Individual Session': { icon: '', name: 'Individual Session', path: '/book-now/individual-session', }, 'Coaching Program': { icon: '', name: 'Coaching Program', path: '/book-now/coaching-program', }, }, }, Locations: { name: 'Locations', visibleInNav: true, path: '/locations', }, 'Log in': { name: 'Log in', visibleInNav: true, path: '/login' }, }, logoProps: { logoUrl: 'http://127.0.0.1:1337/uploads/PEAK_LOGO_MAIN_1daef8bc71.svg', } }) })); expect(container.firstChild).toBeInTheDocument(); }); // it('encourages contributors to open the test file', () => { // expect(false).toBe(true); // }); // it('renders with a dry-prepended className', () => { // // ARRANGE // const { container } = render(<NavBar />); // // ASSERT // expect(container.firstChild).toHaveClass('dry-navbar'); // }); // it('passes a ref to its outermost element', async () => { // // ARRANGE // const Wrapper = () => { // const ref = useRef<HTMLDivElement>(null); // const [refWasPassed, setRefWasPassed] = useState(false); // useEffect(() => { // setRefWasPassed(!!ref.current); // }, []); // return ( // <> // <NavBar ref={ref} /> // {refWasPassed && <div>Ref was passed!</div>} // </> // ); // }; // render(<Wrapper />); // // ASSERT // await waitFor(() => screen.getByText('Ref was passed!')); // }); // it('passes a downstream id', () => { // // ARRANGE // const id = 'test-id'; // const testId = 'test-subject'; // // ACT // render(<NavBar data-testid={testId} id={id} />); // // ASSERT // expect(screen.getByTestId(testId)).toHaveAttribute('id', id); // }); // it('passes any downstream className(s)', () => { // // ARRANGE // const className = 'first second third'; // const testId = 'test-subject'; // // ACT // render(<NavBar data-testid={testId} className={className} />); // // ASSERT // expect(screen.getByTestId(testId)).toHaveClass('first'); // expect(screen.getByTestId(testId)).toHaveClass('second'); // expect(screen.getByTestId(testId)).toHaveClass('third'); // }); // it('passes any downstream inline style(s)', () => { // // ARRANGE // const style = { color: 'red' }; // const testId = 'test-subject'; // // ACT // render(<NavBar data-testid={testId} style={style} />); // // ASSERT // expect(screen.getByTestId(testId)).toHaveStyle('color: red'); // }); // it('passes any downstream data-* attribute(s)', () => { // // ARRANGE // const testId = 'test-subject'; // const testValue = 'product-1234-abcd-5678-efgh'; // // ACT // render(<NavBar data-testid={testId} data-product={testValue} />); // // ASSERT // expect(screen.getByTestId(testId)).toHaveAttribute( // 'data-product', // testValue // ); // }); // it('supports downstream @testing-library `screen.getByTestId`', () => { // // ARRANGE // const testId = 'test-subject'; // // ACT // render(<NavBar data-testid={testId} />); // // ASSERT // expect(screen.getByTestId(testId)).toBeInTheDocument(); // }); }); //# sourceMappingURL=NavBar.test.js.map