@sasjs/cli 3.6.2 → 3.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -3
- package/build/cli.js +4 -4
- package/build/cli.spec.js +6 -6
- package/build/commands/add/addCommand.js +2 -2
- package/build/commands/add/addCredential.js +27 -27
- package/build/commands/add/addTarget.js +10 -10
- package/build/commands/add/internal/input.js +30 -30
- package/build/commands/add/internal/saveConfig.js +2 -2
- package/build/commands/add/spec/addCommand.spec.js +24 -20
- package/build/commands/add/spec/addCredential.spec.js +14 -14
- package/build/commands/add/spec/addTarget.spec.js +22 -22
- package/build/commands/build/build.js +81 -77
- package/build/commands/build/buildCommand.js +3 -3
- package/build/commands/build/compileBuildCommand.js +4 -4
- package/build/commands/build/internal/config.js +8 -8
- package/build/commands/build/internal/getLaunchPageCode.js +2 -2
- package/build/commands/build/spec/build.spec.js +10 -10
- package/build/commands/build/spec/buildCommand.spec.js +16 -12
- package/build/commands/build/spec/cb.spec.server.js +18 -18
- package/build/commands/build/spec/compileBuildCommand.spec.js +17 -13
- package/build/commands/compile/compile.js +61 -61
- package/build/commands/compile/compileCommand.js +10 -10
- package/build/commands/compile/compileSingleFile.js +17 -17
- package/build/commands/compile/internal/checkCompileStatus.js +11 -11
- package/build/commands/compile/internal/compareFolders.js +11 -11
- package/build/commands/compile/internal/compileJobFile.js +3 -3
- package/build/commands/compile/internal/compileServiceFile.js +14 -14
- package/build/commands/compile/internal/compileTestFile.js +41 -37
- package/build/commands/compile/internal/getAllJobFolders.js +13 -9
- package/build/commands/compile/internal/getAllServiceFolders.js +13 -9
- package/build/commands/compile/internal/getServerType.js +1 -1
- package/build/commands/compile/internal/identifySasFile.js +2 -2
- package/build/commands/compile/internal/loadDependencies.js +5 -5
- package/build/commands/compile/internal/spec/compileTestFile.spec.js +40 -40
- package/build/commands/compile/spec/compareFolders.spec.js +27 -27
- package/build/commands/compile/spec/compile.spec.js +93 -93
- package/build/commands/compile/spec/compileCommand.spec.js +37 -33
- package/build/commands/compile/spec/compileJobFile.spec.js +11 -11
- package/build/commands/compile/spec/compileServiceFile.spec.js +11 -11
- package/build/commands/compile/spec/copyFilesToBuildFolder.spec.js +7 -7
- package/build/commands/compile/spec/loadDependencies.spec.js +30 -30
- package/build/commands/context/contextCommand.js +16 -16
- package/build/commands/context/create.js +1 -1
- package/build/commands/context/delete.js +2 -2
- package/build/commands/context/edit.js +1 -1
- package/build/commands/context/export.js +5 -5
- package/build/commands/context/internal/validateConfigPath.js +1 -1
- package/build/commands/context/list.js +4 -4
- package/build/commands/context/spec/contextCommand.spec.js +80 -76
- package/build/commands/context/spec/create.spec.js +3 -3
- package/build/commands/context/spec/delete.spec.js +3 -3
- package/build/commands/context/spec/edit.spec.js +3 -3
- package/build/commands/context/spec/export.spec.js +8 -8
- package/build/commands/context/spec/list.spec.js +5 -5
- package/build/commands/create/create.js +12 -12
- package/build/commands/create/createCommand.js +2 -2
- package/build/commands/create/internal/createReadme.js +2 -2
- package/build/commands/create/spec/create.spec.js +39 -39
- package/build/commands/create/spec/createCommand.spec.js +14 -10
- package/build/commands/db/db.js +22 -22
- package/build/commands/db/dbCommand.js +1 -1
- package/build/commands/db/spec/db.spec.js +8 -8
- package/build/commands/db/spec/dbCommand.spec.js +11 -7
- package/build/commands/deploy/compileBuildDeployCommand.js +6 -6
- package/build/commands/deploy/deploy.d.ts +7 -0
- package/build/commands/deploy/deploy.js +131 -81
- package/build/commands/deploy/deployCommand.js +2 -2
- package/build/commands/deploy/internal/getDeployScripts.js +14 -10
- package/build/commands/deploy/spec/cbd.spec.js +15 -15
- package/build/commands/deploy/spec/cbd.spec.server.js +40 -40
- package/build/commands/deploy/spec/compileBuildDeployCommand.spec.js +18 -14
- package/build/commands/deploy/spec/deployCommand.spec.js +15 -11
- package/build/commands/deploy/spec/getDeployScripts.spec.js +8 -8
- package/build/commands/deploy/spec/utils.js +17 -17
- package/build/commands/docs/docsCommand.js +7 -7
- package/build/commands/docs/generateDocs.js +33 -29
- package/build/commands/docs/generateDot.js +12 -8
- package/build/commands/docs/initDocs.js +1 -1
- package/build/commands/docs/internal/createDotFiles.js +6 -6
- package/build/commands/docs/internal/getDotFileContent.js +17 -17
- package/build/commands/docs/internal/getFileInputs.js +1 -1
- package/build/commands/docs/internal/getFileOutputs.js +1 -1
- package/build/commands/docs/internal/getFoldersForDocs.js +4 -4
- package/build/commands/docs/internal/populateNodeDictionary.js +1 -1
- package/build/commands/docs/spec/docsCommand.spec.js +25 -21
- package/build/commands/docs/spec/generateDocs.spec.js +60 -60
- package/build/commands/docs/spec/generateDot.spec.js +23 -23
- package/build/commands/docs/spec/getDocConfig.spec.js +2 -2
- package/build/commands/docs/spec/initDocs.spec.js +7 -7
- package/build/commands/flow/execute.js +8 -8
- package/build/commands/flow/flowCommand.js +5 -5
- package/build/commands/flow/internal/checkPredecessorDeadlock.js +11 -7
- package/build/commands/flow/internal/executeFlow.js +23 -23
- package/build/commands/flow/internal/failAllSuccessors.js +1 -1
- package/build/commands/flow/internal/generateFileName.js +2 -2
- package/build/commands/flow/internal/normalizeFilePath.js +1 -1
- package/build/commands/flow/internal/parseJobDetails.js +3 -3
- package/build/commands/flow/internal/printError.js +1 -1
- package/build/commands/flow/internal/saveLog.js +8 -8
- package/build/commands/flow/internal/saveToCsv.js +2 -2
- package/build/commands/flow/internal/spec/allFlowsCompleted.spec.js +4 -4
- package/build/commands/flow/internal/spec/checkPredecessorDeadlock.spec.js +4 -4
- package/build/commands/flow/internal/spec/executeFlow.spec.js +10 -10
- package/build/commands/flow/internal/spec/failAllSuccessors.spec.js +1 -1
- package/build/commands/flow/internal/spec/saveToCsv.spec.js +16 -16
- package/build/commands/flow/internal/spec/validateParams.spec.js +33 -33
- package/build/commands/flow/internal/validateParams.js +17 -17
- package/build/commands/flow/spec/flow.spec.js +1 -1
- package/build/commands/flow/spec/flow.spec.server.js +60 -60
- package/build/commands/flow/spec/flowCommand.spec.js +16 -12
- package/build/commands/folder/create.js +2 -2
- package/build/commands/folder/delete.js +2 -2
- package/build/commands/folder/folderCommand.js +11 -11
- package/build/commands/folder/move.js +2 -2
- package/build/commands/folder/spec/folder.spec.server.js +35 -35
- package/build/commands/folder/spec/folderCommand.spec.js +23 -19
- package/build/commands/help/help.js +50 -48
- package/build/commands/help/helpCommand.js +1 -1
- package/build/commands/help/spec/help.spec.js +8 -8
- package/build/commands/help/spec/helpCommand.spec.js +11 -7
- package/build/commands/init/init.js +7 -7
- package/build/commands/init/initCommand.js +1 -1
- package/build/commands/init/spec/init.spec.server.js +17 -17
- package/build/commands/init/spec/initCommand.spec.js +11 -7
- package/build/commands/job/internal/execute/sasjs.js +1 -1
- package/build/commands/job/internal/execute/viya.js +35 -35
- package/build/commands/job/internal/utils.js +6 -6
- package/build/commands/job/jobCommand.js +6 -6
- package/build/commands/job/spec/execute.spec.js +6 -6
- package/build/commands/job/spec/getContextName.spec.js +2 -2
- package/build/commands/job/spec/job.spec.server.js +53 -53
- package/build/commands/job/spec/jobCommand.spec.js +17 -13
- package/build/commands/lint/initLint.js +2 -2
- package/build/commands/lint/lintCommand.js +10 -10
- package/build/commands/lint/processLint.js +5 -5
- package/build/commands/lint/spec/lintCommand.spec.js +19 -15
- package/build/commands/request/request.js +16 -16
- package/build/commands/request/requestCommand.js +5 -5
- package/build/commands/request/spec/request.spec.server.js +71 -71
- package/build/commands/request/spec/requestCommand.spec.js +17 -13
- package/build/commands/run/run.js +23 -23
- package/build/commands/run/runCommand.js +2 -2
- package/build/commands/run/spec/run.spec.server.js +51 -51
- package/build/commands/run/spec/runCommand.spec.js +10 -6
- package/build/commands/servicepack/deploy.js +6 -6
- package/build/commands/servicepack/servicePackCommand.js +3 -3
- package/build/commands/servicepack/spec/servicepack.spec.server.js +6 -6
- package/build/commands/servicepack/spec/servicepackCommand.spec.js +10 -6
- package/build/commands/shared/createConfigFile.js +2 -2
- package/build/commands/shared/createFileStructure.js +6 -6
- package/build/commands/shared/createLintConfigFile.js +1 -1
- package/build/commands/shared/deployToSasViyaWithServicePack.js +4 -4
- package/build/commands/shared/fetchLogFileContent.js +10 -6
- package/build/commands/testing/internal/saveOutput.js +38 -34
- package/build/commands/testing/spec/testCommand.spec.js +17 -13
- package/build/commands/testing/spec/testing.spec.server.js +38 -38
- package/build/commands/testing/test.js +45 -41
- package/build/commands/testing/testCommand.js +2 -2
- package/build/commands/version/spec/version.spec.js +1 -1
- package/build/commands/version/spec/versionCommand.spec.js +11 -7
- package/build/commands/version/version.js +3 -3
- package/build/commands/version/versionCommand.js +2 -2
- package/build/commands/web/internal/createAssetServices.js +28 -24
- package/build/commands/web/internal/getWebServiceContent.js +6 -6
- package/build/commands/web/internal/sasjsout.d.ts +1 -1
- package/build/commands/web/internal/sasjsout.js +1 -1
- package/build/commands/web/internal/spec/updateLinkTag.spec.js +2 -2
- package/build/commands/web/internal/spec/updateScriptTag.spec.js +10 -10
- package/build/commands/web/internal/updateAllTags.js +19 -15
- package/build/commands/web/internal/updateLinkTag.js +2 -2
- package/build/commands/web/internal/updateScriptTag.js +6 -6
- package/build/commands/web/spec/web.spec.js +23 -23
- package/build/commands/web/spec/webCommand.spec.js +16 -12
- package/build/commands/web/web.js +25 -25
- package/build/commands/web/webCommand.js +3 -3
- package/build/types/command/commandBase.js +19 -15
- package/build/types/command/parse.js +1 -1
- package/build/types/command/spec/commandBase.spec.js +16 -12
- package/build/types/command/targetCommand.js +4 -4
- package/build/types/command/unalias.js +9 -5
- package/build/utils/auth.js +7 -7
- package/build/utils/config.js +56 -49
- package/build/utils/displayResult.js +4 -4
- package/build/utils/file.js +11 -11
- package/build/utils/fileStructures/builtFiles.js +2 -2
- package/build/utils/fileStructures/builtFilesCustom1.js +2 -2
- package/build/utils/getLogFilePath.js +1 -1
- package/build/utils/loadEnvVariables.js +3 -3
- package/build/utils/prefixAppLoc.js +1 -1
- package/build/utils/saveLog.js +7 -7
- package/build/utils/setConstants.js +4 -4
- package/build/utils/setProjectDir.js +2 -2
- package/build/utils/spec/config.spec.js +80 -80
- package/build/utils/spec/displayResult.spec.js +7 -7
- package/build/utils/spec/file.spec.js +15 -15
- package/build/utils/spec/removeComments.spec.js +11 -11
- package/build/utils/spec/setConstants.spec.js +3 -3
- package/build/utils/spec/utils.spec.js +55 -55
- package/build/utils/test.js +59 -59
- package/build/utils/utils.js +47 -43
- package/package.json +11 -11
|
@@ -60,24 +60,24 @@ var __1 = require("../..");
|
|
|
60
60
|
describe('sasjs test', function () {
|
|
61
61
|
var target = generateTarget();
|
|
62
62
|
var testUrl = function (test) {
|
|
63
|
-
return target.serverUrl
|
|
63
|
+
return "".concat(target.serverUrl, "/").concat(target.serverType === utils_1.ServerType.SasViya
|
|
64
64
|
? 'SASJobExecution'
|
|
65
|
-
: 'SASStoredProcess'
|
|
65
|
+
: 'SASStoredProcess', "/?_program=/Public/app/cli-tests/").concat(target.name, "/tests/").concat(test, "&_debug=2477&_contextName=").concat(encodeURIComponent(target.contextName));
|
|
66
66
|
};
|
|
67
|
-
var testUrlLink = function (test) { return "\"=HYPERLINK(\"\""
|
|
67
|
+
var testUrlLink = function (test) { return "\"=HYPERLINK(\"\"".concat(testUrl(test), "\"\")\""); };
|
|
68
68
|
beforeAll(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
69
69
|
return __generator(this, function (_a) {
|
|
70
70
|
switch (_a.label) {
|
|
71
|
-
case 0: return [4 /*yield*/, test_2.createTestApp(__dirname, target.name)];
|
|
71
|
+
case 0: return [4 /*yield*/, (0, test_2.createTestApp)(__dirname, target.name)];
|
|
72
72
|
case 1:
|
|
73
73
|
_a.sent();
|
|
74
74
|
return [4 /*yield*/, copyTestFiles(target.name)];
|
|
75
75
|
case 2:
|
|
76
76
|
_a.sent();
|
|
77
|
-
return [4 /*yield*/, __1.build(target)];
|
|
77
|
+
return [4 /*yield*/, (0, __1.build)(target)];
|
|
78
78
|
case 3:
|
|
79
79
|
_a.sent();
|
|
80
|
-
return [4 /*yield*/, __1.deploy(target, false)];
|
|
80
|
+
return [4 /*yield*/, (0, __1.deploy)(target, false)];
|
|
81
81
|
case 4:
|
|
82
82
|
_a.sent();
|
|
83
83
|
process.logger = new utils_1.Logger(utils_1.LogLevel.Off);
|
|
@@ -88,10 +88,10 @@ describe('sasjs test', function () {
|
|
|
88
88
|
afterAll(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
89
89
|
return __generator(this, function (_a) {
|
|
90
90
|
switch (_a.label) {
|
|
91
|
-
case 0: return [4 /*yield*/, test_2.removeTestServerFolder("/Public/app/cli-tests/"
|
|
91
|
+
case 0: return [4 /*yield*/, (0, test_2.removeTestServerFolder)("/Public/app/cli-tests/".concat(target.name), target)];
|
|
92
92
|
case 1:
|
|
93
93
|
_a.sent();
|
|
94
|
-
return [4 /*yield*/, test_2.removeTestApp(__dirname, target.name)];
|
|
94
|
+
return [4 /*yield*/, (0, test_2.removeTestApp)(__dirname, target.name)];
|
|
95
95
|
case 2:
|
|
96
96
|
_a.sent();
|
|
97
97
|
return [2 /*return*/];
|
|
@@ -194,38 +194,38 @@ describe('sasjs test', function () {
|
|
|
194
194
|
}
|
|
195
195
|
]
|
|
196
196
|
};
|
|
197
|
-
expectedResultsCsv = "test_target,test_loc,sasjs_test_id,test_suite_result,test_description,test_url\ntestsetup,tests/testsetup.sas,sasjs_test_id,not provided,,"
|
|
198
|
-
return [4 /*yield*/, test_1.runTest(target)];
|
|
197
|
+
expectedResultsCsv = "test_target,test_loc,sasjs_test_id,test_suite_result,test_description,test_url\ntestsetup,tests/testsetup.sas,sasjs_test_id,not provided,,".concat(testUrlLink('testsetup'), "\nexampleprogram,tests/jobs/jobs/exampleprogram.test.sas,sasjs_test_id,not provided,,").concat(testUrlLink('jobs/jobs/exampleprogram.test'), "\nstandalone,tests/jobs/jobs/standalone.test.sas,sasjs_test_id,not provided,,").concat(testUrlLink('jobs/jobs/standalone.test'), "\nexamplemacro,tests/macros/examplemacro.test.sas,sasjs_test_id,PASS,examplemacro test.1 description,").concat(testUrlLink('macros/examplemacro.test'), "\ndostuff,tests/services/admin/dostuff.test.0.sas,sasjs_test_id,FAIL,dostuff 0 test description,").concat(testUrlLink('services/admin/dostuff.test.0'), "\ndostuff,tests/services/admin/dostuff.test.1.sas,sasjs_test_id,PASS,dostuff 1 test description,").concat(testUrlLink('services/admin/dostuff.test.1'), "\ntestteardown,tests/testteardown.sas,sasjs_test_id,not provided,,").concat(testUrlLink('testteardown'), "\n");
|
|
198
|
+
return [4 /*yield*/, (0, test_1.runTest)(target)];
|
|
199
199
|
case 1:
|
|
200
200
|
_a.sent();
|
|
201
201
|
resultsFolderPath = path_1.default.join(__dirname, target.name, 'sasjsresults');
|
|
202
202
|
resultsJsonPath = path_1.default.join(resultsFolderPath, 'testResults.json');
|
|
203
|
-
return [4 /*yield*/, expect(utils_1.folderExists(resultsFolderPath)).resolves.toEqual(true)];
|
|
203
|
+
return [4 /*yield*/, expect((0, utils_1.folderExists)(resultsFolderPath)).resolves.toEqual(true)];
|
|
204
204
|
case 2:
|
|
205
205
|
_a.sent();
|
|
206
|
-
return [4 /*yield*/, expect(utils_1.fileExists(resultsJsonPath)).resolves.toEqual(true)];
|
|
206
|
+
return [4 /*yield*/, expect((0, utils_1.fileExists)(resultsJsonPath)).resolves.toEqual(true)];
|
|
207
207
|
case 3:
|
|
208
208
|
_a.sent();
|
|
209
|
-
return [4 /*yield*/, utils_1.readFile(resultsJsonPath)];
|
|
209
|
+
return [4 /*yield*/, (0, utils_1.readFile)(resultsJsonPath)];
|
|
210
210
|
case 4:
|
|
211
211
|
resultsJson = _a.sent();
|
|
212
212
|
resultsCsvPath = path_1.default.join(resultsFolderPath, 'testResults.csv');
|
|
213
|
-
return [4 /*yield*/, expect(utils_1.fileExists(resultsCsvPath)).resolves.toEqual(true)];
|
|
213
|
+
return [4 /*yield*/, expect((0, utils_1.fileExists)(resultsCsvPath)).resolves.toEqual(true)];
|
|
214
214
|
case 5:
|
|
215
215
|
_a.sent();
|
|
216
216
|
parsedResults = JSON.parse(resultsJson);
|
|
217
217
|
parsedResults.sasjs_test_meta = parsedResults.sasjs_test_meta.flatMap(function (res) { return (__assign(__assign({}, res), { results: res.results.map(function (r) { return (__assign(__assign({}, r), { sasjs_test_id: '' })); }) })); });
|
|
218
218
|
expect(parsedResults).toEqual(expectedResultsJson);
|
|
219
|
-
return [4 /*yield*/, utils_1.readFile(resultsCsvPath)];
|
|
219
|
+
return [4 /*yield*/, (0, utils_1.readFile)(resultsCsvPath)];
|
|
220
220
|
case 6:
|
|
221
221
|
resultsCsv = _a.sent();
|
|
222
222
|
resultsCsv = resultsCsv.replace(/\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b/g, 'sasjs_test_id');
|
|
223
223
|
expect(resultsCsv).toEqual(expectedResultsCsv);
|
|
224
224
|
resultsXmlPath = path_1.default.join(resultsFolderPath, 'testResults.xml');
|
|
225
|
-
return [4 /*yield*/, expect(utils_1.fileExists(resultsXmlPath)).resolves.toEqual(true)];
|
|
225
|
+
return [4 /*yield*/, expect((0, utils_1.fileExists)(resultsXmlPath)).resolves.toEqual(true)];
|
|
226
226
|
case 7:
|
|
227
227
|
_a.sent();
|
|
228
|
-
return [4 /*yield*/, utils_1.readFile(resultsXmlPath)];
|
|
228
|
+
return [4 /*yield*/, (0, utils_1.readFile)(resultsXmlPath)];
|
|
229
229
|
case 8:
|
|
230
230
|
resultsXml = _a.sent();
|
|
231
231
|
expectedResultsXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<testsuites id=\"\" name=\"SASjs Test Meta\" tests=\"7\" failures=\"5\">\n <testsuite id=\"testsetup\" name=\"testsetup\" tests=\"1\" failures=\"1\">\n <testcase id=\"\">\n <failure>Status was not provided</failure>\n </testcase>\n </testsuite>\n <testsuite id=\"exampleprogram\" name=\"exampleprogram\" tests=\"1\" failures=\"1\">\n <testcase id=\"\">\n <failure>Status was not provided</failure>\n </testcase>\n </testsuite>\n <testsuite id=\"standalone\" name=\"standalone\" tests=\"1\" failures=\"1\">\n <testcase id=\"\">\n <failure>Status was not provided</failure>\n </testcase>\n </testsuite>\n <testsuite id=\"examplemacro\" name=\"examplemacro\" tests=\"1\" failures=\"0\">\n <testcase id=\"\">\n </testcase>\n </testsuite>\n <testsuite id=\"dostuff\" name=\"dostuff\" tests=\"2\" failures=\"1\">\n <testcase id=\"\">\n <failure>Description: dostuff 0 test description</failure>\n </testcase>\n <testcase id=\"\">\n </testcase>\n </testsuite>\n <testsuite id=\"testteardown\" name=\"testteardown\" tests=\"1\" failures=\"1\">\n <testcase id=\"\">\n <failure>Status was not provided</failure>\n </testcase>\n </testsuite>\n</testsuites>";
|
|
@@ -233,11 +233,11 @@ describe('sasjs test', function () {
|
|
|
233
233
|
resultsXml = resultsXml.replace(/testcase id="[^ ]*"/gm, "testcase id=\"\"");
|
|
234
234
|
expect(resultsXml).toEqual(expectedResultsXml);
|
|
235
235
|
coverageLcovPath = path_1.default.join(resultsFolderPath, 'coverage.lcov');
|
|
236
|
-
return [4 /*yield*/, expect(utils_1.fileExists(coverageLcovPath)).resolves.toEqual(true)];
|
|
236
|
+
return [4 /*yield*/, expect((0, utils_1.fileExists)(coverageLcovPath)).resolves.toEqual(true)];
|
|
237
237
|
case 9:
|
|
238
238
|
_a.sent();
|
|
239
239
|
expectedCoverageLcov = "TN:testsetup.sas\nSF:standalone\nFNF:1\nFNH:1\nLF:1\nLH:1\nBRF:1\nBRH:1\nend_of_record\nTN:exampleprogram.test.sas\nSF:jobs/jobs/exampleprogram.sas\nFNF:1\nFNH:1\nLF:1\nLH:1\nBRF:1\nBRH:1\nend_of_record\nTN:standalone.test.sas\nSF:standalone\nFNF:1\nFNH:1\nLF:1\nLH:1\nBRF:1\nBRH:1\nend_of_record\nTN:examplemacro.test.sas\nSF:standalone\nFNF:1\nFNH:1\nLF:1\nLH:1\nBRF:1\nBRH:1\nend_of_record\nTN:shouldFail.test.sas\nSF:standalone\nFNF:1\nFNH:1\nLF:1\nLH:1\nBRF:1\nBRH:1\nend_of_record\nTN:dostuff.test.0.sas\nSF:services/admin/dostuff.sas\nFNF:1\nFNH:1\nLF:1\nLH:1\nBRF:1\nBRH:1\nend_of_record\nTN:dostuff.test.1.sas\nSF:services/admin/dostuff.sas\nFNF:1\nFNH:1\nLF:1\nLH:1\nBRF:1\nBRH:1\nend_of_record\nTN:testteardown.sas\nSF:standalone\nFNF:1\nFNH:1\nLF:1\nLH:1\nBRF:1\nBRH:1\nend_of_record";
|
|
240
|
-
return [4 /*yield*/, utils_1.readFile(coverageLcovPath)];
|
|
240
|
+
return [4 /*yield*/, (0, utils_1.readFile)(coverageLcovPath)];
|
|
241
241
|
case 10:
|
|
242
242
|
coverageLcov = _a.sent();
|
|
243
243
|
expect(coverageLcov).toEqual(expectedCoverageLcov);
|
|
@@ -303,41 +303,41 @@ describe('sasjs test', function () {
|
|
|
303
303
|
}
|
|
304
304
|
]
|
|
305
305
|
};
|
|
306
|
-
expectedResultsCsv = "test_target,test_loc,sasjs_test_id,test_suite_result,test_description,test_url\ntestsetup,tests/testsetup.sas,sasjs_test_id,not provided,,"
|
|
306
|
+
expectedResultsCsv = "test_target,test_loc,sasjs_test_id,test_suite_result,test_description,test_url\ntestsetup,tests/testsetup.sas,sasjs_test_id,not provided,,".concat(testUrlLink('testsetup'), "\nstandalone,tests/jobs/jobs/standalone.test.sas,sasjs_test_id,not provided,,").concat(testUrlLink('jobs/jobs/standalone.test'), "\ndostuff,tests/services/admin/dostuff.test.0.sas,sasjs_test_id,FAIL,dostuff 0 test description,").concat(testUrlLink('services/admin/dostuff.test.0'), "\ntestteardown,tests/testteardown.sas,sasjs_test_id,not provided,,").concat(testUrlLink('testteardown'), "\n");
|
|
307
307
|
outputFolder = 'customOutPut';
|
|
308
308
|
movedTestFlow = 'movedTestFlow.json';
|
|
309
|
-
return [4 /*yield*/, utils_1.copy(path_1.default.join(__dirname, target.name, 'sasjsbuild', 'testFlow.json'), path_1.default.join(__dirname, target.name, movedTestFlow))];
|
|
309
|
+
return [4 /*yield*/, (0, utils_1.copy)(path_1.default.join(__dirname, target.name, 'sasjsbuild', 'testFlow.json'), path_1.default.join(__dirname, target.name, movedTestFlow))];
|
|
310
310
|
case 1:
|
|
311
311
|
_a.sent();
|
|
312
|
-
return [4 /*yield*/, test_1.runTest(target, ['jobs/standalone', 'shouldFail', 'services/admin/dostuff.test.0'], outputFolder, movedTestFlow)];
|
|
312
|
+
return [4 /*yield*/, (0, test_1.runTest)(target, ['jobs/standalone', 'shouldFail', 'services/admin/dostuff.test.0'], outputFolder, movedTestFlow)];
|
|
313
313
|
case 2:
|
|
314
314
|
_a.sent();
|
|
315
315
|
resultsFolderPath = path_1.default.join(__dirname, target.name, outputFolder);
|
|
316
316
|
resultsJsonPath = path_1.default.join(resultsFolderPath, 'testResults.json');
|
|
317
|
-
return [4 /*yield*/, expect(utils_1.folderExists(resultsFolderPath)).resolves.toEqual(true)];
|
|
317
|
+
return [4 /*yield*/, expect((0, utils_1.folderExists)(resultsFolderPath)).resolves.toEqual(true)];
|
|
318
318
|
case 3:
|
|
319
319
|
_a.sent();
|
|
320
|
-
return [4 /*yield*/, expect(utils_1.fileExists(resultsJsonPath)).resolves.toEqual(true)];
|
|
320
|
+
return [4 /*yield*/, expect((0, utils_1.fileExists)(resultsJsonPath)).resolves.toEqual(true)];
|
|
321
321
|
case 4:
|
|
322
322
|
_a.sent();
|
|
323
|
-
return [4 /*yield*/, utils_1.readFile(resultsJsonPath)];
|
|
323
|
+
return [4 /*yield*/, (0, utils_1.readFile)(resultsJsonPath)];
|
|
324
324
|
case 5:
|
|
325
325
|
resultsJson = _a.sent();
|
|
326
326
|
resultsCsvPath = path_1.default.join(resultsFolderPath, 'testResults.csv');
|
|
327
|
-
return [4 /*yield*/, expect(utils_1.fileExists(resultsCsvPath)).resolves.toEqual(true)];
|
|
327
|
+
return [4 /*yield*/, expect((0, utils_1.fileExists)(resultsCsvPath)).resolves.toEqual(true)];
|
|
328
328
|
case 6:
|
|
329
329
|
_a.sent();
|
|
330
330
|
parsedResults = JSON.parse(resultsJson);
|
|
331
331
|
parsedResults.sasjs_test_meta = parsedResults.sasjs_test_meta.flatMap(function (res) { return (__assign(__assign({}, res), { results: res.results.map(function (r) { return (__assign(__assign({}, r), { sasjs_test_id: '' })); }) })); });
|
|
332
332
|
expect(parsedResults).toEqual(expectedResultsJson);
|
|
333
|
-
return [4 /*yield*/, utils_1.readFile(resultsCsvPath)];
|
|
333
|
+
return [4 /*yield*/, (0, utils_1.readFile)(resultsCsvPath)];
|
|
334
334
|
case 7:
|
|
335
335
|
resultsCsv = _a.sent();
|
|
336
336
|
resultsCsv = resultsCsv.replace(/\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b/g, 'sasjs_test_id');
|
|
337
337
|
expect(resultsCsv).toEqual(expectedResultsCsv);
|
|
338
338
|
logFolder = path_1.default.join(resultsFolderPath, 'logs');
|
|
339
339
|
logPath = path_1.default.join(logFolder, 'macros_shouldFail.test.log');
|
|
340
|
-
return [4 /*yield*/, expect(utils_1.listFilesInFolder(logFolder)).resolves.toEqual([
|
|
340
|
+
return [4 /*yield*/, expect((0, utils_1.listFilesInFolder)(logFolder)).resolves.toEqual([
|
|
341
341
|
'jobs_jobs_standalone.test.log',
|
|
342
342
|
'macros_shouldFail.test.log',
|
|
343
343
|
'services_admin_dostuff.test.0.log',
|
|
@@ -346,15 +346,15 @@ describe('sasjs test', function () {
|
|
|
346
346
|
])];
|
|
347
347
|
case 8:
|
|
348
348
|
_a.sent();
|
|
349
|
-
return [4 /*yield*/, utils_1.readFile(logPath)];
|
|
349
|
+
return [4 /*yield*/, (0, utils_1.readFile)(logPath)];
|
|
350
350
|
case 9:
|
|
351
351
|
log = _a.sent();
|
|
352
352
|
expect(log.length).toBeGreaterThan(0);
|
|
353
353
|
resultsXmlPath = path_1.default.join(resultsFolderPath, 'testResults.xml');
|
|
354
|
-
return [4 /*yield*/, expect(utils_1.fileExists(resultsXmlPath)).resolves.toEqual(true)];
|
|
354
|
+
return [4 /*yield*/, expect((0, utils_1.fileExists)(resultsXmlPath)).resolves.toEqual(true)];
|
|
355
355
|
case 10:
|
|
356
356
|
_a.sent();
|
|
357
|
-
return [4 /*yield*/, utils_1.readFile(resultsXmlPath)];
|
|
357
|
+
return [4 /*yield*/, (0, utils_1.readFile)(resultsXmlPath)];
|
|
358
358
|
case 11:
|
|
359
359
|
resultsXml = _a.sent();
|
|
360
360
|
expectedResultsXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<testsuites id=\"\" name=\"SASjs Test Meta\" tests=\"4\" failures=\"4\">\n <testsuite id=\"testsetup\" name=\"testsetup\" tests=\"1\" failures=\"1\">\n <testcase id=\"\">\n <failure>Status was not provided</failure>\n </testcase>\n </testsuite>\n <testsuite id=\"standalone\" name=\"standalone\" tests=\"1\" failures=\"1\">\n <testcase id=\"\">\n <failure>Status was not provided</failure>\n </testcase>\n </testsuite>\n <testsuite id=\"dostuff\" name=\"dostuff\" tests=\"1\" failures=\"1\">\n <testcase id=\"\">\n <failure>Description: dostuff 0 test description</failure>\n </testcase>\n </testsuite>\n <testsuite id=\"testteardown\" name=\"testteardown\" tests=\"1\" failures=\"1\">\n <testcase id=\"\">\n <failure>Status was not provided</failure>\n </testcase>\n </testsuite>\n</testsuites>";
|
|
@@ -369,15 +369,15 @@ describe('sasjs test', function () {
|
|
|
369
369
|
function generateTarget(serverType) {
|
|
370
370
|
if (serverType === void 0) { serverType = utils_1.ServerType.SasViya; }
|
|
371
371
|
dotenv_1.default.config();
|
|
372
|
-
var timestamp = utils_1.generateTimestamp();
|
|
373
|
-
var targetName = "cli-tests-test-command-"
|
|
372
|
+
var timestamp = (0, utils_1.generateTimestamp)();
|
|
373
|
+
var targetName = "cli-tests-test-command-".concat(timestamp);
|
|
374
374
|
return new utils_1.Target({
|
|
375
375
|
name: targetName,
|
|
376
376
|
serverType: serverType,
|
|
377
377
|
serverUrl: (serverType === utils_1.ServerType.SasViya
|
|
378
378
|
? process.env.VIYA_SERVER_URL
|
|
379
379
|
: process.env.SAS9_SERVER_URL),
|
|
380
|
-
appLoc: "/Public/app/cli-tests/"
|
|
380
|
+
appLoc: "/Public/app/cli-tests/".concat(targetName),
|
|
381
381
|
contextName: utils_2.contextName,
|
|
382
382
|
macroFolders: ['sasjs/macros'],
|
|
383
383
|
serviceConfig: {
|
|
@@ -419,16 +419,16 @@ function generateTarget(serverType) {
|
|
|
419
419
|
var copyTestFiles = function (appName) { return __awaiter(void 0, void 0, void 0, function () {
|
|
420
420
|
return __generator(this, function (_a) {
|
|
421
421
|
switch (_a.label) {
|
|
422
|
-
case 0: return [4 /*yield*/, utils_1.copy(path_1.default.join(__dirname, 'testServicesFiles'), path_1.default.join(__dirname, appName, 'sasjs', 'services', 'admin'))];
|
|
422
|
+
case 0: return [4 /*yield*/, (0, utils_1.copy)(path_1.default.join(__dirname, 'testServicesFiles'), path_1.default.join(__dirname, appName, 'sasjs', 'services', 'admin'))];
|
|
423
423
|
case 1:
|
|
424
424
|
_a.sent();
|
|
425
|
-
return [4 /*yield*/, utils_1.copy(path_1.default.join(__dirname, 'testJobsFiles'), path_1.default.join(__dirname, appName, 'sasjs', 'jobs'))];
|
|
425
|
+
return [4 /*yield*/, (0, utils_1.copy)(path_1.default.join(__dirname, 'testJobsFiles'), path_1.default.join(__dirname, appName, 'sasjs', 'jobs'))];
|
|
426
426
|
case 2:
|
|
427
427
|
_a.sent();
|
|
428
|
-
return [4 /*yield*/, utils_1.copy(path_1.default.join(__dirname, 'testFiles'), path_1.default.join(__dirname, appName, 'sasjs', 'tests'))];
|
|
428
|
+
return [4 /*yield*/, (0, utils_1.copy)(path_1.default.join(__dirname, 'testFiles'), path_1.default.join(__dirname, appName, 'sasjs', 'tests'))];
|
|
429
429
|
case 3:
|
|
430
430
|
_a.sent();
|
|
431
|
-
return [4 /*yield*/, utils_1.copy(path_1.default.join(__dirname, 'testMacros'), path_1.default.join(__dirname, appName, 'sasjs', 'macros'))];
|
|
431
|
+
return [4 /*yield*/, (0, utils_1.copy)(path_1.default.join(__dirname, 'testMacros'), path_1.default.join(__dirname, appName, 'sasjs', 'macros'))];
|
|
432
432
|
case 4:
|
|
433
433
|
_a.sent();
|
|
434
434
|
return [2 /*return*/];
|
|
@@ -35,17 +35,6 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
|
-
var __values = (this && this.__values) || function(o) {
|
|
39
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
40
|
-
if (m) return m.call(o);
|
|
41
|
-
if (o && typeof o.length === "number") return {
|
|
42
|
-
next: function () {
|
|
43
|
-
if (o && i >= o.length) o = void 0;
|
|
44
|
-
return { value: o && o[i++], done: !o };
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
48
|
-
};
|
|
49
38
|
var __read = (this && this.__read) || function (o, n) {
|
|
50
39
|
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
51
40
|
if (!m) return o;
|
|
@@ -62,10 +51,25 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
62
51
|
}
|
|
63
52
|
return ar;
|
|
64
53
|
};
|
|
65
|
-
var
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
return
|
|
54
|
+
var __values = (this && this.__values) || function(o) {
|
|
55
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
56
|
+
if (m) return m.call(o);
|
|
57
|
+
if (o && typeof o.length === "number") return {
|
|
58
|
+
next: function () {
|
|
59
|
+
if (o && i >= o.length) o = void 0;
|
|
60
|
+
return { value: o && o[i++], done: !o };
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
64
|
+
};
|
|
65
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
66
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
67
|
+
if (ar || !(i in from)) {
|
|
68
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
69
|
+
ar[i] = from[i];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
69
73
|
};
|
|
70
74
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
71
75
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
@@ -101,8 +105,8 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
|
|
|
101
105
|
flowSourcePath = flowSourcePath
|
|
102
106
|
? path_1.default.join(process.currentDir, flowSourcePath)
|
|
103
107
|
: path_1.default.join(process.sasjsConstants.buildDestinationFolder, 'testFlow.json');
|
|
104
|
-
return [4 /*yield*/, utils_1.readFile(flowSourcePath).catch(function (_) {
|
|
105
|
-
return Promise.reject("Test flow file was not found at "
|
|
108
|
+
return [4 /*yield*/, (0, utils_1.readFile)(flowSourcePath).catch(function (_) {
|
|
109
|
+
return Promise.reject("Test flow file was not found at ".concat(flowSourcePath));
|
|
106
110
|
})];
|
|
107
111
|
case 1:
|
|
108
112
|
testFlowData = _d.sent();
|
|
@@ -119,7 +123,7 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
|
|
|
119
123
|
if (testFlow.testSetUp)
|
|
120
124
|
flow.push(testFlow.testSetUp);
|
|
121
125
|
if (testFlow.tests)
|
|
122
|
-
flow = __spreadArray(__spreadArray([], __read(flow)), __read(testFlow.tests.filter(function (test) {
|
|
126
|
+
flow = __spreadArray(__spreadArray([], __read(flow), false), __read(testFlow.tests.filter(function (test) {
|
|
123
127
|
var e_1, _a;
|
|
124
128
|
if (!testRegExps.length)
|
|
125
129
|
return true;
|
|
@@ -139,7 +143,7 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
|
|
|
139
143
|
finally { if (e_1) throw e_1.error; }
|
|
140
144
|
}
|
|
141
145
|
return match;
|
|
142
|
-
})));
|
|
146
|
+
})), false);
|
|
143
147
|
if (testFlow.testTearDown)
|
|
144
148
|
flow.push(testFlow.testTearDown);
|
|
145
149
|
sasjs = new node_1.default({
|
|
@@ -152,7 +156,7 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
|
|
|
152
156
|
useComputeApi: false
|
|
153
157
|
});
|
|
154
158
|
if (!(target.serverType === utils_1.ServerType.SasViya)) return [3 /*break*/, 3];
|
|
155
|
-
return [4 /*yield*/, config_1.getAuthConfig(target)];
|
|
159
|
+
return [4 /*yield*/, (0, config_1.getAuthConfig)(target)];
|
|
156
160
|
case 2:
|
|
157
161
|
authConfig = _d.sent();
|
|
158
162
|
_d.label = 3;
|
|
@@ -170,7 +174,7 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
|
|
|
170
174
|
sas9CredentialsError = process.sasjsConstants.sas9CredentialsError;
|
|
171
175
|
throw new Error(sas9CredentialsError);
|
|
172
176
|
}
|
|
173
|
-
password = utils_1.decodeFromBase64(password);
|
|
177
|
+
password = (0, utils_1.decodeFromBase64)(password);
|
|
174
178
|
}
|
|
175
179
|
result = {
|
|
176
180
|
sasjs_test_meta: []
|
|
@@ -183,7 +187,7 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
|
|
|
183
187
|
isCodeExamplePrinted = true;
|
|
184
188
|
}
|
|
185
189
|
};
|
|
186
|
-
return [4 /*yield*/, utils_1.asyncForEach(flow, function (test) { return __awaiter(_this, void 0, void 0, function () {
|
|
190
|
+
return [4 /*yield*/, (0, utils_1.asyncForEach)(flow, function (test) { return __awaiter(_this, void 0, void 0, function () {
|
|
187
191
|
var sasJobLocation, testTarget, testId, testUrl, printTestUrl;
|
|
188
192
|
var _this = this;
|
|
189
193
|
return __generator(this, function (_a) {
|
|
@@ -197,18 +201,18 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
|
|
|
197
201
|
.split('/')
|
|
198
202
|
.pop()
|
|
199
203
|
.replace(/(.test)?(.\d+)?(.sas)?$/i, '');
|
|
200
|
-
testId = utils_1.uuidv4();
|
|
201
|
-
testUrl = target.serverUrl
|
|
204
|
+
testId = (0, utils_1.uuidv4)();
|
|
205
|
+
testUrl = "".concat(target.serverUrl, "/").concat(target.serverType === utils_1.ServerType.SasViya
|
|
202
206
|
? 'SASJobExecution'
|
|
203
|
-
: 'SASStoredProcess'
|
|
207
|
+
: 'SASStoredProcess', "/?_program=").concat(sasJobLocation, "&_debug=2477");
|
|
204
208
|
if (target.contextName) {
|
|
205
|
-
testUrl = testUrl
|
|
209
|
+
testUrl = "".concat(testUrl, "&_contextName=").concat(encodeURIComponent(target.contextName));
|
|
206
210
|
}
|
|
207
|
-
printTestUrl = function () { return process.logger.info("Test URL: "
|
|
211
|
+
printTestUrl = function () { return process.logger.info("Test URL: ".concat(testUrl)); };
|
|
208
212
|
printTestUrl();
|
|
209
213
|
return [4 /*yield*/, sasjs
|
|
210
214
|
.request(sasJobLocation, {}, { username: username, password: password }, function () {
|
|
211
|
-
displayResult_1.displayError(null, 'Login callback called. Request failed.');
|
|
215
|
+
(0, displayResult_1.displayError)(null, 'Login callback called. Request failed.');
|
|
212
216
|
}, authConfig, ['log'])
|
|
213
217
|
.then(function (res) { return __awaiter(_this, void 0, void 0, function () {
|
|
214
218
|
var lineBreak, existingTestTarget, existingTestTarget;
|
|
@@ -218,7 +222,7 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
|
|
|
218
222
|
case 0:
|
|
219
223
|
lineBreak = true;
|
|
220
224
|
if (!res.result) {
|
|
221
|
-
displayResult_1.displayError({}, "Job did not return a response, to debug click "
|
|
225
|
+
(0, displayResult_1.displayError)({}, "Job did not return a response, to debug click ".concat(testUrl));
|
|
222
226
|
printCodeExample();
|
|
223
227
|
lineBreak = false;
|
|
224
228
|
existingTestTarget = result.sasjs_test_meta.find(function (testResult) {
|
|
@@ -249,7 +253,7 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
|
|
|
249
253
|
if (!((_a = res.result) === null || _a === void 0 ? void 0 : _a.test_results))
|
|
250
254
|
lineBreak = false;
|
|
251
255
|
if (!res.log) return [3 /*break*/, 2];
|
|
252
|
-
return [4 /*yield*/, saveOutput_1.saveLog(outDirectory, test, res.log, lineBreak)];
|
|
256
|
+
return [4 /*yield*/, (0, saveOutput_1.saveLog)(outDirectory, test, res.log, lineBreak)];
|
|
253
257
|
case 1:
|
|
254
258
|
_c.sent();
|
|
255
259
|
_c.label = 2;
|
|
@@ -281,7 +285,7 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
|
|
|
281
285
|
}
|
|
282
286
|
}
|
|
283
287
|
else {
|
|
284
|
-
displayResult_1.displayError({}, "'test_results' not found in server response, to debug click "
|
|
288
|
+
(0, displayResult_1.displayError)({}, "'test_results' not found in server response, to debug click ".concat(testUrl));
|
|
285
289
|
printCodeExample();
|
|
286
290
|
}
|
|
287
291
|
return [2 /*return*/];
|
|
@@ -295,13 +299,13 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
|
|
|
295
299
|
case 0:
|
|
296
300
|
printTestUrl();
|
|
297
301
|
if (err && err.errorCode === 404) {
|
|
298
|
-
utils_2.displaySasjsRunnerError(username);
|
|
302
|
+
(0, utils_2.displaySasjsRunnerError)(username);
|
|
299
303
|
}
|
|
300
304
|
else {
|
|
301
|
-
displayResult_1.displayError({}, "An error occurred while executing the request. Job location: "
|
|
305
|
+
(0, displayResult_1.displayError)({}, "An error occurred while executing the request. Job location: ".concat(sasJobLocation));
|
|
302
306
|
}
|
|
303
307
|
if (!((_b = (_a = err === null || err === void 0 ? void 0 : err.error) === null || _a === void 0 ? void 0 : _a.details) === null || _b === void 0 ? void 0 : _b.result)) return [3 /*break*/, 2];
|
|
304
|
-
return [4 /*yield*/, saveOutput_1.saveLog(outDirectory, test, err.error.details.result)];
|
|
308
|
+
return [4 /*yield*/, (0, saveOutput_1.saveLog)(outDirectory, test, err.error.details.result)];
|
|
305
309
|
case 1:
|
|
306
310
|
_c.sent();
|
|
307
311
|
_c.label = 2;
|
|
@@ -317,18 +321,18 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
|
|
|
317
321
|
}); })];
|
|
318
322
|
case 4:
|
|
319
323
|
_d.sent();
|
|
320
|
-
return [4 /*yield*/, saveOutput_1.saveResultJson(outDirectory, result)];
|
|
324
|
+
return [4 /*yield*/, (0, saveOutput_1.saveResultJson)(outDirectory, result)];
|
|
321
325
|
case 5:
|
|
322
326
|
jsonPath = _d.sent();
|
|
323
327
|
if (!jsonPath)
|
|
324
328
|
return [2 /*return*/];
|
|
325
|
-
return [4 /*yield*/, saveOutput_1.saveResultXml(outDirectory, result)];
|
|
329
|
+
return [4 /*yield*/, (0, saveOutput_1.saveResultXml)(outDirectory, result)];
|
|
326
330
|
case 6:
|
|
327
331
|
xmlPath = _d.sent();
|
|
328
|
-
return [4 /*yield*/, saveOutput_1.saveResultCsv(outDirectory, result)];
|
|
332
|
+
return [4 /*yield*/, (0, saveOutput_1.saveResultCsv)(outDirectory, result)];
|
|
329
333
|
case 7:
|
|
330
334
|
_c = _d.sent(), csvData = _c.csvData, csvPath = _c.csvPath;
|
|
331
|
-
return [4 /*yield*/, saveOutput_1.saveCoverageLcov(outDirectory, flow)];
|
|
335
|
+
return [4 /*yield*/, (0, saveOutput_1.saveCoverageLcov)(outDirectory, flow)];
|
|
332
336
|
case 8:
|
|
333
337
|
coverageReportPath = _d.sent();
|
|
334
338
|
resultTable = {};
|
|
@@ -354,9 +358,9 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
|
|
|
354
358
|
testsCount = flow.length;
|
|
355
359
|
passedTestsCount = Object.values(resultTable).filter(function (res) { return res.test_suite_result === types_1.TestResultStatus.pass; }).length;
|
|
356
360
|
testsWithResultsCount = Object.values(resultTable).filter(function (res) { return res.test_suite_result !== types_1.TestResultStatus.notProvided; }).length;
|
|
357
|
-
(_b = process.logger) === null || _b === void 0 ? void 0 : _b.info("Tests provided results: "
|
|
358
|
-
displayResult_1.displaySuccess("Tests execution finished. The results are stored at:\n "
|
|
359
|
-
displayResult_1.displaySuccess("Tests coverage report:\n "
|
|
361
|
+
(_b = process.logger) === null || _b === void 0 ? void 0 : _b.info("Tests provided results: ".concat(testsWithResultsCount + '/' + testsCount, " (").concat(chalk_1.default.greenBright(Math.round((testsWithResultsCount / testsCount) * 100 || 0) + '%'), ")\n Tests that pass: ").concat(passedTestsCount + '/' + testsWithResultsCount, " (").concat(chalk_1.default.greenBright(Math.round((passedTestsCount / testsWithResultsCount) * 100 || 0) + '%'), ")\n "));
|
|
362
|
+
(0, displayResult_1.displaySuccess)("Tests execution finished. The results are stored at:\n ".concat(jsonPath, "\n ").concat(csvPath, "\n ").concat(xmlPath));
|
|
363
|
+
(0, displayResult_1.displaySuccess)("Tests coverage report:\n ".concat(coverageReportPath));
|
|
360
364
|
return [2 /*return*/];
|
|
361
365
|
}
|
|
362
366
|
});
|
|
@@ -100,12 +100,12 @@ var TestCommand = /** @class */ (function (_super) {
|
|
|
100
100
|
case 1:
|
|
101
101
|
target = (_b.sent()).target;
|
|
102
102
|
_a = this.parsed, filteringString = _a.filteringString, outDirectory = _a.outDirectory, source = _a.source;
|
|
103
|
-
return [4 /*yield*/, test_1.runTest(target, filteringString, outDirectory, source)
|
|
103
|
+
return [4 /*yield*/, (0, test_1.runTest)(target, filteringString, outDirectory, source)
|
|
104
104
|
.then(function () {
|
|
105
105
|
return command_1.ReturnCode.Success;
|
|
106
106
|
})
|
|
107
107
|
.catch(function (err) {
|
|
108
|
-
utils_1.displayError(err, 'An error has occurred when running tests.');
|
|
108
|
+
(0, utils_1.displayError)(err, 'An error has occurred when running tests.');
|
|
109
109
|
return command_1.ReturnCode.InternalError;
|
|
110
110
|
})];
|
|
111
111
|
case 2: return [2 /*return*/, _b.sent()];
|
|
@@ -41,7 +41,7 @@ describe('printVersion', function () {
|
|
|
41
41
|
it('should return sasjs version', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
42
42
|
return __generator(this, function (_a) {
|
|
43
43
|
switch (_a.label) {
|
|
44
|
-
case 0: return [4 /*yield*/, expect(version_1.printVersion()).toResolve()];
|
|
44
|
+
case 0: return [4 /*yield*/, expect((0, version_1.printVersion)()).toResolve()];
|
|
45
45
|
case 1:
|
|
46
46
|
_a.sent();
|
|
47
47
|
return [2 /*return*/];
|
|
@@ -70,10 +70,14 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
70
70
|
}
|
|
71
71
|
return ar;
|
|
72
72
|
};
|
|
73
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
74
|
-
for (var i = 0,
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
74
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
75
|
+
if (ar || !(i in from)) {
|
|
76
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
77
|
+
ar[i] = from[i];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
77
81
|
};
|
|
78
82
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
79
83
|
var logger_1 = require("@sasjs/utils/logger");
|
|
@@ -86,7 +90,7 @@ describe('VersionCommand', function () {
|
|
|
86
90
|
setupMocks();
|
|
87
91
|
});
|
|
88
92
|
it('should parse a sasjs version command', function () {
|
|
89
|
-
var args = __spreadArray(__spreadArray([], __read(defaultArgs)), ['version']);
|
|
93
|
+
var args = __spreadArray(__spreadArray([], __read(defaultArgs), false), ['version'], false);
|
|
90
94
|
var command = new versionCommand_1.VersionCommand(args);
|
|
91
95
|
expect(command.name).toEqual('version');
|
|
92
96
|
});
|
|
@@ -95,7 +99,7 @@ describe('VersionCommand', function () {
|
|
|
95
99
|
return __generator(this, function (_a) {
|
|
96
100
|
switch (_a.label) {
|
|
97
101
|
case 0:
|
|
98
|
-
args = __spreadArray(__spreadArray([], __read(defaultArgs)), ['version']);
|
|
102
|
+
args = __spreadArray(__spreadArray([], __read(defaultArgs), false), ['version'], false);
|
|
99
103
|
command = new versionCommand_1.VersionCommand(args);
|
|
100
104
|
return [4 /*yield*/, command.execute()];
|
|
101
105
|
case 1:
|
|
@@ -111,7 +115,7 @@ describe('VersionCommand', function () {
|
|
|
111
115
|
return __generator(this, function (_a) {
|
|
112
116
|
switch (_a.label) {
|
|
113
117
|
case 0:
|
|
114
|
-
args = __spreadArray(__spreadArray([], __read(defaultArgs)), ['version']);
|
|
118
|
+
args = __spreadArray(__spreadArray([], __read(defaultArgs), false), ['version'], false);
|
|
115
119
|
jest
|
|
116
120
|
.spyOn(versionModule, 'printVersion')
|
|
117
121
|
.mockImplementation(function () { return Promise.reject(new Error('Test Error')); });
|
|
@@ -52,10 +52,10 @@ function printVersion() {
|
|
|
52
52
|
line = result.split('\n').find(function (l) { return l.includes('@sasjs/cli'); }) || '';
|
|
53
53
|
version = line.split('@')[2].trim();
|
|
54
54
|
message = version.includes('->')
|
|
55
|
-
? "You are using a linked version of SASjs CLI running from sources at "
|
|
55
|
+
? "You are using a linked version of SASjs CLI running from sources at ".concat(version
|
|
56
56
|
.replace('->', '')
|
|
57
|
-
.trim()
|
|
58
|
-
: "You are using SASjs CLI v"
|
|
57
|
+
.trim())
|
|
58
|
+
: "You are using SASjs CLI v".concat(version);
|
|
59
59
|
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.info(message);
|
|
60
60
|
return [2 /*return*/, message];
|
|
61
61
|
});
|
|
@@ -74,14 +74,14 @@ var VersionCommand = /** @class */ (function (_super) {
|
|
|
74
74
|
var _this = this;
|
|
75
75
|
return __generator(this, function (_a) {
|
|
76
76
|
switch (_a.label) {
|
|
77
|
-
case 0: return [4 /*yield*/, version_1.printVersion()
|
|
77
|
+
case 0: return [4 /*yield*/, (0, version_1.printVersion)()
|
|
78
78
|
.then(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
79
79
|
return __generator(this, function (_a) {
|
|
80
80
|
return [2 /*return*/, command_1.ReturnCode.Success];
|
|
81
81
|
});
|
|
82
82
|
}); })
|
|
83
83
|
.catch(function (err) {
|
|
84
|
-
utils_1.displayError(err, 'An error has occurred while checking version.');
|
|
84
|
+
(0, utils_1.displayError)(err, 'An error has occurred while checking version.');
|
|
85
85
|
return command_1.ReturnCode.InternalError;
|
|
86
86
|
})];
|
|
87
87
|
case 1: return [2 /*return*/, _a.sent()];
|