@knapsack-pro/core
Version:
Knapsack Pro Core library splits tests across CI nodes and makes sure that tests will run in optimal time on each CI node. This library gives core features like communication with KnapsackPro.com API. This library is a dependency for other projects specif
25 lines (24 loc) • 1.06 kB
JavaScript
import { readFileSync } from 'fs';
import { KnapsackProEnvConfig } from './config/index.js';
import { KnapsackProLogger } from './knapsack-pro-logger.js';
export class TestFilesFinder {
static testFilesFromSourceFile() {
if (!KnapsackProEnvConfig.testFileListSourceFile) {
return null;
}
const knapsackProLogger = new KnapsackProLogger();
knapsackProLogger.debug(`The KNAPSACK_PRO_TEST_FILE_LIST_SOURCE_FILE environment variable is defined. Knapsack will execute test files based on a list of test files from a file: ${KnapsackProEnvConfig.testFileListSourceFile}.`);
const allFileContents = readFileSync(KnapsackProEnvConfig.testFileListSourceFile, 'utf-8');
const testFiles = [];
allFileContents.split(/\r?\n/).forEach((line) => {
const testFilePath = line.trim();
if (testFilePath.length === 0) {
return;
}
testFiles.push({
path: testFilePath,
});
});
return testFiles;
}
}