diff --git a/compiler/packages/snap/src/fixture-utils.ts b/compiler/packages/snap/src/fixture-utils.ts index ebf6a34e1dbca..fae6afef1519b 100644 --- a/compiler/packages/snap/src/fixture-utils.ts +++ b/compiler/packages/snap/src/fixture-utils.ts @@ -44,21 +44,6 @@ function stripExtension(filename: string, extensions: Array): string { return filename; } -/** - * Strip all extensions from a filename - * e.g., "foo.expect.md" -> "foo" - */ -function stripAllExtensions(filename: string): string { - let result = filename; - while (true) { - const extension = path.extname(result); - if (extension === '') { - return result; - } - result = path.basename(result, extension); - } -} - export async function readTestFilter(): Promise { if (!(await exists(FILTER_PATH))) { throw new Error(`testfilter file not found at \`${FILTER_PATH}\``); @@ -134,13 +119,15 @@ async function readInputFixtures( // `alias-while` => search for `alias-while{.js,.jsx,.ts,.tsx}` // `alias-while.js` => search as-is // `alias-while.expect.md` => search for `alias-while{.js,.jsx,.ts,.tsx}` - const basename = path.basename(pattern); - const basenameWithoutExt = stripAllExtensions(basename); - const hasExtension = basename !== basenameWithoutExt; + const patternWithoutExt = stripExtension(pattern, [ + ...INPUT_EXTENSIONS, + SNAPSHOT_EXTENSION, + ]); + const hasExtension = pattern !== patternWithoutExt; const globPattern = hasExtension && !pattern.endsWith(SNAPSHOT_EXTENSION) ? pattern - : `${basenameWithoutExt}{${INPUT_EXTENSIONS.join(',')}}`; + : `${patternWithoutExt}{${INPUT_EXTENSIONS.join(',')}}`; return glob.glob(globPattern, { cwd: rootDir, }); @@ -181,7 +168,10 @@ async function readOutputFixtures( await Promise.all( filter.paths.map(pattern => { // Strip all extensions and find matching .expect.md files - const basenameWithoutExt = stripAllExtensions(pattern); + const basenameWithoutExt = stripExtension(pattern, [ + ...INPUT_EXTENSIONS, + SNAPSHOT_EXTENSION, + ]); return glob.glob(`${basenameWithoutExt}${SNAPSHOT_EXTENSION}`, { cwd: rootDir, });