Skip to content

Commit ad90a67

Browse files
authored
[test] Assert on stable error codes (#84671)
Fixes ``` DevErrorOverlay › sends feedback when clicking not helpful button expect(received).toEqual(expected) // deep equality - Expected - 1 + Received + 1 Array [ - "/__nextjs_error_feedback?errorCode=E794&wasHelpful=false", + "/__nextjs_error_feedback?errorCode=E209&wasHelpful=false", ] ``` -- https://github.com/vercel/next.js/actions/runs/18360913450/job/52306369449#step:34:793
1 parent e2eee89 commit ad90a67

File tree

3 files changed

+12
-22
lines changed

3 files changed

+12
-22
lines changed
Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,18 @@
11
'use client'
22

3-
import Link from 'next/link'
43
import React from 'react'
54

65
export default function Page() {
7-
const broken = (
8-
<>
9-
<Link href="/invalid" as="mailto:[email protected]">
10-
<a>Invalid link</a>
11-
</Link>
12-
</>
13-
)
14-
156
const [shouldShow, setShouldShow] = React.useState(false)
7+
if (shouldShow) {
8+
const error = new Error('Client error!')
9+
;(error as any).__NEXT_ERROR_CODE = 'E40'
10+
throw error
11+
}
1612

1713
return (
1814
<div>
1915
<button onClick={() => setShouldShow(true)}>break on client</button>
20-
{shouldShow && broken}
2116
</div>
2217
)
2318
}
Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
1-
import { unstable_cache } from 'next/cache'
2-
import { headers } from 'next/headers'
3-
import React from 'react'
4-
51
export default async function Page() {
6-
const getData = unstable_cache(async () => {
7-
const h = await headers()
8-
return h.get('x-test-header')
9-
}, ['test-header-key'])
2+
const error = new Error('Client error!')
3+
;(error as any).__NEXT_ERROR_CODE = 'E40'
4+
throw error
105

11-
return <div>{await getData()}</div>
6+
return null
127
}

test/development/error-overlay/index.test.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ describe('DevErrorOverlay', () => {
1414

1515
const errorCode = await browser.elementByCss('[data-nextjs-error-code]')
1616
const code = await errorCode.getAttribute('data-nextjs-error-code')
17-
expect(code).toBe('E838')
17+
expect(code).toBe('E40')
1818
})
1919

2020
it('sends feedback when clicking helpful button', async () => {
@@ -41,7 +41,7 @@ describe('DevErrorOverlay', () => {
4141
.textContent()
4242
).toEqual('Thanks for your feedback!')
4343
expect(feedbackRequests).toEqual([
44-
'/__nextjs_error_feedback?errorCode=E794&wasHelpful=true',
44+
'/__nextjs_error_feedback?errorCode=E40&wasHelpful=true',
4545
])
4646
})
4747
})
@@ -70,7 +70,7 @@ describe('DevErrorOverlay', () => {
7070
.textContent()
7171
).toEqual('Thanks for your feedback!')
7272
expect(feedbackRequests).toEqual([
73-
'/__nextjs_error_feedback?errorCode=E794&wasHelpful=false',
73+
'/__nextjs_error_feedback?errorCode=E40&wasHelpful=false',
7474
])
7575
})
7676
})

0 commit comments

Comments
 (0)