next.js/test/e2e/app-dir/multiple-lockfiles/multiple-lockfiles.test.ts
multiple-lockfiles.test.ts44 lines1.4 KB
import { join } from 'path'
import { FileRef, nextTestSetup } from 'e2e-utils'
import { retry } from 'next-test-utils'

describe('multiple-lockfiles', () => {
  const { next, skipped, isTurbopack } = nextTestSetup({
    files: {
      app: new FileRef(join(__dirname, 'app')),
      // Write a package-lock.json file to the parent directory to simulate
      // multiple lockfiles.
      '../package-lock.json': JSON.stringify({
        name: 'parent-workspace',
        version: '1.0.0',
        lockfileVersion: 3,
      }),
    },
    // So that ../package-lock.json doesn't leave the isolated testDir
    subDir: 'test',
    skipDeployment: true,
  })

  if (skipped) {
    return
  }

  it('should have multiple lockfiles warnings', async () => {
    await retry(async () => {
      expect(next.cliOutput).toMatch(
        /We detected multiple lockfiles and selected the directory of .+ as the root directory\./
      )

      if (isTurbopack) {
        expect(next.cliOutput).toMatch(
          /To silence this warning, set `turbopack\.root` in your Next\.js config, or consider removing one of the lockfiles if it's not needed\./
        )
      } else {
        expect(next.cliOutput).toMatch(
          /To silence this warning, set `outputFileTracingRoot` in your Next\.js config, or consider removing one of the lockfiles if it's not needed\./
        )
      }
    })
  })
})
Quest for Codev2.0.0
/
SIGN IN