From 40c5f414b098fcbc40f224028159f89e91035cde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Tue, 16 Nov 2021 14:59:31 +0100 Subject: [PATCH] chore(test): add tests for mixing custom `exportConditions` with `browser: true` --- ...nly-worker-condition-with-browser-field.js | 3 +++ ...rts-worker-condition-with-browser-field.js | 3 +++ .../browser-field-entry.js | 1 + .../package.json | 7 ++++++ .../webworker-condition-entry.js | 1 + .../browser-condition-entry.js | 1 + .../browser-field-entry.js | 1 + .../package.json | 8 +++++++ .../webworker-condition-entry.js | 1 + .../node-resolve/test/package-entry-points.js | 22 +++++++++++++++++++ 10 files changed, 48 insertions(+) create mode 100644 packages/node-resolve/test/fixtures/exports-only-worker-condition-with-browser-field.js create mode 100644 packages/node-resolve/test/fixtures/exports-worker-condition-with-browser-field.js create mode 100644 packages/node-resolve/test/fixtures/node_modules/exports-only-worker-condition-with-browser-field/browser-field-entry.js create mode 100644 packages/node-resolve/test/fixtures/node_modules/exports-only-worker-condition-with-browser-field/package.json create mode 100644 packages/node-resolve/test/fixtures/node_modules/exports-only-worker-condition-with-browser-field/webworker-condition-entry.js create mode 100644 packages/node-resolve/test/fixtures/node_modules/exports-worker-condition-with-browser-field/browser-condition-entry.js create mode 100644 packages/node-resolve/test/fixtures/node_modules/exports-worker-condition-with-browser-field/browser-field-entry.js create mode 100644 packages/node-resolve/test/fixtures/node_modules/exports-worker-condition-with-browser-field/package.json create mode 100644 packages/node-resolve/test/fixtures/node_modules/exports-worker-condition-with-browser-field/webworker-condition-entry.js diff --git a/packages/node-resolve/test/fixtures/exports-only-worker-condition-with-browser-field.js b/packages/node-resolve/test/fixtures/exports-only-worker-condition-with-browser-field.js new file mode 100644 index 000000000..5bc278072 --- /dev/null +++ b/packages/node-resolve/test/fixtures/exports-only-worker-condition-with-browser-field.js @@ -0,0 +1,3 @@ +import sample from 'exports-only-worker-condition-with-browser-field'; + +export default sample; diff --git a/packages/node-resolve/test/fixtures/exports-worker-condition-with-browser-field.js b/packages/node-resolve/test/fixtures/exports-worker-condition-with-browser-field.js new file mode 100644 index 000000000..8d29210a8 --- /dev/null +++ b/packages/node-resolve/test/fixtures/exports-worker-condition-with-browser-field.js @@ -0,0 +1,3 @@ +import sample from 'exports-worker-condition-with-browser-field'; + +export default sample; diff --git a/packages/node-resolve/test/fixtures/node_modules/exports-only-worker-condition-with-browser-field/browser-field-entry.js b/packages/node-resolve/test/fixtures/node_modules/exports-only-worker-condition-with-browser-field/browser-field-entry.js new file mode 100644 index 000000000..4479779b2 --- /dev/null +++ b/packages/node-resolve/test/fixtures/node_modules/exports-only-worker-condition-with-browser-field/browser-field-entry.js @@ -0,0 +1 @@ +export default "FROM BROWSER FIELD"; diff --git a/packages/node-resolve/test/fixtures/node_modules/exports-only-worker-condition-with-browser-field/package.json b/packages/node-resolve/test/fixtures/node_modules/exports-only-worker-condition-with-browser-field/package.json new file mode 100644 index 000000000..b069a4b92 --- /dev/null +++ b/packages/node-resolve/test/fixtures/node_modules/exports-only-worker-condition-with-browser-field/package.json @@ -0,0 +1,7 @@ +{ + "name": "exports-only-worker-condition-with-browser-field", + "exports": { + "webworker": "./webworker-condition-entry.js" + }, + "browser": "./browser-field-entry.js" +} diff --git a/packages/node-resolve/test/fixtures/node_modules/exports-only-worker-condition-with-browser-field/webworker-condition-entry.js b/packages/node-resolve/test/fixtures/node_modules/exports-only-worker-condition-with-browser-field/webworker-condition-entry.js new file mode 100644 index 000000000..0ce422bfb --- /dev/null +++ b/packages/node-resolve/test/fixtures/node_modules/exports-only-worker-condition-with-browser-field/webworker-condition-entry.js @@ -0,0 +1 @@ +export default "FROM WEBWORKER CONDITION"; diff --git a/packages/node-resolve/test/fixtures/node_modules/exports-worker-condition-with-browser-field/browser-condition-entry.js b/packages/node-resolve/test/fixtures/node_modules/exports-worker-condition-with-browser-field/browser-condition-entry.js new file mode 100644 index 000000000..0e9b5fc03 --- /dev/null +++ b/packages/node-resolve/test/fixtures/node_modules/exports-worker-condition-with-browser-field/browser-condition-entry.js @@ -0,0 +1 @@ +export default "FROM BROWSER CONDITION"; diff --git a/packages/node-resolve/test/fixtures/node_modules/exports-worker-condition-with-browser-field/browser-field-entry.js b/packages/node-resolve/test/fixtures/node_modules/exports-worker-condition-with-browser-field/browser-field-entry.js new file mode 100644 index 000000000..4479779b2 --- /dev/null +++ b/packages/node-resolve/test/fixtures/node_modules/exports-worker-condition-with-browser-field/browser-field-entry.js @@ -0,0 +1 @@ +export default "FROM BROWSER FIELD"; diff --git a/packages/node-resolve/test/fixtures/node_modules/exports-worker-condition-with-browser-field/package.json b/packages/node-resolve/test/fixtures/node_modules/exports-worker-condition-with-browser-field/package.json new file mode 100644 index 000000000..238050a78 --- /dev/null +++ b/packages/node-resolve/test/fixtures/node_modules/exports-worker-condition-with-browser-field/package.json @@ -0,0 +1,8 @@ +{ + "name": "exports-worker-condition-with-browser-field", + "exports": { + "webworker": "./webworker-condition-entry.js", + "browser": "./browser-condition-entry.js" + }, + "browser": "./browser-field-entry.js" +} diff --git a/packages/node-resolve/test/fixtures/node_modules/exports-worker-condition-with-browser-field/webworker-condition-entry.js b/packages/node-resolve/test/fixtures/node_modules/exports-worker-condition-with-browser-field/webworker-condition-entry.js new file mode 100644 index 000000000..0ce422bfb --- /dev/null +++ b/packages/node-resolve/test/fixtures/node_modules/exports-worker-condition-with-browser-field/webworker-condition-entry.js @@ -0,0 +1 @@ +export default "FROM WEBWORKER CONDITION"; diff --git a/packages/node-resolve/test/package-entry-points.js b/packages/node-resolve/test/package-entry-points.js index 46c5a9e2a..688ca4ab8 100644 --- a/packages/node-resolve/test/package-entry-points.js +++ b/packages/node-resolve/test/package-entry-points.js @@ -380,3 +380,25 @@ test('does not warn when resolving typescript imports with fallback', async (t) a: 'A' }); }); + +test('custom condition takes precedence over browser field and condition with `browser: true`', async (t) => { + const bundle = await rollup({ + input: 'exports-worker-condition-with-browser-field.js', + plugins: [nodeResolve({ exportConditions: ['browser', 'webworker'], browser: true })] + }); + const { module } = await testBundle(t, bundle); + + t.deepEqual(module.exports, 'FROM WEBWORKER CONDITION'); +}); + +test('custom condition takes precedence over browser field with `browser: true`', async (t) => { + const bundle = await rollup({ + input: 'exports-only-worker-condition-with-browser-field.js', + plugins: [nodeResolve({ exportConditions: ['browser', 'webworker'], browser: true })] + }); + const { module } = await testBundle(t, bundle); + + console.log({ module }); + + t.deepEqual(module.exports, 'FROM WEBWORKER CONDITION'); +});