n8n/.github/scripts/check-tests.mjs

105 lines
3.2 KiB
JavaScript
Raw Normal View History

build: Check test files (#6455) * build: Check test files * build: update test file checker glob pattern * build: ignore changed files in test folders * build: fix gh workflow * build: update gh events in workflow * build: fix gh workflow * build: fix gh workflow action script path * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: update gh actions * build: update gh actions * build: test change file without test * Revert "build: test change file without test" This reverts commit 73f5c544c5f4218da48cea13bfb9008a9a51cbd9. * build: test change file that already has test * build: fix action script * Revert "build: test change file that already has test" This reverts commit 21be611abfdbce67fd7243a16d987bb21927de22. * build: update script * build: test checking with test file change * Revert "build: test checking with test file change" This reverts commit 995b64f6bab825fc16bed52c04baa7fcc15baa55. * build: change file with no testable content * build: use typescript to traverse a file * Revert "build: change file with no testable content" This reverts commit 05974b67c7ac455fdd1f09b1141268a98085db89. * build: change file with no testable content * Revert "build: change file with no testable content" This reverts commit 187cc57291fc2e9756e6b5f7f1b3b7009df4f8c2. * build: change file with testable content * Revert "build: change file with testable content" This reverts commit ce716119b751041a18f4b0f1312de488dab780cf. * build: add vue file without test * Revert "build: add vue file without test" This reverts commit 756f28a373502a8cac44d0e5c0d1400f972423a9. * build: add vue file with test * Revert "build: add vue file with test" This reverts commit 8022b112fc5a15f564dddc08d7e11d2e8133bcac. * build: gather all missing tests at once * build: allow job to fail * build: update error message
2023-06-20 04:35:04 -07:00
import fs from 'fs';
import path from 'path';
import util from 'util';
import { exec } from 'child_process';
import { glob } from 'glob';
build: Check test files (#6455) * build: Check test files * build: update test file checker glob pattern * build: ignore changed files in test folders * build: fix gh workflow * build: update gh events in workflow * build: fix gh workflow * build: fix gh workflow action script path * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: update gh actions * build: update gh actions * build: test change file without test * Revert "build: test change file without test" This reverts commit 73f5c544c5f4218da48cea13bfb9008a9a51cbd9. * build: test change file that already has test * build: fix action script * Revert "build: test change file that already has test" This reverts commit 21be611abfdbce67fd7243a16d987bb21927de22. * build: update script * build: test checking with test file change * Revert "build: test checking with test file change" This reverts commit 995b64f6bab825fc16bed52c04baa7fcc15baa55. * build: change file with no testable content * build: use typescript to traverse a file * Revert "build: change file with no testable content" This reverts commit 05974b67c7ac455fdd1f09b1141268a98085db89. * build: change file with no testable content * Revert "build: change file with no testable content" This reverts commit 187cc57291fc2e9756e6b5f7f1b3b7009df4f8c2. * build: change file with testable content * Revert "build: change file with testable content" This reverts commit ce716119b751041a18f4b0f1312de488dab780cf. * build: add vue file without test * Revert "build: add vue file without test" This reverts commit 756f28a373502a8cac44d0e5c0d1400f972423a9. * build: add vue file with test * Revert "build: add vue file with test" This reverts commit 8022b112fc5a15f564dddc08d7e11d2e8133bcac. * build: gather all missing tests at once * build: allow job to fail * build: update error message
2023-06-20 04:35:04 -07:00
import ts from 'typescript';
const readFileAsync = util.promisify(fs.readFile);
const execAsync = util.promisify(exec);
const filterAsync = async (asyncPredicate, arr) => {
const filterResults = await Promise.all(
arr.map(async (item) => ({
item,
shouldKeep: await asyncPredicate(item),
})),
);
build: Check test files (#6455) * build: Check test files * build: update test file checker glob pattern * build: ignore changed files in test folders * build: fix gh workflow * build: update gh events in workflow * build: fix gh workflow * build: fix gh workflow action script path * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: update gh actions * build: update gh actions * build: test change file without test * Revert "build: test change file without test" This reverts commit 73f5c544c5f4218da48cea13bfb9008a9a51cbd9. * build: test change file that already has test * build: fix action script * Revert "build: test change file that already has test" This reverts commit 21be611abfdbce67fd7243a16d987bb21927de22. * build: update script * build: test checking with test file change * Revert "build: test checking with test file change" This reverts commit 995b64f6bab825fc16bed52c04baa7fcc15baa55. * build: change file with no testable content * build: use typescript to traverse a file * Revert "build: change file with no testable content" This reverts commit 05974b67c7ac455fdd1f09b1141268a98085db89. * build: change file with no testable content * Revert "build: change file with no testable content" This reverts commit 187cc57291fc2e9756e6b5f7f1b3b7009df4f8c2. * build: change file with testable content * Revert "build: change file with testable content" This reverts commit ce716119b751041a18f4b0f1312de488dab780cf. * build: add vue file without test * Revert "build: add vue file without test" This reverts commit 756f28a373502a8cac44d0e5c0d1400f972423a9. * build: add vue file with test * Revert "build: add vue file with test" This reverts commit 8022b112fc5a15f564dddc08d7e11d2e8133bcac. * build: gather all missing tests at once * build: allow job to fail * build: update error message
2023-06-20 04:35:04 -07:00
return filterResults.filter(({ shouldKeep }) => shouldKeep).map(({ item }) => item);
};
build: Check test files (#6455) * build: Check test files * build: update test file checker glob pattern * build: ignore changed files in test folders * build: fix gh workflow * build: update gh events in workflow * build: fix gh workflow * build: fix gh workflow action script path * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: update gh actions * build: update gh actions * build: test change file without test * Revert "build: test change file without test" This reverts commit 73f5c544c5f4218da48cea13bfb9008a9a51cbd9. * build: test change file that already has test * build: fix action script * Revert "build: test change file that already has test" This reverts commit 21be611abfdbce67fd7243a16d987bb21927de22. * build: update script * build: test checking with test file change * Revert "build: test checking with test file change" This reverts commit 995b64f6bab825fc16bed52c04baa7fcc15baa55. * build: change file with no testable content * build: use typescript to traverse a file * Revert "build: change file with no testable content" This reverts commit 05974b67c7ac455fdd1f09b1141268a98085db89. * build: change file with no testable content * Revert "build: change file with no testable content" This reverts commit 187cc57291fc2e9756e6b5f7f1b3b7009df4f8c2. * build: change file with testable content * Revert "build: change file with testable content" This reverts commit ce716119b751041a18f4b0f1312de488dab780cf. * build: add vue file without test * Revert "build: add vue file without test" This reverts commit 756f28a373502a8cac44d0e5c0d1400f972423a9. * build: add vue file with test * Revert "build: add vue file with test" This reverts commit 8022b112fc5a15f564dddc08d7e11d2e8133bcac. * build: gather all missing tests at once * build: allow job to fail * build: update error message
2023-06-20 04:35:04 -07:00
const isAbstractClass = (node) => {
if (ts.isClassDeclaration(node)) {
return (
node.modifiers?.some((modifier) => modifier.kind === ts.SyntaxKind.AbstractKeyword) || false
);
}
return false;
};
const isAbstractMethod = (node) => {
return (
ts.isMethodDeclaration(node) &&
Boolean(node.modifiers?.find((modifier) => modifier.kind === ts.SyntaxKind.AbstractKeyword))
);
};
build: Check test files (#6455) * build: Check test files * build: update test file checker glob pattern * build: ignore changed files in test folders * build: fix gh workflow * build: update gh events in workflow * build: fix gh workflow * build: fix gh workflow action script path * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: update gh actions * build: update gh actions * build: test change file without test * Revert "build: test change file without test" This reverts commit 73f5c544c5f4218da48cea13bfb9008a9a51cbd9. * build: test change file that already has test * build: fix action script * Revert "build: test change file that already has test" This reverts commit 21be611abfdbce67fd7243a16d987bb21927de22. * build: update script * build: test checking with test file change * Revert "build: test checking with test file change" This reverts commit 995b64f6bab825fc16bed52c04baa7fcc15baa55. * build: change file with no testable content * build: use typescript to traverse a file * Revert "build: change file with no testable content" This reverts commit 05974b67c7ac455fdd1f09b1141268a98085db89. * build: change file with no testable content * Revert "build: change file with no testable content" This reverts commit 187cc57291fc2e9756e6b5f7f1b3b7009df4f8c2. * build: change file with testable content * Revert "build: change file with testable content" This reverts commit ce716119b751041a18f4b0f1312de488dab780cf. * build: add vue file without test * Revert "build: add vue file without test" This reverts commit 756f28a373502a8cac44d0e5c0d1400f972423a9. * build: add vue file with test * Revert "build: add vue file with test" This reverts commit 8022b112fc5a15f564dddc08d7e11d2e8133bcac. * build: gather all missing tests at once * build: allow job to fail * build: update error message
2023-06-20 04:35:04 -07:00
// Function to check if a file has a function declaration, function expression, object method or class
const hasFunctionOrClass = async (filePath) => {
build: Check test files (#6455) * build: Check test files * build: update test file checker glob pattern * build: ignore changed files in test folders * build: fix gh workflow * build: update gh events in workflow * build: fix gh workflow * build: fix gh workflow action script path * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: update gh actions * build: update gh actions * build: test change file without test * Revert "build: test change file without test" This reverts commit 73f5c544c5f4218da48cea13bfb9008a9a51cbd9. * build: test change file that already has test * build: fix action script * Revert "build: test change file that already has test" This reverts commit 21be611abfdbce67fd7243a16d987bb21927de22. * build: update script * build: test checking with test file change * Revert "build: test checking with test file change" This reverts commit 995b64f6bab825fc16bed52c04baa7fcc15baa55. * build: change file with no testable content * build: use typescript to traverse a file * Revert "build: change file with no testable content" This reverts commit 05974b67c7ac455fdd1f09b1141268a98085db89. * build: change file with no testable content * Revert "build: change file with no testable content" This reverts commit 187cc57291fc2e9756e6b5f7f1b3b7009df4f8c2. * build: change file with testable content * Revert "build: change file with testable content" This reverts commit ce716119b751041a18f4b0f1312de488dab780cf. * build: add vue file without test * Revert "build: add vue file without test" This reverts commit 756f28a373502a8cac44d0e5c0d1400f972423a9. * build: add vue file with test * Revert "build: add vue file with test" This reverts commit 8022b112fc5a15f564dddc08d7e11d2e8133bcac. * build: gather all missing tests at once * build: allow job to fail * build: update error message
2023-06-20 04:35:04 -07:00
const fileContent = await readFileAsync(filePath, 'utf-8');
const sourceFile = ts.createSourceFile(filePath, fileContent, ts.ScriptTarget.Latest, true);
let hasFunctionOrClass = false;
const visit = (node) => {
if (
ts.isFunctionDeclaration(node) ||
ts.isFunctionExpression(node) ||
ts.isArrowFunction(node) ||
(ts.isMethodDeclaration(node) && !isAbstractMethod(node)) ||
(ts.isClassDeclaration(node) && !isAbstractClass(node))
) {
build: Check test files (#6455) * build: Check test files * build: update test file checker glob pattern * build: ignore changed files in test folders * build: fix gh workflow * build: update gh events in workflow * build: fix gh workflow * build: fix gh workflow action script path * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: update gh actions * build: update gh actions * build: test change file without test * Revert "build: test change file without test" This reverts commit 73f5c544c5f4218da48cea13bfb9008a9a51cbd9. * build: test change file that already has test * build: fix action script * Revert "build: test change file that already has test" This reverts commit 21be611abfdbce67fd7243a16d987bb21927de22. * build: update script * build: test checking with test file change * Revert "build: test checking with test file change" This reverts commit 995b64f6bab825fc16bed52c04baa7fcc15baa55. * build: change file with no testable content * build: use typescript to traverse a file * Revert "build: change file with no testable content" This reverts commit 05974b67c7ac455fdd1f09b1141268a98085db89. * build: change file with no testable content * Revert "build: change file with no testable content" This reverts commit 187cc57291fc2e9756e6b5f7f1b3b7009df4f8c2. * build: change file with testable content * Revert "build: change file with testable content" This reverts commit ce716119b751041a18f4b0f1312de488dab780cf. * build: add vue file without test * Revert "build: add vue file without test" This reverts commit 756f28a373502a8cac44d0e5c0d1400f972423a9. * build: add vue file with test * Revert "build: add vue file with test" This reverts commit 8022b112fc5a15f564dddc08d7e11d2e8133bcac. * build: gather all missing tests at once * build: allow job to fail * build: update error message
2023-06-20 04:35:04 -07:00
hasFunctionOrClass = true;
}
node.forEachChild(visit);
};
build: Check test files (#6455) * build: Check test files * build: update test file checker glob pattern * build: ignore changed files in test folders * build: fix gh workflow * build: update gh events in workflow * build: fix gh workflow * build: fix gh workflow action script path * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: update gh actions * build: update gh actions * build: test change file without test * Revert "build: test change file without test" This reverts commit 73f5c544c5f4218da48cea13bfb9008a9a51cbd9. * build: test change file that already has test * build: fix action script * Revert "build: test change file that already has test" This reverts commit 21be611abfdbce67fd7243a16d987bb21927de22. * build: update script * build: test checking with test file change * Revert "build: test checking with test file change" This reverts commit 995b64f6bab825fc16bed52c04baa7fcc15baa55. * build: change file with no testable content * build: use typescript to traverse a file * Revert "build: change file with no testable content" This reverts commit 05974b67c7ac455fdd1f09b1141268a98085db89. * build: change file with no testable content * Revert "build: change file with no testable content" This reverts commit 187cc57291fc2e9756e6b5f7f1b3b7009df4f8c2. * build: change file with testable content * Revert "build: change file with testable content" This reverts commit ce716119b751041a18f4b0f1312de488dab780cf. * build: add vue file without test * Revert "build: add vue file without test" This reverts commit 756f28a373502a8cac44d0e5c0d1400f972423a9. * build: add vue file with test * Revert "build: add vue file with test" This reverts commit 8022b112fc5a15f564dddc08d7e11d2e8133bcac. * build: gather all missing tests at once * build: allow job to fail * build: update error message
2023-06-20 04:35:04 -07:00
visit(sourceFile);
return hasFunctionOrClass;
};
build: Check test files (#6455) * build: Check test files * build: update test file checker glob pattern * build: ignore changed files in test folders * build: fix gh workflow * build: update gh events in workflow * build: fix gh workflow * build: fix gh workflow action script path * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: update gh actions * build: update gh actions * build: test change file without test * Revert "build: test change file without test" This reverts commit 73f5c544c5f4218da48cea13bfb9008a9a51cbd9. * build: test change file that already has test * build: fix action script * Revert "build: test change file that already has test" This reverts commit 21be611abfdbce67fd7243a16d987bb21927de22. * build: update script * build: test checking with test file change * Revert "build: test checking with test file change" This reverts commit 995b64f6bab825fc16bed52c04baa7fcc15baa55. * build: change file with no testable content * build: use typescript to traverse a file * Revert "build: change file with no testable content" This reverts commit 05974b67c7ac455fdd1f09b1141268a98085db89. * build: change file with no testable content * Revert "build: change file with no testable content" This reverts commit 187cc57291fc2e9756e6b5f7f1b3b7009df4f8c2. * build: change file with testable content * Revert "build: change file with testable content" This reverts commit ce716119b751041a18f4b0f1312de488dab780cf. * build: add vue file without test * Revert "build: add vue file without test" This reverts commit 756f28a373502a8cac44d0e5c0d1400f972423a9. * build: add vue file with test * Revert "build: add vue file with test" This reverts commit 8022b112fc5a15f564dddc08d7e11d2e8133bcac. * build: gather all missing tests at once * build: allow job to fail * build: update error message
2023-06-20 04:35:04 -07:00
const main = async () => {
// Run a git command to get a list of all changed files in the branch (branch has to be up to date with master)
const changedFiles = await execAsync(
'git diff --name-only --diff-filter=d origin/master..HEAD',
).then(({ stdout }) => stdout.trim().split('\n').filter(Boolean));
build: Check test files (#6455) * build: Check test files * build: update test file checker glob pattern * build: ignore changed files in test folders * build: fix gh workflow * build: update gh events in workflow * build: fix gh workflow * build: fix gh workflow action script path * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: update gh actions * build: update gh actions * build: test change file without test * Revert "build: test change file without test" This reverts commit 73f5c544c5f4218da48cea13bfb9008a9a51cbd9. * build: test change file that already has test * build: fix action script * Revert "build: test change file that already has test" This reverts commit 21be611abfdbce67fd7243a16d987bb21927de22. * build: update script * build: test checking with test file change * Revert "build: test checking with test file change" This reverts commit 995b64f6bab825fc16bed52c04baa7fcc15baa55. * build: change file with no testable content * build: use typescript to traverse a file * Revert "build: change file with no testable content" This reverts commit 05974b67c7ac455fdd1f09b1141268a98085db89. * build: change file with no testable content * Revert "build: change file with no testable content" This reverts commit 187cc57291fc2e9756e6b5f7f1b3b7009df4f8c2. * build: change file with testable content * Revert "build: change file with testable content" This reverts commit ce716119b751041a18f4b0f1312de488dab780cf. * build: add vue file without test * Revert "build: add vue file without test" This reverts commit 756f28a373502a8cac44d0e5c0d1400f972423a9. * build: add vue file with test * Revert "build: add vue file with test" This reverts commit 8022b112fc5a15f564dddc08d7e11d2e8133bcac. * build: gather all missing tests at once * build: allow job to fail * build: update error message
2023-06-20 04:35:04 -07:00
// Get all .spec.ts and .test.ts files from the packages
const specAndTestTsFiles = await glob('packages/*/**/{test,__tests__}/**/*.{spec,test}.ts');
const specAndTestTsFilesNames = specAndTestTsFiles.map((file) =>
path.parse(file).name.replace(/\.(test|spec)/, ''),
);
build: Check test files (#6455) * build: Check test files * build: update test file checker glob pattern * build: ignore changed files in test folders * build: fix gh workflow * build: update gh events in workflow * build: fix gh workflow * build: fix gh workflow action script path * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: update gh actions * build: update gh actions * build: test change file without test * Revert "build: test change file without test" This reverts commit 73f5c544c5f4218da48cea13bfb9008a9a51cbd9. * build: test change file that already has test * build: fix action script * Revert "build: test change file that already has test" This reverts commit 21be611abfdbce67fd7243a16d987bb21927de22. * build: update script * build: test checking with test file change * Revert "build: test checking with test file change" This reverts commit 995b64f6bab825fc16bed52c04baa7fcc15baa55. * build: change file with no testable content * build: use typescript to traverse a file * Revert "build: change file with no testable content" This reverts commit 05974b67c7ac455fdd1f09b1141268a98085db89. * build: change file with no testable content * Revert "build: change file with no testable content" This reverts commit 187cc57291fc2e9756e6b5f7f1b3b7009df4f8c2. * build: change file with testable content * Revert "build: change file with testable content" This reverts commit ce716119b751041a18f4b0f1312de488dab780cf. * build: add vue file without test * Revert "build: add vue file without test" This reverts commit 756f28a373502a8cac44d0e5c0d1400f972423a9. * build: add vue file with test * Revert "build: add vue file with test" This reverts commit 8022b112fc5a15f564dddc08d7e11d2e8133bcac. * build: gather all missing tests at once * build: allow job to fail * build: update error message
2023-06-20 04:35:04 -07:00
// Filter out the .ts and .vue files from the changed files
const changedVueFiles = changedFiles.filter((file) => file.endsWith('.vue'));
build: Check test files (#6455) * build: Check test files * build: update test file checker glob pattern * build: ignore changed files in test folders * build: fix gh workflow * build: update gh events in workflow * build: fix gh workflow * build: fix gh workflow action script path * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: update gh actions * build: update gh actions * build: test change file without test * Revert "build: test change file without test" This reverts commit 73f5c544c5f4218da48cea13bfb9008a9a51cbd9. * build: test change file that already has test * build: fix action script * Revert "build: test change file that already has test" This reverts commit 21be611abfdbce67fd7243a16d987bb21927de22. * build: update script * build: test checking with test file change * Revert "build: test checking with test file change" This reverts commit 995b64f6bab825fc16bed52c04baa7fcc15baa55. * build: change file with no testable content * build: use typescript to traverse a file * Revert "build: change file with no testable content" This reverts commit 05974b67c7ac455fdd1f09b1141268a98085db89. * build: change file with no testable content * Revert "build: change file with no testable content" This reverts commit 187cc57291fc2e9756e6b5f7f1b3b7009df4f8c2. * build: change file with testable content * Revert "build: change file with testable content" This reverts commit ce716119b751041a18f4b0f1312de488dab780cf. * build: add vue file without test * Revert "build: add vue file without test" This reverts commit 756f28a373502a8cac44d0e5c0d1400f972423a9. * build: add vue file with test * Revert "build: add vue file with test" This reverts commit 8022b112fc5a15f564dddc08d7e11d2e8133bcac. * build: gather all missing tests at once * build: allow job to fail * build: update error message
2023-06-20 04:35:04 -07:00
// .ts files with any kind of function declaration or class and not in any of the test folders
const changedTsFilesWithFunction = await filterAsync(
async (filePath) =>
build: Check test files (#6455) * build: Check test files * build: update test file checker glob pattern * build: ignore changed files in test folders * build: fix gh workflow * build: update gh events in workflow * build: fix gh workflow * build: fix gh workflow action script path * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: update gh actions * build: update gh actions * build: test change file without test * Revert "build: test change file without test" This reverts commit 73f5c544c5f4218da48cea13bfb9008a9a51cbd9. * build: test change file that already has test * build: fix action script * Revert "build: test change file that already has test" This reverts commit 21be611abfdbce67fd7243a16d987bb21927de22. * build: update script * build: test checking with test file change * Revert "build: test checking with test file change" This reverts commit 995b64f6bab825fc16bed52c04baa7fcc15baa55. * build: change file with no testable content * build: use typescript to traverse a file * Revert "build: change file with no testable content" This reverts commit 05974b67c7ac455fdd1f09b1141268a98085db89. * build: change file with no testable content * Revert "build: change file with no testable content" This reverts commit 187cc57291fc2e9756e6b5f7f1b3b7009df4f8c2. * build: change file with testable content * Revert "build: change file with testable content" This reverts commit ce716119b751041a18f4b0f1312de488dab780cf. * build: add vue file without test * Revert "build: add vue file without test" This reverts commit 756f28a373502a8cac44d0e5c0d1400f972423a9. * build: add vue file with test * Revert "build: add vue file with test" This reverts commit 8022b112fc5a15f564dddc08d7e11d2e8133bcac. * build: gather all missing tests at once * build: allow job to fail * build: update error message
2023-06-20 04:35:04 -07:00
filePath.endsWith('.ts') &&
!(await glob('packages/*/**/{test,__tests__}/*.ts')).includes(filePath) &&
(await hasFunctionOrClass(filePath)),
changedFiles,
build: Check test files (#6455) * build: Check test files * build: update test file checker glob pattern * build: ignore changed files in test folders * build: fix gh workflow * build: update gh events in workflow * build: fix gh workflow * build: fix gh workflow action script path * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: update gh actions * build: update gh actions * build: test change file without test * Revert "build: test change file without test" This reverts commit 73f5c544c5f4218da48cea13bfb9008a9a51cbd9. * build: test change file that already has test * build: fix action script * Revert "build: test change file that already has test" This reverts commit 21be611abfdbce67fd7243a16d987bb21927de22. * build: update script * build: test checking with test file change * Revert "build: test checking with test file change" This reverts commit 995b64f6bab825fc16bed52c04baa7fcc15baa55. * build: change file with no testable content * build: use typescript to traverse a file * Revert "build: change file with no testable content" This reverts commit 05974b67c7ac455fdd1f09b1141268a98085db89. * build: change file with no testable content * Revert "build: change file with no testable content" This reverts commit 187cc57291fc2e9756e6b5f7f1b3b7009df4f8c2. * build: change file with testable content * Revert "build: change file with testable content" This reverts commit ce716119b751041a18f4b0f1312de488dab780cf. * build: add vue file without test * Revert "build: add vue file without test" This reverts commit 756f28a373502a8cac44d0e5c0d1400f972423a9. * build: add vue file with test * Revert "build: add vue file with test" This reverts commit 8022b112fc5a15f564dddc08d7e11d2e8133bcac. * build: gather all missing tests at once * build: allow job to fail * build: update error message
2023-06-20 04:35:04 -07:00
);
// For each .ts or .vue file, check if there's a corresponding .test.ts or .spec.ts file in the repository
const missingTests = changedVueFiles
.concat(changedTsFilesWithFunction)
.reduce((filesList, nextFile) => {
const fileName = path.parse(nextFile).name;
build: Check test files (#6455) * build: Check test files * build: update test file checker glob pattern * build: ignore changed files in test folders * build: fix gh workflow * build: update gh events in workflow * build: fix gh workflow * build: fix gh workflow action script path * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: update gh actions * build: update gh actions * build: test change file without test * Revert "build: test change file without test" This reverts commit 73f5c544c5f4218da48cea13bfb9008a9a51cbd9. * build: test change file that already has test * build: fix action script * Revert "build: test change file that already has test" This reverts commit 21be611abfdbce67fd7243a16d987bb21927de22. * build: update script * build: test checking with test file change * Revert "build: test checking with test file change" This reverts commit 995b64f6bab825fc16bed52c04baa7fcc15baa55. * build: change file with no testable content * build: use typescript to traverse a file * Revert "build: change file with no testable content" This reverts commit 05974b67c7ac455fdd1f09b1141268a98085db89. * build: change file with no testable content * Revert "build: change file with no testable content" This reverts commit 187cc57291fc2e9756e6b5f7f1b3b7009df4f8c2. * build: change file with testable content * Revert "build: change file with testable content" This reverts commit ce716119b751041a18f4b0f1312de488dab780cf. * build: add vue file without test * Revert "build: add vue file without test" This reverts commit 756f28a373502a8cac44d0e5c0d1400f972423a9. * build: add vue file with test * Revert "build: add vue file with test" This reverts commit 8022b112fc5a15f564dddc08d7e11d2e8133bcac. * build: gather all missing tests at once * build: allow job to fail * build: update error message
2023-06-20 04:35:04 -07:00
if (!specAndTestTsFilesNames.includes(fileName)) {
filesList.push(nextFile);
}
build: Check test files (#6455) * build: Check test files * build: update test file checker glob pattern * build: ignore changed files in test folders * build: fix gh workflow * build: update gh events in workflow * build: fix gh workflow * build: fix gh workflow action script path * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: update gh actions * build: update gh actions * build: test change file without test * Revert "build: test change file without test" This reverts commit 73f5c544c5f4218da48cea13bfb9008a9a51cbd9. * build: test change file that already has test * build: fix action script * Revert "build: test change file that already has test" This reverts commit 21be611abfdbce67fd7243a16d987bb21927de22. * build: update script * build: test checking with test file change * Revert "build: test checking with test file change" This reverts commit 995b64f6bab825fc16bed52c04baa7fcc15baa55. * build: change file with no testable content * build: use typescript to traverse a file * Revert "build: change file with no testable content" This reverts commit 05974b67c7ac455fdd1f09b1141268a98085db89. * build: change file with no testable content * Revert "build: change file with no testable content" This reverts commit 187cc57291fc2e9756e6b5f7f1b3b7009df4f8c2. * build: change file with testable content * Revert "build: change file with testable content" This reverts commit ce716119b751041a18f4b0f1312de488dab780cf. * build: add vue file without test * Revert "build: add vue file without test" This reverts commit 756f28a373502a8cac44d0e5c0d1400f972423a9. * build: add vue file with test * Revert "build: add vue file with test" This reverts commit 8022b112fc5a15f564dddc08d7e11d2e8133bcac. * build: gather all missing tests at once * build: allow job to fail * build: update error message
2023-06-20 04:35:04 -07:00
return filesList;
}, []);
build: Check test files (#6455) * build: Check test files * build: update test file checker glob pattern * build: ignore changed files in test folders * build: fix gh workflow * build: update gh events in workflow * build: fix gh workflow * build: fix gh workflow action script path * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: update gh actions * build: update gh actions * build: test change file without test * Revert "build: test change file without test" This reverts commit 73f5c544c5f4218da48cea13bfb9008a9a51cbd9. * build: test change file that already has test * build: fix action script * Revert "build: test change file that already has test" This reverts commit 21be611abfdbce67fd7243a16d987bb21927de22. * build: update script * build: test checking with test file change * Revert "build: test checking with test file change" This reverts commit 995b64f6bab825fc16bed52c04baa7fcc15baa55. * build: change file with no testable content * build: use typescript to traverse a file * Revert "build: change file with no testable content" This reverts commit 05974b67c7ac455fdd1f09b1141268a98085db89. * build: change file with no testable content * Revert "build: change file with no testable content" This reverts commit 187cc57291fc2e9756e6b5f7f1b3b7009df4f8c2. * build: change file with testable content * Revert "build: change file with testable content" This reverts commit ce716119b751041a18f4b0f1312de488dab780cf. * build: add vue file without test * Revert "build: add vue file without test" This reverts commit 756f28a373502a8cac44d0e5c0d1400f972423a9. * build: add vue file with test * Revert "build: add vue file with test" This reverts commit 8022b112fc5a15f564dddc08d7e11d2e8133bcac. * build: gather all missing tests at once * build: allow job to fail * build: update error message
2023-06-20 04:35:04 -07:00
if (missingTests.length) {
build: Check test files (#6455) * build: Check test files * build: update test file checker glob pattern * build: ignore changed files in test folders * build: fix gh workflow * build: update gh events in workflow * build: fix gh workflow * build: fix gh workflow action script path * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: fix gh workflow script * build: update gh actions * build: update gh actions * build: test change file without test * Revert "build: test change file without test" This reverts commit 73f5c544c5f4218da48cea13bfb9008a9a51cbd9. * build: test change file that already has test * build: fix action script * Revert "build: test change file that already has test" This reverts commit 21be611abfdbce67fd7243a16d987bb21927de22. * build: update script * build: test checking with test file change * Revert "build: test checking with test file change" This reverts commit 995b64f6bab825fc16bed52c04baa7fcc15baa55. * build: change file with no testable content * build: use typescript to traverse a file * Revert "build: change file with no testable content" This reverts commit 05974b67c7ac455fdd1f09b1141268a98085db89. * build: change file with no testable content * Revert "build: change file with no testable content" This reverts commit 187cc57291fc2e9756e6b5f7f1b3b7009df4f8c2. * build: change file with testable content * Revert "build: change file with testable content" This reverts commit ce716119b751041a18f4b0f1312de488dab780cf. * build: add vue file without test * Revert "build: add vue file without test" This reverts commit 756f28a373502a8cac44d0e5c0d1400f972423a9. * build: add vue file with test * Revert "build: add vue file with test" This reverts commit 8022b112fc5a15f564dddc08d7e11d2e8133bcac. * build: gather all missing tests at once * build: allow job to fail * build: update error message
2023-06-20 04:35:04 -07:00
console.error(`Missing tests for:\n${missingTests.join('\n')}`);
process.exit(1);
}
};
main();