Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci(actions): report failed --turbo next.js tests #3350

Merged
merged 13 commits into from
Jan 21, 2023
Merged

Conversation

kwonoj
Copy link
Contributor

@kwonoj kwonoj commented Jan 18, 2023

Closes WEB-168.

This PR changes the behavior of next.js integration test in this repo to run everything with --turbo by default, instead of manually opt in per each PR. Since current next.js integration tests are expected to fail with turbopack, PR adds changes

  1. Do not fail CI when next.js integration test fails
    So we can keep CI checker green for the daily workflow

  2. Report failed tests in the PR comment
    Instead, report failed tests in the comment, like ci(actions): report failed --turbo next.js tests #3350 (comment)

This is largely similar to what next.js upstream does for failing report, but does not use exact same webhook since the way CI pipeline sets up is bit different so we can't use it out of the box. However, the logic in the custom action is short & straightforward enough to keep internally.

One thing to note is this report uses default automatic github auth token (user github-actions bot). This means report comment will not be created if PR is created from fork, but I expect that's acceptable limitation.

There maybe some improvements we want to add, like diff-between-main but probably not a high priority & maybe we can fix all the turbopack faster than having those.

@vercel
Copy link

vercel bot commented Jan 18, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated
examples-cra-web 🔄 Building (Inspect) Visit Preview Jan 21, 2023 at 6:48AM (UTC)
examples-kitchensink-blog 🔄 Building (Inspect) Visit Preview Jan 21, 2023 at 6:48AM (UTC)
8 Ignored Deployments
Name Status Preview Comments Updated
examples-basic-web ⬜️ Ignored (Inspect) Visit Preview Jan 21, 2023 at 6:48AM (UTC)
examples-designsystem-docs ⬜️ Ignored (Inspect) Visit Preview Jan 21, 2023 at 6:48AM (UTC)
examples-native-web ⬜️ Ignored (Inspect) Visit Preview Jan 21, 2023 at 6:48AM (UTC)
examples-nonmonorepo ⬜️ Ignored (Inspect) Visit Preview Jan 21, 2023 at 6:48AM (UTC)
examples-svelte-web ⬜️ Ignored (Inspect) Visit Preview Jan 21, 2023 at 6:48AM (UTC)
examples-tailwind-web ⬜️ Ignored (Inspect) Visit Preview Jan 21, 2023 at 6:48AM (UTC)
turbo-site ⬜️ Ignored (Inspect) Visit Preview Jan 21, 2023 at 6:48AM (UTC)
turbo-vite-web ⬜️ Ignored (Inspect) Visit Preview Jan 21, 2023 at 6:48AM (UTC)

@github-actions
Copy link
Contributor

Benchmark for 6c203b1

Click to view benchmark
Test Base PR % Significant %
bench_hmr_to_commit/Turbopack CSR/1000 modules 8657.07µs ± 101.48µs 8543.31µs ± 83.01µs -1.31%
bench_hmr_to_commit/Turbopack RCC/1000 modules 8756.20µs ± 75.10µs 8942.44µs ± 89.41µs +2.13%
bench_hmr_to_commit/Turbopack RSC/1000 modules 466.19ms ± 3.30ms 466.57ms ± 1.33ms +0.08%
bench_hmr_to_commit/Turbopack SSR/1000 modules 8664.14µs ± 41.58µs 8718.29µs ± 51.70µs +0.63%
bench_hmr_to_eval/Turbopack CSR/1000 modules 7571.34µs ± 40.04µs 7574.15µs ± 41.53µs +0.04%
bench_hmr_to_eval/Turbopack RCC/1000 modules 7624.06µs ± 72.07µs 7675.80µs ± 31.37µs +0.68%
bench_hmr_to_eval/Turbopack SSR/1000 modules 7690.64µs ± 93.12µs 7653.61µs ± 72.13µs -0.48%
bench_hydration/Turbopack RCC/1000 modules 3305.26ms ± 10.32ms 3322.45ms ± 9.60ms +0.52%
bench_hydration/Turbopack RSC/1000 modules 2808.33ms ± 6.31ms 2817.03ms ± 9.66ms +0.31%
bench_hydration/Turbopack SSR/1000 modules 2628.39ms ± 10.72ms 2650.99ms ± 15.59ms +0.86%
bench_startup/Turbopack CSR/1000 modules 1645.40ms ± 5.27ms 1631.57ms ± 6.35ms -0.84%
bench_startup/Turbopack RCC/1000 modules 2463.44ms ± 8.76ms 2469.18ms ± 9.54ms +0.23%
bench_startup/Turbopack RSC/1000 modules 2372.48ms ± 10.47ms 2364.20ms ± 8.71ms -0.35%
bench_startup/Turbopack SSR/1000 modules 2043.10ms ± 4.60ms 2042.00ms ± 2.98ms -0.05%

@kwonoj kwonoj force-pushed the turbo-test-upstream branch 13 times, most recently from 1ee7b6f to 983a449 Compare January 18, 2023 08:37
@github-actions
Copy link
Contributor

Benchmark for 8e98fc7

Test Base PR % Significant %
bench_hydration/Turbopack RSC/1000 modules 2841.49ms ± 14.59ms 2791.86ms ± 7.05ms -1.75% -0.23%
Click to view full benchmark
Test Base PR % Significant %
bench_hmr_to_commit/Turbopack CSR/1000 modules 8079.22µs ± 44.93µs 8064.38µs ± 57.00µs -0.18%
bench_hmr_to_commit/Turbopack RCC/1000 modules 8320.90µs ± 90.18µs 8320.70µs ± 54.82µs -0.00%
bench_hmr_to_commit/Turbopack RSC/1000 modules 466.08ms ± 1.13ms 462.54ms ± 2.79ms -0.76%
bench_hmr_to_commit/Turbopack SSR/1000 modules 8142.26µs ± 40.40µs 8165.97µs ± 49.79µs +0.29%
bench_hmr_to_eval/Turbopack CSR/1000 modules 7119.68µs ± 65.15µs 7125.47µs ± 64.79µs +0.08%
bench_hmr_to_eval/Turbopack RCC/1000 modules 7192.03µs ± 36.31µs 7296.95µs ± 59.73µs +1.46%
bench_hmr_to_eval/Turbopack SSR/1000 modules 7143.47µs ± 27.68µs 7254.35µs ± 48.09µs +1.55%
bench_hydration/Turbopack RCC/1000 modules 3302.91ms ± 10.40ms 3300.51ms ± 9.30ms -0.07%
bench_hydration/Turbopack RSC/1000 modules 2841.49ms ± 14.59ms 2791.86ms ± 7.05ms -1.75% -0.23%
bench_hydration/Turbopack SSR/1000 modules 2624.11ms ± 14.84ms 2629.07ms ± 10.11ms +0.19%
bench_startup/Turbopack CSR/1000 modules 1610.38ms ± 6.47ms 1615.59ms ± 6.64ms +0.32%
bench_startup/Turbopack RCC/1000 modules 2453.23ms ± 6.09ms 2464.87ms ± 5.90ms +0.47%
bench_startup/Turbopack RSC/1000 modules 2349.97ms ± 9.60ms 2349.48ms ± 10.31ms -0.02%
bench_startup/Turbopack SSR/1000 modules 2015.35ms ± 4.58ms 2021.47ms ± 5.60ms +0.30%

@github-actions
Copy link
Contributor

github-actions bot commented Jan 18, 2023

🟢 CI successful 🟢

Thanks

@github-actions
Copy link
Contributor

github-actions bot commented Jan 18, 2023

Failing next.js integration test suites

Commit: b264321

test/development/acceptance-app/ReactRefresh.test.ts

  • ReactRefreshLogBox > Node.js builtins
  • ReactRefreshLogBox > Module not found
  • ReactRefreshLogBox > Module not found (empty import trace)
  • ReactRefreshLogBox > Module not found (missing global CSS)
Expand output

● ReactRefreshLogBox › Node.js builtins

Application is in inconsistent state: timeout.

  82 |           }
  83 |           if (status !== 'pending') {
> 84 |             throw new Error(`Application is in inconsistent state: ${status}.`)
     |                   ^
  85 |           }
  86 |
  87 |           await new Promise((resolve) => setTimeout(resolve, 30))

  at Object.patch (development/acceptance/helpers.ts:84:19)
  at Object.<anonymous> (development/acceptance/ReactRefreshLogBox-builtins.test.ts:40:5)

● ReactRefreshLogBox › Module not found

Application is in inconsistent state: timeout.

  82 |           }
  83 |           if (status !== 'pending') {
> 84 |             throw new Error(`Application is in inconsistent state: ${status}.`)
     |                   ^
  85 |           }
  86 |
  87 |           await new Promise((resolve) => setTimeout(resolve, 30))

  at Object.patch (development/acceptance/helpers.ts:84:19)
  at Object.<anonymous> (development/acceptance/ReactRefreshLogBox-builtins.test.ts:59:5)

● ReactRefreshLogBox › Module not found (empty import trace)

Application is in inconsistent state: timeout.

  82 |           }
  83 |           if (status !== 'pending') {
> 84 |             throw new Error(`Application is in inconsistent state: ${status}.`)
     |                   ^
  85 |           }
  86 |
  87 |           await new Promise((resolve) => setTimeout(resolve, 30))

  at Object.patch (development/acceptance/helpers.ts:84:19)
  at Object.<anonymous> (development/acceptance/ReactRefreshLogBox-builtins.test.ts:83:5)

● ReactRefreshLogBox › Module not found (missing global CSS)

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  126 |       ])
  127 |     )
> 128 |     expect(await session.hasRedbox(true)).toBe(true)
      |                                           ^
  129 |
  130 |     const source = await session.getRedboxSource()
  131 |     expect(source).toMatchSnapshot()

  at Object.<anonymous> (development/acceptance/ReactRefreshLogBox-builtins.test.ts:128:43)

test/e2e/middleware-shallow-link/index.test.ts

  • browser-shallow-navigation > should render the correct page
Expand output

● browser-shallow-navigation › should render the correct page

page.waitForSelector: Timeout 30000ms exceeded.
=========================== logs ===========================
waiting for locator('[data-next-shallow-push]')
============================================================

  329 |     return this.chain(() => {
  330 |       return page
> 331 |         .waitForSelector(selector, { timeout, state: 'attached' })
      |          ^
  332 |         .then(async (el) => {
  333 |           // it seems selenium waits longer and tests rely on this behavior
  334 |           // so we wait for the load event fire before returning

  at lib/browsers/playwright.ts:331:10

test/integration/404-page-app/test/index.test.js

  • 404 Page Support with _app > dev mode > should not show pages/404 GIP error if _app has GIP
Expand output

● 404 Page Support with _app › dev mode › should not show pages/404 GIP error if _app has GIP

expect(received).toBe(expected) // Object.is equality

Expected: 404
Received: 500

  79 |     it('should not show pages/404 GIP error if _app has GIP', async () => {
  80 |       const res = await fetchViaHTTP(appPort, '/abc')
> 81 |       expect(res.status).toBe(404)
     |                          ^
  82 |       const $ = cheerio.load(await res.text())
  83 |       expect($('#404-title').text()).toBe('Hi There')
  84 |       expect(stderr).not.toMatch(gip404Err)

  at Object.<anonymous> (integration/404-page-app/test/index.test.js:81:26)

test/development/basic/styled-components-disabled.test.ts

  • ReactRefreshLogBox app > Node.js builtins
  • ReactRefreshLogBox app > Module not found
  • ReactRefreshLogBox app > Module not found empty import trace
  • ReactRefreshLogBox app > Module not found missing global CSS
Expand output

● ReactRefreshLogBox app › Node.js builtins

Application is in inconsistent state: timeout.

  74 |           }
  75 |           if (status !== 'pending') {
> 76 |             throw new Error(`Application is in inconsistent state: ${status}.`)
     |                   ^
  77 |           }
  78 |
  79 |           await new Promise((resolve) => setTimeout(resolve, 30))

  at Object.patch (development/acceptance-app/helpers.ts:76:19)
  at Object.<anonymous> (development/acceptance-app/ReactRefreshLogBox-builtins.test.ts:46:5)

● ReactRefreshLogBox app › Module not found

Application is in inconsistent state: timeout.

  74 |           }
  75 |           if (status !== 'pending') {
> 76 |             throw new Error(`Application is in inconsistent state: ${status}.`)
     |                   ^
  77 |           }
  78 |
  79 |           await new Promise((resolve) => setTimeout(resolve, 30))

  at Object.patch (development/acceptance-app/helpers.ts:76:19)
  at Object.<anonymous> (development/acceptance-app/ReactRefreshLogBox-builtins.test.ts:65:5)

● ReactRefreshLogBox app › Module not found empty import trace

Application is in inconsistent state: timeout.

  74 |           }
  75 |           if (status !== 'pending') {
> 76 |             throw new Error(`Application is in inconsistent state: ${status}.`)
     |                   ^
  77 |           }
  78 |
  79 |           await new Promise((resolve) => setTimeout(resolve, 30))

  at Object.patch (development/acceptance-app/helpers.ts:76:19)
  at Object.<anonymous> (development/acceptance-app/ReactRefreshLogBox-builtins.test.ts:89:5)

● ReactRefreshLogBox app › Module not found missing global CSS

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  124 |       ])
  125 |     )
> 126 |     expect(await session.hasRedbox(true)).toBe(true)
      |                                           ^
  127 |
  128 |     const source = await session.getRedboxSource()
  129 |     expect(source).toMatchSnapshot()

  at Object.<anonymous> (development/acceptance-app/ReactRefreshLogBox-builtins.test.ts:126:43)

test/e2e/app-dir/app-rendering/rendering.test.ts

  • app dir rendering > should serve app/page.server.js at /
  • app dir rendering > ISR > should revalidate the page when revalidate is configured
  • app dir rendering > SSR only > should run data in layout and page
  • app dir rendering > SSR only > should run data fetch in parallel
  • app dir rendering > static only > should run data in layout and page
  • app dir rendering > static only > should run data in parallel during development
Expand output

● app dir rendering › should serve app/page.server.js at /

expect(received).toContain(expected) // indexOf

Expected substring: "app/page.server.js"
Received string:    "failed to canonicalize embedded file path·
Caused by:
    No such file or directory (os error 2)"

  12 |     it('should serve app/page.server.js at /', async () => {
  13 |       const html = await next.render('/')
> 14 |       expect(html).toContain('app/page.server.js')
     |                    ^
  15 |     })
  16 |
  17 |     describe('SSR only', () => {

  at Object.<anonymous> (e2e/app-dir/app-rendering/rendering.test.ts:14:20)

● app dir rendering › SSR only › should run data in layout and page

expect(received).toBe(expected) // Object.is equality

Expected: "hello from layout"
Received: ""

  18 |       it('should run data in layout and page', async () => {
  19 |         const $ = await next.render$('/ssr-only/nested')
> 20 |         expect($('#layout-message').text()).toBe('hello from layout')
     |                                             ^
  21 |         expect($('#page-message').text()).toBe('hello from page')
  22 |       })
  23 |

  at Object.<anonymous> (e2e/app-dir/app-rendering/rendering.test.ts:20:45)

● app dir rendering › SSR only › should run data fetch in parallel

expect(received).toBe(expected) // Object.is equality

Expected: "hello from slow layout"
Received: ""

  30 |         // Using 7 seconds to ensure external factors causing slight slowness don't fail the tests
  31 |         expect(duration < 7000).toBe(true)
> 32 |         expect($('#slow-layout-message').text()).toBe('hello from slow layout')
     |                                                  ^
  33 |         expect($('#slow-page-message').text()).toBe('hello from slow page')
  34 |       })
  35 |     })

  at Object.<anonymous> (e2e/app-dir/app-rendering/rendering.test.ts:32:50)

● app dir rendering › static only › should run data in layout and page

expect(received).toBe(expected) // Object.is equality

Expected: "hello from layout"
Received: ""

  38 |       it('should run data in layout and page', async () => {
  39 |         const $ = await next.render$('/static-only/nested')
> 40 |         expect($('#layout-message').text()).toBe('hello from layout')
     |                                             ^
  41 |         expect($('#page-message').text()).toBe('hello from page')
  42 |       })
  43 |

  at Object.<anonymous> (e2e/app-dir/app-rendering/rendering.test.ts:40:45)

● app dir rendering › static only › should run data in parallel during development

expect(received).toBe(expected) // Object.is equality

Expected: "hello from slow layout"
Received: ""

  54 |         // expect(duration < (isDev ? 7000 : 2000)).toBe(true)
  55 |         // expect(duration < 7000).toBe(true)
> 56 |         expect($('#slow-layout-message').text()).toBe('hello from slow layout')
     |                                                  ^
  57 |         expect($('#slow-page-message').text()).toBe('hello from slow page')
  58 |       })
  59 |     })

  at Object.<anonymous> (e2e/app-dir/app-rendering/rendering.test.ts:56:50)

● app dir rendering › ISR › should revalidate the page when revalidate is configured

expect(received).toBe(expected) // Object.is equality

Expected: "hello from layout"
Received: ""

  71 |         }
  72 |         const { $ } = await getPage()
> 73 |         expect($('#layout-message').text()).toBe('hello from layout')
     |                                             ^
  74 |         expect($('#page-message').text()).toBe('hello from page')
  75 |
  76 |         const layoutNow = $('#layout-now').text()

  at Object.<anonymous> (e2e/app-dir/app-rendering/rendering.test.ts:73:45)

test/integration/404-page-custom-error/test/index.test.js

  • Default 404 Page with custom _error > dev mode > should respond to 404 correctly
  • Default 404 Page with custom _error > dev mode > should render error correctly
  • Default 404 Page with custom _error > dev mode > should render index page normal
Expand output

● Default 404 Page with custom _error › dev mode › should respond to 404 correctly

expect(received).toBe(expected) // Object.is equality

Expected: 404
Received: 500

  24 |   it('should respond to 404 correctly', async () => {
  25 |     const res = await fetchViaHTTP(appPort, '/404')
> 26 |     expect(res.status).toBe(404)
     |                        ^
  27 |     expect(await res.text()).toContain('This page could not be found')
  28 |   })
  29 |

  at Object.<anonymous> (integration/404-page-custom-error/test/index.test.js:26:24)

● Default 404 Page with custom _error › dev mode › should render error correctly

expect(received).toContain(expected) // indexOf

Expected substring: "oops"
Received string:    "failed to canonicalize embedded file path·
Caused by:
    No such file or directory (os error 2)"

  30 |   it('should render error correctly', async () => {
  31 |     const text = await renderViaHTTP(appPort, '/err')
> 32 |     expect(text).toContain(isDev ? 'oops' : 'Internal Server Error')
     |                  ^
  33 |   })
  34 |
  35 |   it('should render index page normal', async () => {

  at Object.<anonymous> (integration/404-page-custom-error/test/index.test.js:32:18)

● Default 404 Page with custom _error › dev mode › should render index page normal

expect(received).toContain(expected) // indexOf

Expected substring: "hello from index"
Received string:    "failed to canonicalize embedded file path·
Caused by:
    No such file or directory (os error 2)"

  35 |   it('should render index page normal', async () => {
  36 |     const html = await renderViaHTTP(appPort, '/')
> 37 |     expect(html).toContain('hello from index')
     |                  ^
  38 |   })
  39 |
  40 |   if (!isDev) {

  at Object.<anonymous> (integration/404-page-custom-error/test/index.test.js:37:18)

test/development/acceptance-app/ReactRefresh.test.ts

  • ReactRefreshLogBox > Node.js builtins
  • ReactRefreshLogBox > Module not found
  • ReactRefreshLogBox > Module not found (empty import trace)
  • ReactRefreshLogBox > Module not found (missing global CSS)
Expand output

● ReactRefreshLogBox › Node.js builtins

Application is in inconsistent state: timeout.

  82 |           }
  83 |           if (status !== 'pending') {
> 84 |             throw new Error(`Application is in inconsistent state: ${status}.`)
     |                   ^
  85 |           }
  86 |
  87 |           await new Promise((resolve) => setTimeout(resolve, 30))

  at Object.patch (development/acceptance/helpers.ts:84:19)
  at Object.<anonymous> (development/acceptance/ReactRefreshLogBox-builtins.test.ts:40:5)

● ReactRefreshLogBox › Module not found

Application is in inconsistent state: timeout.

  82 |           }
  83 |           if (status !== 'pending') {
> 84 |             throw new Error(`Application is in inconsistent state: ${status}.`)
     |                   ^
  85 |           }
  86 |
  87 |           await new Promise((resolve) => setTimeout(resolve, 30))

  at Object.patch (development/acceptance/helpers.ts:84:19)
  at Object.<anonymous> (development/acceptance/ReactRefreshLogBox-builtins.test.ts:59:5)

● ReactRefreshLogBox › Module not found (empty import trace)

Application is in inconsistent state: timeout.

  82 |           }
  83 |           if (status !== 'pending') {
> 84 |             throw new Error(`Application is in inconsistent state: ${status}.`)
     |                   ^
  85 |           }
  86 |
  87 |           await new Promise((resolve) => setTimeout(resolve, 30))

  at Object.patch (development/acceptance/helpers.ts:84:19)
  at Object.<anonymous> (development/acceptance/ReactRefreshLogBox-builtins.test.ts:83:5)

● ReactRefreshLogBox › Module not found (missing global CSS)

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  126 |       ])
  127 |     )
> 128 |     expect(await session.hasRedbox(true)).toBe(true)
      |                                           ^
  129 |
  130 |     const source = await session.getRedboxSource()
  131 |     expect(source).toMatchSnapshot()

  at Object.<anonymous> (development/acceptance/ReactRefreshLogBox-builtins.test.ts:128:43)

test/e2e/middleware-shallow-link/index.test.ts

  • browser-shallow-navigation > should render the correct page
Expand output

● browser-shallow-navigation › should render the correct page

page.waitForSelector: Timeout 30000ms exceeded.
=========================== logs ===========================
waiting for locator('[data-next-shallow-push]')
============================================================

  329 |     return this.chain(() => {
  330 |       return page
> 331 |         .waitForSelector(selector, { timeout, state: 'attached' })
      |          ^
  332 |         .then(async (el) => {
  333 |           // it seems selenium waits longer and tests rely on this behavior
  334 |           // so we wait for the load event fire before returning

  at lib/browsers/playwright.ts:331:10

test/integration/404-page-app/test/index.test.js

  • 404 Page Support with _app > dev mode > should not show pages/404 GIP error if _app has GIP
Expand output

● 404 Page Support with _app › dev mode › should not show pages/404 GIP error if _app has GIP

expect(received).toBe(expected) // Object.is equality

Expected: 404
Received: 500

  79 |     it('should not show pages/404 GIP error if _app has GIP', async () => {
  80 |       const res = await fetchViaHTTP(appPort, '/abc')
> 81 |       expect(res.status).toBe(404)
     |                          ^
  82 |       const $ = cheerio.load(await res.text())
  83 |       expect($('#404-title').text()).toBe('Hi There')
  84 |       expect(stderr).not.toMatch(gip404Err)

  at Object.<anonymous> (integration/404-page-app/test/index.test.js:81:26)

test/development/basic/styled-components-disabled.test.ts

  • ReactRefreshLogBox app > Node.js builtins
  • ReactRefreshLogBox app > Module not found
  • ReactRefreshLogBox app > Module not found empty import trace
  • ReactRefreshLogBox app > Module not found missing global CSS
Expand output

● ReactRefreshLogBox app › Node.js builtins

Application is in inconsistent state: timeout.

  74 |           }
  75 |           if (status !== 'pending') {
> 76 |             throw new Error(`Application is in inconsistent state: ${status}.`)
     |                   ^
  77 |           }
  78 |
  79 |           await new Promise((resolve) => setTimeout(resolve, 30))

  at Object.patch (development/acceptance-app/helpers.ts:76:19)
  at Object.<anonymous> (development/acceptance-app/ReactRefreshLogBox-builtins.test.ts:46:5)

● ReactRefreshLogBox app › Module not found

Application is in inconsistent state: timeout.

  74 |           }
  75 |           if (status !== 'pending') {
> 76 |             throw new Error(`Application is in inconsistent state: ${status}.`)
     |                   ^
  77 |           }
  78 |
  79 |           await new Promise((resolve) => setTimeout(resolve, 30))

  at Object.patch (development/acceptance-app/helpers.ts:76:19)
  at Object.<anonymous> (development/acceptance-app/ReactRefreshLogBox-builtins.test.ts:65:5)

● ReactRefreshLogBox app › Module not found empty import trace

Application is in inconsistent state: timeout.

  74 |           }
  75 |           if (status !== 'pending') {
> 76 |             throw new Error(`Application is in inconsistent state: ${status}.`)
     |                   ^
  77 |           }
  78 |
  79 |           await new Promise((resolve) => setTimeout(resolve, 30))

  at Object.patch (development/acceptance-app/helpers.ts:76:19)
  at Object.<anonymous> (development/acceptance-app/ReactRefreshLogBox-builtins.test.ts:89:5)

● ReactRefreshLogBox app › Module not found missing global CSS

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  124 |       ])
  125 |     )
> 126 |     expect(await session.hasRedbox(true)).toBe(true)
      |                                           ^
  127 |
  128 |     const source = await session.getRedboxSource()
  129 |     expect(source).toMatchSnapshot()

  at Object.<anonymous> (development/acceptance-app/ReactRefreshLogBox-builtins.test.ts:126:43)

test/e2e/app-dir/app-rendering/rendering.test.ts

  • app dir rendering > should serve app/page.server.js at /
  • app dir rendering > ISR > should revalidate the page when revalidate is configured
  • app dir rendering > SSR only > should run data in layout and page
  • app dir rendering > SSR only > should run data fetch in parallel
  • app dir rendering > static only > should run data in layout and page
  • app dir rendering > static only > should run data in parallel during development
Expand output

● app dir rendering › should serve app/page.server.js at /

expect(received).toContain(expected) // indexOf

Expected substring: "app/page.server.js"
Received string:    "failed to canonicalize embedded file path·
Caused by:
    No such file or directory (os error 2)"

  12 |     it('should serve app/page.server.js at /', async () => {
  13 |       const html = await next.render('/')
> 14 |       expect(html).toContain('app/page.server.js')
     |                    ^
  15 |     })
  16 |
  17 |     describe('SSR only', () => {

  at Object.<anonymous> (e2e/app-dir/app-rendering/rendering.test.ts:14:20)

● app dir rendering › SSR only › should run data in layout and page

expect(received).toBe(expected) // Object.is equality

Expected: "hello from layout"
Received: ""

  18 |       it('should run data in layout and page', async () => {
  19 |         const $ = await next.render$('/ssr-only/nested')
> 20 |         expect($('#layout-message').text()).toBe('hello from layout')
     |                                             ^
  21 |         expect($('#page-message').text()).toBe('hello from page')
  22 |       })
  23 |

  at Object.<anonymous> (e2e/app-dir/app-rendering/rendering.test.ts:20:45)

● app dir rendering › SSR only › should run data fetch in parallel

expect(received).toBe(expected) // Object.is equality

Expected: "hello from slow layout"
Received: ""

  30 |         // Using 7 seconds to ensure external factors causing slight slowness don't fail the tests
  31 |         expect(duration < 7000).toBe(true)
> 32 |         expect($('#slow-layout-message').text()).toBe('hello from slow layout')
     |                                                  ^
  33 |         expect($('#slow-page-message').text()).toBe('hello from slow page')
  34 |       })
  35 |     })

  at Object.<anonymous> (e2e/app-dir/app-rendering/rendering.test.ts:32:50)

● app dir rendering › static only › should run data in layout and page

expect(received).toBe(expected) // Object.is equality

Expected: "hello from layout"
Received: ""

  38 |       it('should run data in layout and page', async () => {
  39 |         const $ = await next.render$('/static-only/nested')
> 40 |         expect($('#layout-message').text()).toBe('hello from layout')
     |                                             ^
  41 |         expect($('#page-message').text()).toBe('hello from page')
  42 |       })
  43 |

  at Object.<anonymous> (e2e/app-dir/app-rendering/rendering.test.ts:40:45)

● app dir rendering › static only › should run data in parallel during development

expect(received).toBe(expected) // Object.is equality

Expected: "hello from slow layout"
Received: ""

  54 |         // expect(duration < (isDev ? 7000 : 2000)).toBe(true)
  55 |         // expect(duration < 7000).toBe(true)
> 56 |         expect($('#slow-layout-message').text()).toBe('hello from slow layout')
     |                                                  ^
  57 |         expect($('#slow-page-message').text()).toBe('hello from slow page')
  58 |       })
  59 |     })

  at Object.<anonymous> (e2e/app-dir/app-rendering/rendering.test.ts:56:50)

● app dir rendering › ISR › should revalidate the page when revalidate is configured

expect(received).toBe(expected) // Object.is equality

Expected: "hello from layout"
Received: ""

  71 |         }
  72 |         const { $ } = await getPage()
> 73 |         expect($('#layout-message').text()).toBe('hello from layout')
     |                                             ^
  74 |         expect($('#page-message').text()).toBe('hello from page')
  75 |
  76 |         const layoutNow = $('#layout-now').text()

  at Object.<anonymous> (e2e/app-dir/app-rendering/rendering.test.ts:73:45)

test/integration/404-page-custom-error/test/index.test.js

  • Default 404 Page with custom _error > dev mode > should respond to 404 correctly
  • Default 404 Page with custom _error > dev mode > should render error correctly
  • Default 404 Page with custom _error > dev mode > should render index page normal
Expand output

● Default 404 Page with custom _error › dev mode › should respond to 404 correctly

expect(received).toBe(expected) // Object.is equality

Expected: 404
Received: 500

  24 |   it('should respond to 404 correctly', async () => {
  25 |     const res = await fetchViaHTTP(appPort, '/404')
> 26 |     expect(res.status).toBe(404)
     |                        ^
  27 |     expect(await res.text()).toContain('This page could not be found')
  28 |   })
  29 |

  at Object.<anonymous> (integration/404-page-custom-error/test/index.test.js:26:24)

● Default 404 Page with custom _error › dev mode › should render error correctly

expect(received).toContain(expected) // indexOf

Expected substring: "oops"
Received string:    "failed to canonicalize embedded file path·
Caused by:
    No such file or directory (os error 2)"

  30 |   it('should render error correctly', async () => {
  31 |     const text = await renderViaHTTP(appPort, '/err')
> 32 |     expect(text).toContain(isDev ? 'oops' : 'Internal Server Error')
     |                  ^
  33 |   })
  34 |
  35 |   it('should render index page normal', async () => {

  at Object.<anonymous> (integration/404-page-custom-error/test/index.test.js:32:18)

● Default 404 Page with custom _error › dev mode › should render index page normal

expect(received).toContain(expected) // indexOf

Expected substring: "hello from index"
Received string:    "failed to canonicalize embedded file path·
Caused by:
    No such file or directory (os error 2)"

  35 |   it('should render index page normal', async () => {
  36 |     const html = await renderViaHTTP(appPort, '/')
> 37 |     expect(html).toContain('hello from index')
     |                  ^
  38 |   })
  39 |
  40 |   if (!isDev) {

  at Object.<anonymous> (integration/404-page-custom-error/test/index.test.js:37:18)

@kwonoj kwonoj force-pushed the turbo-test-upstream branch 4 times, most recently from 616aa40 to da09da5 Compare January 18, 2023 18:33
@github-actions
Copy link
Contributor

Benchmark for 41216bb

Click to view benchmark
Test Base PR % Significant %
bench_hmr_to_commit/Turbopack CSR/1000 modules 8664.56µs ± 43.53µs 8785.44µs ± 47.53µs +1.40%
bench_hmr_to_commit/Turbopack RCC/1000 modules 9005.19µs ± 73.85µs 9041.23µs ± 57.91µs +0.40%
bench_hmr_to_commit/Turbopack RSC/1000 modules 459.07ms ± 2.08ms 464.87ms ± 1.35ms +1.27%
bench_hmr_to_commit/Turbopack SSR/1000 modules 8771.32µs ± 53.40µs 8738.56µs ± 93.18µs -0.37%
bench_hmr_to_eval/Turbopack CSR/1000 modules 7717.90µs ± 61.77µs 7668.45µs ± 54.80µs -0.64%
bench_hmr_to_eval/Turbopack RCC/1000 modules 7873.70µs ± 58.67µs 7877.53µs ± 77.93µs +0.05%
bench_hmr_to_eval/Turbopack SSR/1000 modules 7789.05µs ± 37.46µs 7797.23µs ± 53.68µs +0.11%
bench_hydration/Turbopack RCC/1000 modules 3447.24ms ± 15.13ms 3420.11ms ± 6.14ms -0.79%
bench_hydration/Turbopack RSC/1000 modules 2853.97ms ± 11.17ms 2860.15ms ± 3.97ms +0.22%
bench_hydration/Turbopack SSR/1000 modules 2657.42ms ± 12.03ms 2644.64ms ± 8.91ms -0.48%
bench_startup/Turbopack CSR/1000 modules 1651.18ms ± 7.11ms 1651.30ms ± 5.18ms +0.01%
bench_startup/Turbopack RCC/1000 modules 2532.82ms ± 5.70ms 2526.81ms ± 12.53ms -0.24%
bench_startup/Turbopack RSC/1000 modules 2438.02ms ± 7.75ms 2410.84ms ± 6.40ms -1.11%
bench_startup/Turbopack SSR/1000 modules 2084.73ms ± 5.91ms 2080.46ms ± 5.62ms -0.20%

@github-actions
Copy link
Contributor

Benchmark for 4269545

Click to view benchmark
Test Base PR % Significant %
bench_hmr_to_commit/Turbopack CSR/1000 modules 8147.90µs ± 76.19µs 8205.70µs ± 66.03µs +0.71%
bench_hmr_to_commit/Turbopack RCC/1000 modules 8480.82µs ± 70.14µs 8460.41µs ± 88.73µs -0.24%
bench_hmr_to_commit/Turbopack RSC/1000 modules 444.68ms ± 1.79ms 447.42ms ± 0.86ms +0.62%
bench_hmr_to_commit/Turbopack SSR/1000 modules 8266.07µs ± 72.80µs 8328.72µs ± 63.64µs +0.76%
bench_hmr_to_eval/Turbopack CSR/1000 modules 7224.76µs ± 51.47µs 7234.33µs ± 43.00µs +0.13%
bench_hmr_to_eval/Turbopack RCC/1000 modules 7415.26µs ± 44.76µs 7325.15µs ± 41.17µs -1.22%
bench_hmr_to_eval/Turbopack SSR/1000 modules 7260.63µs ± 67.58µs 7344.23µs ± 76.54µs +1.15%
bench_hydration/Turbopack RCC/1000 modules 3347.52ms ± 11.89ms 3342.80ms ± 12.86ms -0.14%
bench_hydration/Turbopack RSC/1000 modules 2778.86ms ± 5.90ms 2770.06ms ± 8.94ms -0.32%
bench_hydration/Turbopack SSR/1000 modules 2586.34ms ± 7.09ms 2586.53ms ± 9.04ms +0.01%
bench_startup/Turbopack CSR/1000 modules 1614.19ms ± 6.75ms 1617.52ms ± 9.34ms +0.21%
bench_startup/Turbopack RCC/1000 modules 2454.14ms ± 7.88ms 2456.52ms ± 9.72ms +0.10%
bench_startup/Turbopack RSC/1000 modules 2353.42ms ± 11.05ms 2332.08ms ± 5.47ms -0.91%
bench_startup/Turbopack SSR/1000 modules 2034.93ms ± 4.46ms 2033.80ms ± 6.30ms -0.06%

@mehulkar mehulkar removed their request for review January 21, 2023 00:37
@github-actions
Copy link
Contributor

Benchmark for a6a4308

Click to view benchmark
Test Base PR % Significant %
bench_hmr_to_commit/Turbopack CSR/1000 modules 8129.57µs ± 67.59µs 8171.82µs ± 39.25µs +0.52%
bench_hmr_to_commit/Turbopack RCC/1000 modules 8468.37µs ± 81.63µs 8512.12µs ± 58.38µs +0.52%
bench_hmr_to_commit/Turbopack RSC/1000 modules 445.69ms ± 2.58ms 445.58ms ± 2.22ms -0.03%
bench_hmr_to_commit/Turbopack SSR/1000 modules 8350.45µs ± 51.51µs 8257.58µs ± 64.55µs -1.11%
bench_hmr_to_eval/Turbopack CSR/1000 modules 7238.07µs ± 50.63µs 7255.13µs ± 59.47µs +0.24%
bench_hmr_to_eval/Turbopack RCC/1000 modules 7357.67µs ± 41.40µs 7310.25µs ± 63.02µs -0.64%
bench_hmr_to_eval/Turbopack SSR/1000 modules 7298.79µs ± 68.34µs 7243.20µs ± 78.48µs -0.76%
bench_hydration/Turbopack RCC/1000 modules 3304.90ms ± 5.92ms 3298.92ms ± 11.16ms -0.18%
bench_hydration/Turbopack RSC/1000 modules 2770.10ms ± 6.47ms 2783.15ms ± 10.33ms +0.47%
bench_hydration/Turbopack SSR/1000 modules 2576.34ms ± 7.18ms 2583.27ms ± 7.86ms +0.27%
bench_startup/Turbopack CSR/1000 modules 1614.40ms ± 5.39ms 1600.20ms ± 4.16ms -0.88%
bench_startup/Turbopack RCC/1000 modules 2458.03ms ± 8.64ms 2455.63ms ± 9.21ms -0.10%
bench_startup/Turbopack RSC/1000 modules 2354.54ms ± 9.17ms 2355.79ms ± 4.22ms +0.05%
bench_startup/Turbopack SSR/1000 modules 2042.12ms ± 5.15ms 2024.98ms ± 6.87ms -0.84%

@github-actions
Copy link
Contributor

Benchmark for 7c71cd4

Click to view benchmark
Test Base PR % Significant %
bench_hmr_to_commit/Turbopack CSR/1000 modules 8162.85µs ± 78.35µs 8125.53µs ± 52.55µs -0.46%
bench_hmr_to_commit/Turbopack RCC/1000 modules 8422.52µs ± 48.58µs 8437.26µs ± 40.63µs +0.18%
bench_hmr_to_commit/Turbopack RSC/1000 modules 440.80ms ± 2.33ms 441.24ms ± 1.86ms +0.10%
bench_hmr_to_commit/Turbopack SSR/1000 modules 8225.38µs ± 50.13µs 8307.10µs ± 82.58µs +0.99%
bench_hmr_to_eval/Turbopack CSR/1000 modules 7204.62µs ± 43.05µs 7151.73µs ± 30.29µs -0.73%
bench_hmr_to_eval/Turbopack RCC/1000 modules 7304.58µs ± 50.92µs 7380.90µs ± 47.22µs +1.04%
bench_hmr_to_eval/Turbopack SSR/1000 modules 7310.69µs ± 47.06µs 7370.98µs ± 82.83µs +0.82%
bench_hydration/Turbopack RCC/1000 modules 3312.22ms ± 10.52ms 3302.39ms ± 5.61ms -0.30%
bench_hydration/Turbopack RSC/1000 modules 2768.54ms ± 8.26ms 2749.41ms ± 7.24ms -0.69%
bench_hydration/Turbopack SSR/1000 modules 2571.24ms ± 6.46ms 2574.11ms ± 4.23ms +0.11%
bench_startup/Turbopack CSR/1000 modules 1585.75ms ± 6.23ms 1613.38ms ± 9.44ms +1.74%
bench_startup/Turbopack RCC/1000 modules 2451.54ms ± 9.00ms 2441.59ms ± 5.57ms -0.41%
bench_startup/Turbopack RSC/1000 modules 2332.41ms ± 8.18ms 2349.48ms ± 5.60ms +0.73%
bench_startup/Turbopack SSR/1000 modules 2027.26ms ± 5.76ms 2021.18ms ± 6.41ms -0.30%

@github-actions
Copy link
Contributor

Benchmark for b264321

Click to view benchmark
Test Base PR % Significant %
bench_hmr_to_commit/Turbopack CSR/1000 modules 8841.50µs ± 49.60µs 8857.06µs ± 66.49µs +0.18%
bench_hmr_to_commit/Turbopack RCC/1000 modules 9047.25µs ± 84.53µs 9052.66µs ± 46.26µs +0.06%
bench_hmr_to_commit/Turbopack RSC/1000 modules 458.00ms ± 1.35ms 453.93ms ± 3.23ms -0.89%
bench_hmr_to_commit/Turbopack SSR/1000 modules 8934.34µs ± 52.45µs 8911.23µs ± 66.04µs -0.26%
bench_hmr_to_eval/Turbopack CSR/1000 modules 7814.37µs ± 64.20µs 7770.08µs ± 41.88µs -0.57%
bench_hmr_to_eval/Turbopack RCC/1000 modules 7942.73µs ± 53.67µs 7935.20µs ± 74.73µs -0.09%
bench_hmr_to_eval/Turbopack SSR/1000 modules 7983.03µs ± 76.77µs 7874.39µs ± 58.10µs -1.36%
bench_hydration/Turbopack RCC/1000 modules 3392.42ms ± 13.47ms 3392.73ms ± 13.39ms +0.01%
bench_hydration/Turbopack RSC/1000 modules 2842.52ms ± 7.88ms 2835.97ms ± 10.29ms -0.23%
bench_hydration/Turbopack SSR/1000 modules 2649.77ms ± 8.64ms 2647.80ms ± 10.38ms -0.07%
bench_startup/Turbopack CSR/1000 modules 1636.94ms ± 2.62ms 1639.03ms ± 8.56ms +0.13%
bench_startup/Turbopack RCC/1000 modules 2518.65ms ± 11.63ms 2508.24ms ± 8.56ms -0.41%
bench_startup/Turbopack RSC/1000 modules 2416.01ms ± 3.35ms 2399.24ms ± 6.90ms -0.69%
bench_startup/Turbopack SSR/1000 modules 2078.00ms ± 4.57ms 2074.76ms ± 4.47ms -0.16%

@kodiakhq kodiakhq bot merged commit 89ead9b into main Jan 21, 2023
@kodiakhq kodiakhq bot deleted the turbo-test-upstream branch January 21, 2023 08:45
kodiakhq bot pushed a commit to vercel/next.js that referenced this pull request Jan 21, 2023
Copy link
Contributor

@ForsakenHarmony ForsakenHarmony left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

forgot to submit


runs:
using: node16
main: index.js
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe put it in dist/index.js like the other action I added

"private": true,
"main": "src/index.js",
"scripts": {
"pack": "ncc -o . build src/index.js"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also maybe build on prepare like my action and add it to the pnpm workspace

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: ci pr: automerge Kodiak will merge these automatically after checks pass
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants