import * as React from 'react'; import { render, screen } from '@testing-library/react'; import { useCreatePath } from './useCreatePath'; import { AtRoot, SubPath } from './useCreatePath.stories'; describe('useCreatePath', () => { beforeEach(() => { window.history.replaceState({}, '', '/'); }); const UseCreatePath = ({ resource, type, id }: any) => { const createPath = useCreatePath(); const path = createPath({ resource, type, id }); return
{path}
; }; it('creates links for list views', () => { render(); screen.getByText('/posts'); }); it('creates links for create views', () => { render(); screen.getByText('/posts/create'); }); it('creates links for edit views', () => { render(); screen.getByText('/posts/1234'); }); it('creates links for show views', () => { render(); screen.getByText('/posts/1234/show'); }); it('removes double slashes', () => { render(); screen.getByText('/posts/1234'); }); it('creates valid links when used without a basename', async () => { render(); await screen.findByText('Home'); screen.getByText('Post list').click(); await screen.findByText('Posts'); screen.getByText('Home').click(); screen.getByText('Post detail').click(); await screen.findByText('Post 123'); }); it('creates valid links when used with a basename', async () => { render(); await screen.findByText('Main'); screen.getByText('Go to admin').click(); await screen.findByText('Home'); screen.getByText('Post list').click(); await screen.findByText('Posts'); screen.getByText('Home').click(); screen.getByText('Post detail').click(); await screen.findByText('Post 123'); }); });