@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
72 lines (70 loc) • 2.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.JasmineTestUpgrader = void 0;
const logger_1 = require("../utils/logger");
const file_writer_1 = require("../utils/file-writer");
const command_runner_1 = require("../utils/command-runner");
const jasmine_test_config_1 = require("../configs/jasmine-test-config");
const relative_path_1 = require("../utils/relative-path");
/**
* The upgrader for the jamine test files(.spec.ts files)
*/
class JasmineTestUpgrader {
fileWriter;
testTsFilePath;
debug = false;
messages = {
notFound: ''
};
/**
* the constructor.
* @param filePath the file path.
*/
constructor(testTsFilePath, debug = false) {
this.messages.notFound = `No spec.ts file found.`;
this.testTsFilePath = testTsFilePath;
this.debug = debug;
}
/**
* the run function to resolve the errors.
*/
async run() {
try {
const getSpecFiles = 'dir /s /b src\\*.spec.ts';
let specFiles = [];
logger_1.Logger.log(getSpecFiles);
(0, command_runner_1.runCommand)(getSpecFiles, this.debug, true).then(async (response) => {
specFiles = response.split('\r\n');
if (!specFiles.length) {
logger_1.Logger.log(this.messages.notFound);
}
specFiles = specFiles.filter(item => item.trim() !== "");
console.log(specFiles);
console.log(specFiles.length);
for (let i = 0; i < specFiles.length; i++) {
const specFile = specFiles[i];
// Wait for 50ms
await sleep(50);
this.fileWriter = new file_writer_1.FileWriter(specFile);
this.fileWriter
.addContent(jasmine_test_config_1.adds, false, 0, '')
.fixImportHandler(`import { setUpMock } from "${(0, relative_path_1.getRelativePath)(specFile, this.testTsFilePath).replace('.ts', '')}";`)
.writeFile();
}
/**
* This function guarantees that MIMO on file system is not triggering race condition.
* @param ms miliseconds
* @returns
*/
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
});
}
catch (error) {
logger_1.Logger.error(error);
}
}
}
exports.JasmineTestUpgrader = JasmineTestUpgrader;
//# sourceMappingURL=jasmine-test-upgrader.js.map