From ae6b69b0c053b25ac0611cb339c98edf5a161993 Mon Sep 17 00:00:00 2001 From: Janka Uryga Date: Fri, 20 Dec 2024 01:56:39 +0100 Subject: [PATCH] test: add tests --- .../app/import-cjs/page.tsx | 13 +++++++++++++ .../app/layout.tsx | 8 ++++++++ .../app/require-esm/page.tsx | 13 +++++++++++++ .../index.test.ts | 17 +++++++++++++++++ .../next.config.js | 6 ++++++ .../node_modules/lib-cjs/index.js | 3 +++ .../node_modules/lib-cjs/index.mjs | 3 +++ .../node_modules/lib-cjs/package.json | 10 ++++++++++ .../node_modules/lib-esm/index.cjs | 3 +++ .../node_modules/lib-esm/index.js | 3 +++ .../node_modules/lib-esm/package.json | 10 ++++++++++ 11 files changed, 89 insertions(+) create mode 100644 test/e2e/app-dir/client-module-with-package-type/app/import-cjs/page.tsx create mode 100644 test/e2e/app-dir/client-module-with-package-type/app/layout.tsx create mode 100644 test/e2e/app-dir/client-module-with-package-type/app/require-esm/page.tsx create mode 100644 test/e2e/app-dir/client-module-with-package-type/index.test.ts create mode 100644 test/e2e/app-dir/client-module-with-package-type/next.config.js create mode 100644 test/e2e/app-dir/client-module-with-package-type/node_modules/lib-cjs/index.js create mode 100644 test/e2e/app-dir/client-module-with-package-type/node_modules/lib-cjs/index.mjs create mode 100644 test/e2e/app-dir/client-module-with-package-type/node_modules/lib-cjs/package.json create mode 100644 test/e2e/app-dir/client-module-with-package-type/node_modules/lib-esm/index.cjs create mode 100644 test/e2e/app-dir/client-module-with-package-type/node_modules/lib-esm/index.js create mode 100644 test/e2e/app-dir/client-module-with-package-type/node_modules/lib-esm/package.json diff --git a/test/e2e/app-dir/client-module-with-package-type/app/import-cjs/page.tsx b/test/e2e/app-dir/client-module-with-package-type/app/import-cjs/page.tsx new file mode 100644 index 00000000000000..d96f117e7da3fd --- /dev/null +++ b/test/e2e/app-dir/client-module-with-package-type/app/import-cjs/page.tsx @@ -0,0 +1,13 @@ +import * as React from 'react' + +import EsmFromCjs from 'lib-cjs' + +export default function Page() { + return ( + <> +

+ lib-cjs: +

+ + ) +} diff --git a/test/e2e/app-dir/client-module-with-package-type/app/layout.tsx b/test/e2e/app-dir/client-module-with-package-type/app/layout.tsx new file mode 100644 index 00000000000000..888614deda3ba5 --- /dev/null +++ b/test/e2e/app-dir/client-module-with-package-type/app/layout.tsx @@ -0,0 +1,8 @@ +import { ReactNode } from 'react' +export default function Root({ children }: { children: ReactNode }) { + return ( + + {children} + + ) +} diff --git a/test/e2e/app-dir/client-module-with-package-type/app/require-esm/page.tsx b/test/e2e/app-dir/client-module-with-package-type/app/require-esm/page.tsx new file mode 100644 index 00000000000000..71c366c46d6576 --- /dev/null +++ b/test/e2e/app-dir/client-module-with-package-type/app/require-esm/page.tsx @@ -0,0 +1,13 @@ +import * as React from 'react' + +const CjsFromEsm = require('lib-esm') + +export default function Page() { + return ( + <> +

+ lib-esm: +

+ + ) +} diff --git a/test/e2e/app-dir/client-module-with-package-type/index.test.ts b/test/e2e/app-dir/client-module-with-package-type/index.test.ts new file mode 100644 index 00000000000000..aa9b873e61e5c8 --- /dev/null +++ b/test/e2e/app-dir/client-module-with-package-type/index.test.ts @@ -0,0 +1,17 @@ +import { nextTestSetup } from 'e2e-utils' + +describe('esm-client-module-without-exports', () => { + const { next } = nextTestSetup({ + files: __dirname, + }) + + it('should render without errors: cjs', async () => { + const $ = await next.render$('/import-cjs') + expect($('p').text()).toContain('lib-cjs: esm') + }) + + it('should render without errors: esm', async () => { + const $ = await next.render$('/require-esm') + expect($('p').text()).toContain('lib-esm: cjs') + }) +}) diff --git a/test/e2e/app-dir/client-module-with-package-type/next.config.js b/test/e2e/app-dir/client-module-with-package-type/next.config.js new file mode 100644 index 00000000000000..807126e4cf0bf5 --- /dev/null +++ b/test/e2e/app-dir/client-module-with-package-type/next.config.js @@ -0,0 +1,6 @@ +/** + * @type {import('next').NextConfig} + */ +const nextConfig = {} + +module.exports = nextConfig diff --git a/test/e2e/app-dir/client-module-with-package-type/node_modules/lib-cjs/index.js b/test/e2e/app-dir/client-module-with-package-type/node_modules/lib-cjs/index.js new file mode 100644 index 00000000000000..271c41e8ce8333 --- /dev/null +++ b/test/e2e/app-dir/client-module-with-package-type/node_modules/lib-cjs/index.js @@ -0,0 +1,3 @@ +'use client' +console.log('lib-cjs :: cjs') +module.exports = () => 'cjs' diff --git a/test/e2e/app-dir/client-module-with-package-type/node_modules/lib-cjs/index.mjs b/test/e2e/app-dir/client-module-with-package-type/node_modules/lib-cjs/index.mjs new file mode 100644 index 00000000000000..8a112198a72efa --- /dev/null +++ b/test/e2e/app-dir/client-module-with-package-type/node_modules/lib-cjs/index.mjs @@ -0,0 +1,3 @@ +'use client' +console.log('lib-cjs :: esm') +export default () => 'esm' diff --git a/test/e2e/app-dir/client-module-with-package-type/node_modules/lib-cjs/package.json b/test/e2e/app-dir/client-module-with-package-type/node_modules/lib-cjs/package.json new file mode 100644 index 00000000000000..a8d5b97fc0b92c --- /dev/null +++ b/test/e2e/app-dir/client-module-with-package-type/node_modules/lib-cjs/package.json @@ -0,0 +1,10 @@ +{ + "name": "lib-cjs", + "type": "commonjs", + "exports": { + ".": { + "import": "./index.mjs", + "default": "./index.js" + } + } +} diff --git a/test/e2e/app-dir/client-module-with-package-type/node_modules/lib-esm/index.cjs b/test/e2e/app-dir/client-module-with-package-type/node_modules/lib-esm/index.cjs new file mode 100644 index 00000000000000..9973246dc0833d --- /dev/null +++ b/test/e2e/app-dir/client-module-with-package-type/node_modules/lib-esm/index.cjs @@ -0,0 +1,3 @@ +'use client' +console.log('lib-esm :: cjs') +module.exports = () => 'cjs' \ No newline at end of file diff --git a/test/e2e/app-dir/client-module-with-package-type/node_modules/lib-esm/index.js b/test/e2e/app-dir/client-module-with-package-type/node_modules/lib-esm/index.js new file mode 100644 index 00000000000000..2fc1856c0840ae --- /dev/null +++ b/test/e2e/app-dir/client-module-with-package-type/node_modules/lib-esm/index.js @@ -0,0 +1,3 @@ +'use client' +console.log('lib-esm :: esm') +export default () => 'esm' diff --git a/test/e2e/app-dir/client-module-with-package-type/node_modules/lib-esm/package.json b/test/e2e/app-dir/client-module-with-package-type/node_modules/lib-esm/package.json new file mode 100644 index 00000000000000..e432daa17225d0 --- /dev/null +++ b/test/e2e/app-dir/client-module-with-package-type/node_modules/lib-esm/package.json @@ -0,0 +1,10 @@ +{ + "name": "lib-esm", + "type": "module", + "exports": { + ".": { + "require": "./index.cjs", + "default": "./index.js" + } + } +}