From f226e3183394d21df3227dd683f2000d6ee08f46 Mon Sep 17 00:00:00 2001 From: Matheus Cardoso Date: Mon, 21 Oct 2024 14:45:00 -0300 Subject: [PATCH 1/4] fix(integration-karma): run transformation once when .only file present --- .../scripts/karma-configs/hydration/base.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/packages/@lwc/integration-karma/scripts/karma-configs/hydration/base.js b/packages/@lwc/integration-karma/scripts/karma-configs/hydration/base.js index e63030a645..fb0f60d025 100644 --- a/packages/@lwc/integration-karma/scripts/karma-configs/hydration/base.js +++ b/packages/@lwc/integration-karma/scripts/karma-configs/hydration/base.js @@ -9,6 +9,7 @@ const path = require('path'); +const { globSync } = require('fs'); const { ENABLE_SYNTHETIC_SHADOW_IN_HYDRATION } = require('../../shared/options'); const karmaPluginHydrationTests = require('../../karma-plugins/hydration-tests'); @@ -36,14 +37,27 @@ const ALL_FRAMEWORK_FILES = [SYNTHETIC_SHADOW, LWC_ENGINE]; process.setMaxListeners(1000); function getFiles() { - return [ + const files = [ ...(ENABLE_SYNTHETIC_SHADOW_IN_HYDRATION ? [createPattern(SYNTHETIC_SHADOW)] : []), createPattern(LWC_ENGINE), createPattern(TEST_SETUP), createPattern(TEST_UTILS), createPattern(TEST_HYDRATE), - createPattern('**/*.spec.js', { watched: false }), ]; + + // check if a .only file exists + const onlyFile = globSync('**/*/.only', { cwd: BASE_DIR, absolute: true }); + + if (onlyFile.length > 1) { + throw new Error(`More than one .only file found in ${BASE_DIR}`); + } else if (onlyFile.length === 1) { + const dir = path.dirname(onlyFile[0]); + files.push(createPattern(`${dir}/**/*.spec.js`)); + } else { + files.push(createPattern('**/*.spec.js')); + } + + return files; } /** From 59ebd2a83dbc51d081c51e0c955a899f21e5e68e Mon Sep 17 00:00:00 2001 From: Matheus Cardoso Date: Mon, 21 Oct 2024 15:00:45 -0300 Subject: [PATCH 2/4] fix: reintroduce watched=false flag --- .../integration-karma/scripts/karma-configs/hydration/base.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/@lwc/integration-karma/scripts/karma-configs/hydration/base.js b/packages/@lwc/integration-karma/scripts/karma-configs/hydration/base.js index fb0f60d025..a0b79633d8 100644 --- a/packages/@lwc/integration-karma/scripts/karma-configs/hydration/base.js +++ b/packages/@lwc/integration-karma/scripts/karma-configs/hydration/base.js @@ -52,9 +52,9 @@ function getFiles() { throw new Error(`More than one .only file found in ${BASE_DIR}`); } else if (onlyFile.length === 1) { const dir = path.dirname(onlyFile[0]); - files.push(createPattern(`${dir}/**/*.spec.js`)); + files.push(createPattern(`${dir}/**/*.spec.js`, { watched: false })); } else { - files.push(createPattern('**/*.spec.js')); + files.push(createPattern('**/*.spec.js', { watched: false })); } return files; From 000cf7884c8440495648d9bf88790179fbc66950 Mon Sep 17 00:00:00 2001 From: Matheus Cardoso Date: Mon, 21 Oct 2024 15:34:06 -0300 Subject: [PATCH 3/4] fix: allow multiple .only files in hydration tests --- .../scripts/karma-configs/hydration/base.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/@lwc/integration-karma/scripts/karma-configs/hydration/base.js b/packages/@lwc/integration-karma/scripts/karma-configs/hydration/base.js index a0b79633d8..0e14f03ab3 100644 --- a/packages/@lwc/integration-karma/scripts/karma-configs/hydration/base.js +++ b/packages/@lwc/integration-karma/scripts/karma-configs/hydration/base.js @@ -9,7 +9,7 @@ const path = require('path'); -const { globSync } = require('fs'); +const { globSync } = require('node:fs'); const { ENABLE_SYNTHETIC_SHADOW_IN_HYDRATION } = require('../../shared/options'); const karmaPluginHydrationTests = require('../../karma-plugins/hydration-tests'); @@ -48,11 +48,11 @@ function getFiles() { // check if a .only file exists const onlyFile = globSync('**/*/.only', { cwd: BASE_DIR, absolute: true }); - if (onlyFile.length > 1) { - throw new Error(`More than one .only file found in ${BASE_DIR}`); - } else if (onlyFile.length === 1) { - const dir = path.dirname(onlyFile[0]); - files.push(createPattern(`${dir}/**/*.spec.js`, { watched: false })); + if (onlyFile.length > 0) { + for (const file of onlyFile) { + const dir = path.dirname(file); + files.push(createPattern(`${dir}/**/*.spec.js`, { watched: false })); + } } else { files.push(createPattern('**/*.spec.js', { watched: false })); } From 706e0d9ab259ed3dcedc506405041ec6e270cef2 Mon Sep 17 00:00:00 2001 From: Matheus Cardoso Date: Mon, 21 Oct 2024 15:36:10 -0300 Subject: [PATCH 4/4] fix: use node namespace for path require --- .../integration-karma/scripts/karma-configs/hydration/base.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@lwc/integration-karma/scripts/karma-configs/hydration/base.js b/packages/@lwc/integration-karma/scripts/karma-configs/hydration/base.js index 0e14f03ab3..324d44cdce 100644 --- a/packages/@lwc/integration-karma/scripts/karma-configs/hydration/base.js +++ b/packages/@lwc/integration-karma/scripts/karma-configs/hydration/base.js @@ -7,7 +7,7 @@ 'use strict'; -const path = require('path'); +const path = require('node:path'); const { globSync } = require('node:fs'); const { ENABLE_SYNTHETIC_SHADOW_IN_HYDRATION } = require('../../shared/options');