Skip to content

Commit

Permalink
Consolidate next/link error tests
Browse files Browse the repository at this point in the history
  • Loading branch information
eps1lon committed Feb 19, 2025
1 parent c5c4d49 commit 9370c7c
Show file tree
Hide file tree
Showing 12 changed files with 128 additions and 274 deletions.
3 changes: 2 additions & 1 deletion packages/next/src/client/link.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,8 @@ const Link = React.forwardRef<HTMLAnchorElement, LinkPropsReal>(
return new Error(
`Failed prop type: The prop \`${args.key}\` expects a ${args.expected} in \`<Link>\`, but got \`${args.actual}\` instead.` +
(typeof window !== 'undefined'
? "\nOpen your browser's console to view the Component stack trace."
? // TODO: Remove this addendum if Owner Stacks are available
"\nOpen your browser's console to view the Component stack trace."
: '')
)
}
Expand Down
230 changes: 0 additions & 230 deletions test/development/acceptance/ReactRefreshLogBoxMisc.test.ts

This file was deleted.

This file was deleted.

21 changes: 0 additions & 21 deletions test/development/pages-dir/client-navigation/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,27 +56,6 @@ describe('Client Navigation', () => {
await browser.close()
})

it('should have a redbox when no children are provided', async () => {
const pageErrors: unknown[] = []
const browser = await webdriver(next.appPort, '/link-no-child', {
beforePageLoad: (page) => {
page.on('pageerror', (error: unknown) => {
pageErrors.push(error)
})
},
})
await assertHasRedbox(browser)
expect(await getRedboxHeader(browser)).toContain(
'No children were passed to <Link> with `href` of `/about` but one child is required'
)
expect(pageErrors).toEqual([
expect.objectContaining({
message:
'No children were passed to <Link> with `href` of `/about` but one child is required https://nextjs.org/docs/messages/link-no-children',
}),
])
})

it('should not throw error when one number type child is provided', async () => {
const browser = await webdriver(next.appPort, '/link-number-child')
await assertNoRedbox(browser)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,7 @@ describe('app-dir - server source maps', () => {
)
expect(cliOutput).toMatch(/digest: '\d+'/)

// TODO(veil): Should be a single error
await expect(browser).toDisplayRedbox(`
{
"count": 2,
Expand Down
5 changes: 5 additions & 0 deletions test/e2e/next-link-errors/app/invalid-href/page.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import Link from 'next/link'

export default function Hello() {
return <Link>Hello, Dave!</Link>
}
7 changes: 7 additions & 0 deletions test/e2e/next-link-errors/app/layout.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export default function RootLayout({ children }) {
return (
<html>
<body>{children}</body>
</html>
)
}
10 changes: 10 additions & 0 deletions test/e2e/next-link-errors/app/multiple-children/page.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import Link from 'next/link'

export default function Index() {
return (
<Link href="/" legacyBehavior>
<p>Hello</p>
<p>Dave!</p>
</Link>
)
}
6 changes: 6 additions & 0 deletions test/e2e/next-link-errors/app/no-children/page.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import React from 'react'
import Link from 'next/link'

export default function Page() {
return <Link href="/about" legacyBehavior></Link>
}
Loading

0 comments on commit 9370c7c

Please sign in to comment.