@@ -3,210 +3,15 @@ import { FileRef, nextTestSetup } from 'e2e-utils'
3
3
import path from 'path'
4
4
import { outdent } from 'outdent'
5
5
6
- // TODO: re-enable these tests after figuring out what is causing
7
- // them to be so unreliable in CI
8
- describe . skip ( 'ReactRefreshLogBox app' , ( ) => {
9
- const { next } = nextTestSetup ( {
6
+ describe ( 'ReactRefreshLogBox app' , ( ) => {
7
+ const { isTurbopack, next } = nextTestSetup ( {
10
8
files : new FileRef ( path . join ( __dirname , 'fixtures' , 'default-template' ) ) ,
11
9
skipStart : true ,
12
10
} )
13
11
14
- test ( '<Link> with multiple children' , async ( ) => {
15
- await using sandbox = await createSandbox ( next )
16
- const { session } = sandbox
17
-
18
- await session . patch (
19
- 'index.js' ,
20
- outdent `
21
- import Link from 'next/link'
22
-
23
- export default function Index() {
24
- return (
25
- <Link href="/">
26
- <p>One</p>
27
- <p>Two</p>
28
- </Link>
29
- )
30
- }
31
- `
32
- )
33
-
34
- await session . assertHasRedbox ( )
35
- expect ( await session . getRedboxDescription ( ) ) . toMatchInlineSnapshot (
36
- `"Error: Multiple children were passed to <Link> with \`href\` of \`/\` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children"`
37
- )
38
- expect (
39
- await session . evaluate (
40
- ( ) =>
41
- (
42
- document
43
- . querySelector ( 'body > nextjs-portal' )
44
- . shadowRoot . querySelector (
45
- '#nextjs__container_errors_desc a:nth-of-type(1)'
46
- ) as any
47
- ) . href
48
- )
49
- ) . toMatch ( 'https://nextjs.org/docs/messages/link-multiple-children' )
50
- } )
51
-
52
- test ( '<Link> component props errors' , async ( ) => {
53
- await using sandbox = await createSandbox ( next )
54
- const { session } = sandbox
55
-
56
- await session . patch (
57
- 'index.js' ,
58
- outdent `
59
- import Link from 'next/link'
60
-
61
- export default function Hello() {
62
- return <Link />
63
- }
64
- `
65
- )
66
-
67
- await session . assertHasRedbox ( )
68
- expect ( await session . getRedboxDescription ( ) ) . toMatchInlineSnapshot (
69
- `"Error: Failed prop type: The prop \`href\` expects a \`string\` or \`object\` in \`<Link>\`, but got \`undefined\` instead."`
70
- )
71
-
72
- await session . patch (
73
- 'index.js' ,
74
- outdent `
75
- import Link from 'next/link'
76
-
77
- export default function Hello() {
78
- return <Link href="/">Abc</Link>
79
- }
80
- `
81
- )
82
- await session . assertNoRedbox ( )
83
-
84
- await session . patch (
85
- 'index.js' ,
86
- outdent `
87
- import Link from 'next/link'
88
-
89
- export default function Hello() {
90
- return (
91
- <Link
92
- href="/"
93
- as="/"
94
- replace={false}
95
- scroll={false}
96
- shallow={false}
97
- passHref={false}
98
- prefetch={false}
99
- >
100
- Abc
101
- </Link>
102
- )
103
- }
104
- `
105
- )
106
- await session . assertNoRedbox ( )
107
-
108
- await session . patch (
109
- 'index.js' ,
110
- outdent `
111
- import Link from 'next/link'
112
-
113
- export default function Hello() {
114
- return (
115
- <Link
116
- href="/"
117
- as="/"
118
- replace={true}
119
- scroll={true}
120
- shallow={true}
121
- passHref={true}
122
- prefetch={true}
123
- >
124
- Abc
125
- </Link>
126
- )
127
- }
128
- `
129
- )
130
- await session . assertNoRedbox ( )
131
-
132
- await session . patch (
133
- 'index.js' ,
134
- outdent `
135
- import Link from 'next/link'
136
-
137
- export default function Hello() {
138
- return (
139
- <Link
140
- href="/"
141
- as="/"
142
- replace={undefined}
143
- scroll={undefined}
144
- shallow={undefined}
145
- passHref={undefined}
146
- prefetch={undefined}
147
- >
148
- Abc
149
- </Link>
150
- )
151
- }
152
- `
153
- )
154
- await session . assertNoRedbox ( )
155
-
156
- await session . patch (
157
- 'index.js' ,
158
- outdent `
159
- import Link from 'next/link'
160
-
161
- export default function Hello() {
162
- return (
163
- <Link
164
- href="/"
165
- as="/"
166
- replace={undefined}
167
- scroll={'oops'}
168
- shallow={undefined}
169
- passHref={undefined}
170
- prefetch={undefined}
171
- >
172
- Abc
173
- </Link>
174
- )
175
- }
176
- `
177
- )
178
- await session . assertHasRedbox ( )
179
- expect ( await session . getRedboxDescription ( ) ) . toMatchSnapshot ( )
180
-
181
- await session . patch (
182
- 'index.js' ,
183
- outdent `
184
- import Link from 'next/link'
185
-
186
- export default function Hello() {
187
- return (
188
- <Link
189
- href={false}
190
- as="/"
191
- replace={undefined}
192
- scroll={'oops'}
193
- shallow={undefined}
194
- passHref={undefined}
195
- prefetch={undefined}
196
- >
197
- Abc
198
- </Link>
199
- )
200
- }
201
- `
202
- )
203
- await session . assertHasRedbox ( )
204
- expect ( await session . getRedboxDescription ( ) ) . toMatchSnapshot ( )
205
- } )
206
-
207
12
test ( 'server-side only compilation errors' , async ( ) => {
208
13
await using sandbox = await createSandbox ( next )
209
- const { session } = sandbox
14
+ const { browser , session } = sandbox
210
15
211
16
await session . patch (
212
17
'app/page.js' ,
@@ -226,6 +31,45 @@ describe.skip('ReactRefreshLogBox app', () => {
226
31
`
227
32
)
228
33
229
- await session . assertHasRedbox ( )
34
+ if ( isTurbopack ) {
35
+ await expect ( browser ) . toDisplayRedbox ( `
36
+ {
37
+ "count": 1,
38
+ "description": "Ecmascript file had an error",
39
+ "environmentLabel": null,
40
+ "label": "Build Error",
41
+ "source": "./app/page.js (3:23)
42
+ Ecmascript file had an error
43
+ > 3 | export async function getStaticProps() {
44
+ | ^^^^^^^^^^^^^^",
45
+ "stack": [],
46
+ }
47
+ ` )
48
+ } else {
49
+ await expect ( browser ) . toDisplayRedbox ( `
50
+ {
51
+ "count": 1,
52
+ "description": "Error: x "getStaticProps" is not supported in app/. Read more: https://nextjs.org/docs/app/building-your-application/data-fetching",
53
+ "environmentLabel": null,
54
+ "label": "Build Error",
55
+ "source": "./app/page.js
56
+ Error: x "getStaticProps" is not supported in app/. Read more: https://nextjs.org/docs/app/building-your-application/data-fetching
57
+ |
58
+ |
59
+ ,-[3:1]
60
+ 1 | 'use client'
61
+ 2 | import myLibrary from 'my-non-existent-library'
62
+ 3 | export async function getStaticProps() {
63
+ : ^^^^^^^^^^^^^^
64
+ 4 | return {
65
+ 5 | props: {
66
+ 6 | result: myLibrary()
67
+ \`----
68
+ Import trace for requested module:
69
+ ./app/page.js",
70
+ "stack": [],
71
+ }
72
+ ` )
73
+ }
230
74
} )
231
75
} )
0 commit comments