test(nav-bar): voeg navigatie-assertions toe voor product-wissel
Voeg 4 tests toe die verifiëren dat NavBar na product-wissel naar de juiste URL navigeert: /products/B, /products/B/sprint, /products/B/solo, en router.refresh() op niet-product-pagina's. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
e471fb3e85
commit
d630878f90
1 changed files with 41 additions and 0 deletions
|
|
@ -111,6 +111,47 @@ describe('NavBar — product switch', () => {
|
||||||
await Promise.resolve()
|
await Promise.resolve()
|
||||||
expect(actionMock).toHaveBeenCalledWith('B')
|
expect(actionMock).toHaveBeenCalledWith('B')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('non-demo: on /products/A navigates to /products/B', async () => {
|
||||||
|
pathnameMock.mockReturnValue('/products/A')
|
||||||
|
renderNavBar({ isDemo: false, activeProductId: 'A' })
|
||||||
|
fireEvent.click(screen.getByText('Beta'))
|
||||||
|
await Promise.resolve()
|
||||||
|
await Promise.resolve()
|
||||||
|
expect(pushMock).toHaveBeenCalledWith('/products/B')
|
||||||
|
expect(toastSuccess).toHaveBeenCalled()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('non-demo: on /products/A/sprint/SPR1 navigates to /products/B/sprint', async () => {
|
||||||
|
pathnameMock.mockReturnValue('/products/A/sprint/SPR1')
|
||||||
|
renderNavBar({ isDemo: false, activeProductId: 'A' })
|
||||||
|
fireEvent.click(screen.getByText('Beta'))
|
||||||
|
await Promise.resolve()
|
||||||
|
await Promise.resolve()
|
||||||
|
expect(pushMock).toHaveBeenCalledWith('/products/B/sprint')
|
||||||
|
expect(toastSuccess).toHaveBeenCalled()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('non-demo: on /products/A/solo navigates to /products/B/solo', async () => {
|
||||||
|
pathnameMock.mockReturnValue('/products/A/solo')
|
||||||
|
renderNavBar({ isDemo: false, activeProductId: 'A' })
|
||||||
|
fireEvent.click(screen.getByText('Beta'))
|
||||||
|
await Promise.resolve()
|
||||||
|
await Promise.resolve()
|
||||||
|
expect(pushMock).toHaveBeenCalledWith('/products/B/solo')
|
||||||
|
expect(toastSuccess).toHaveBeenCalled()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('non-demo: on /dashboard calls router.refresh and not router.push', async () => {
|
||||||
|
pathnameMock.mockReturnValue('/dashboard')
|
||||||
|
renderNavBar({ isDemo: false, activeProductId: 'A' })
|
||||||
|
fireEvent.click(screen.getByText('Beta'))
|
||||||
|
await Promise.resolve()
|
||||||
|
await Promise.resolve()
|
||||||
|
expect(refreshMock).toHaveBeenCalled()
|
||||||
|
expect(pushMock).not.toHaveBeenCalled()
|
||||||
|
expect(toastSuccess).toHaveBeenCalled()
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('NavBar — URL-derived active product (demo only)', () => {
|
describe('NavBar — URL-derived active product (demo only)', () => {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue