@sasjs/cli 3.18.2 → 3.19.0
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/build/commands/run/run.js +122 -64
- package/build/commands/run/runCommand.js +1 -1
- package/build/commands/run/spec/run.spec.server.sasjs.d.ts +1 -0
- package/build/commands/run/spec/run.spec.server.sasjs.js +100 -0
- package/build/commands/run/spec/testServices/logJob.d.ts +0 -0
- package/build/commands/run/spec/testServices/logJob.js +4 -0
- package/build/commands/testing/test.js +20 -16
- package/build/utils/test.js +6 -3
- package/package.json +2 -2
|
@@ -59,76 +59,66 @@ function runSasCode(target, filePath, compile) {
|
|
|
59
59
|
var _a;
|
|
60
60
|
if (compile === void 0) { compile = false; }
|
|
61
61
|
return __awaiter(this, void 0, void 0, function () {
|
|
62
|
-
var
|
|
63
|
-
var
|
|
64
|
-
return __generator(this, function (
|
|
65
|
-
switch (
|
|
62
|
+
var isTempFile, sourcefilePathParts, sourceFolderPath, sasFilePath, sasFileContent, linesToExecute, result;
|
|
63
|
+
var _b;
|
|
64
|
+
return __generator(this, function (_c) {
|
|
65
|
+
switch (_c.label) {
|
|
66
66
|
case 0:
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
return [4 /*yield*/,
|
|
71
|
-
.get(filePath)
|
|
72
|
-
.then(function (res) { return __awaiter(_this, void 0, void 0, function () {
|
|
73
|
-
var invalidSasError, content;
|
|
74
|
-
return __generator(this, function (_a) {
|
|
75
|
-
switch (_a.label) {
|
|
76
|
-
case 0:
|
|
77
|
-
invalidSasError = process.sasjsConstants.invalidSasError;
|
|
78
|
-
if (typeof res.data !== 'string') {
|
|
79
|
-
throw new Error(invalidSasError);
|
|
80
|
-
}
|
|
81
|
-
content = res.data.trim();
|
|
82
|
-
if (content && content.startsWith('<')) {
|
|
83
|
-
throw new Error(invalidSasError);
|
|
84
|
-
}
|
|
85
|
-
return [4 /*yield*/, (0, utils_1.createFile)(tempFilePath, content)];
|
|
86
|
-
case 1:
|
|
87
|
-
_a.sent();
|
|
88
|
-
isFileCreated = true;
|
|
89
|
-
return [2 /*return*/];
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
}); })
|
|
93
|
-
.catch(function (err) {
|
|
94
|
-
throw new Error("".concat(err.message, "\nUrl: ").concat(filePath));
|
|
95
|
-
})];
|
|
67
|
+
isTempFile = false;
|
|
68
|
+
if (!isUrl(filePath)) return [3 /*break*/, 2];
|
|
69
|
+
;
|
|
70
|
+
return [4 /*yield*/, createFileFromUrl(filePath)];
|
|
96
71
|
case 1:
|
|
97
|
-
_b.sent();
|
|
98
|
-
|
|
72
|
+
(_b = _c.sent(), isTempFile = _b.isTempFile, filePath = _b.tempFilePath);
|
|
73
|
+
_c.label = 2;
|
|
99
74
|
case 2:
|
|
100
|
-
if (
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
if (!/\.sas$/i.test(filePath)) {
|
|
104
|
-
throw new Error("'sasjs run' command supports only *.sas files.");
|
|
105
|
-
}
|
|
106
|
-
if (!compile) return [3 /*break*/, 4];
|
|
75
|
+
if (!compile) return [3 /*break*/, 5];
|
|
76
|
+
if (!/\.sas$/i.test(filePath)) return [3 /*break*/, 4];
|
|
107
77
|
sourcefilePathParts = path_1.default.normalize(filePath).split(path_1.default.sep);
|
|
108
78
|
sourcefilePathParts.splice(-1, 1);
|
|
109
79
|
sourceFolderPath = sourcefilePathParts.join(path_1.default.sep);
|
|
110
80
|
return [4 /*yield*/, (0, __1.compileSingleFile)(target, 'identify', filePath, (0, getDestinationPath_1.getDestinationServicePath)(sourceFolderPath), true)];
|
|
111
81
|
case 3:
|
|
112
|
-
(filePath = (
|
|
82
|
+
(filePath = (_c.sent()).destinationPath);
|
|
113
83
|
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.success("File Compiled and placed at: ".concat(filePath, " ."));
|
|
114
|
-
|
|
84
|
+
return [3 /*break*/, 5];
|
|
115
85
|
case 4:
|
|
86
|
+
process.logger.info('Compile flag has no effect on files with extension type other than sas');
|
|
87
|
+
_c.label = 5;
|
|
88
|
+
case 5:
|
|
116
89
|
sasFilePath = (0, utils_1.getAbsolutePath)(filePath, process.currentDir);
|
|
117
90
|
return [4 /*yield*/, (0, utils_1.readFile)(sasFilePath)];
|
|
118
|
-
case
|
|
119
|
-
sasFileContent =
|
|
91
|
+
case 6:
|
|
92
|
+
sasFileContent = _c.sent();
|
|
120
93
|
linesToExecute = sasFileContent.replace(/\r\n/g, '\n').split('\n');
|
|
121
|
-
if (!(target.serverType === utils_1.ServerType.SasViya)) return [3 /*break*/,
|
|
122
|
-
return [4 /*yield*/, executeOnSasViya(filePath,
|
|
123
|
-
case
|
|
124
|
-
|
|
125
|
-
|
|
94
|
+
if (!(target.serverType === utils_1.ServerType.SasViya)) return [3 /*break*/, 8];
|
|
95
|
+
return [4 /*yield*/, executeOnSasViya(filePath, target, linesToExecute)];
|
|
96
|
+
case 7:
|
|
97
|
+
result = _c.sent();
|
|
98
|
+
return [3 /*break*/, 12];
|
|
99
|
+
case 8:
|
|
100
|
+
if (!(target.serverType === utils_1.ServerType.Sas9)) return [3 /*break*/, 10];
|
|
101
|
+
return [4 /*yield*/, executeOnSas9(target, linesToExecute)];
|
|
102
|
+
case 9:
|
|
103
|
+
result = _c.sent();
|
|
104
|
+
return [3 /*break*/, 12];
|
|
105
|
+
case 10: return [4 /*yield*/, executeOnSasJS(filePath, target, linesToExecute)];
|
|
106
|
+
case 11:
|
|
107
|
+
result = _c.sent();
|
|
108
|
+
_c.label = 12;
|
|
109
|
+
case 12:
|
|
110
|
+
if (!isTempFile) return [3 /*break*/, 14];
|
|
111
|
+
return [4 /*yield*/, (0, utils_1.deleteFile)(filePath)];
|
|
112
|
+
case 13:
|
|
113
|
+
_c.sent();
|
|
114
|
+
_c.label = 14;
|
|
115
|
+
case 14: return [2 /*return*/, result];
|
|
126
116
|
}
|
|
127
117
|
});
|
|
128
118
|
});
|
|
129
119
|
}
|
|
130
120
|
exports.runSasCode = runSasCode;
|
|
131
|
-
function executeOnSasViya(filePath,
|
|
121
|
+
function executeOnSasViya(filePath, target, linesToExecute) {
|
|
132
122
|
var _a, _b, _c, _d, _e;
|
|
133
123
|
return __awaiter(this, void 0, void 0, function () {
|
|
134
124
|
var sasjs, contextName, authConfig, executionResult, log, isOutput, buildDestinationResultsFolder, createdFilePath;
|
|
@@ -192,17 +182,12 @@ function executeOnSasViya(filePath, isTempFile, target, linesToExecute) {
|
|
|
192
182
|
case 3:
|
|
193
183
|
createdFilePath = _f.sent();
|
|
194
184
|
(_e = process.logger) === null || _e === void 0 ? void 0 : _e.success("".concat(isOutput ? 'Output' : 'Log', " file has been created at ").concat(createdFilePath, " ."));
|
|
195
|
-
|
|
196
|
-
return [4 /*yield*/, (0, utils_1.deleteFile)(filePath)];
|
|
197
|
-
case 4:
|
|
198
|
-
_f.sent();
|
|
199
|
-
_f.label = 5;
|
|
200
|
-
case 5: return [2 /*return*/, { log: log }];
|
|
185
|
+
return [2 /*return*/, { log: log }];
|
|
201
186
|
}
|
|
202
187
|
});
|
|
203
188
|
});
|
|
204
189
|
}
|
|
205
|
-
function executeOnSas9(
|
|
190
|
+
function executeOnSas9(target, linesToExecute) {
|
|
206
191
|
var _a, _b, _c;
|
|
207
192
|
return __awaiter(this, void 0, void 0, function () {
|
|
208
193
|
var username, password, sas9CredentialsError, sasjs, buildDestinationResultsFolder, executionResult, createdFilePath;
|
|
@@ -263,12 +248,44 @@ function executeOnSas9(filePath, isTempFile, target, linesToExecute) {
|
|
|
263
248
|
case 2:
|
|
264
249
|
createdFilePath = _d.sent();
|
|
265
250
|
(_c = process.logger) === null || _c === void 0 ? void 0 : _c.success("Log file has been created at ".concat(createdFilePath, " ."));
|
|
266
|
-
|
|
267
|
-
|
|
251
|
+
return [2 /*return*/, { log: executionResult }];
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
function executeOnSasJS(filePath, target, linesToExecute) {
|
|
257
|
+
var _a, _b, _c;
|
|
258
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
259
|
+
var authConfig, buildDestinationResultsFolder, sasjs, fileExtension, executionResult, createdFilePath;
|
|
260
|
+
return __generator(this, function (_d) {
|
|
261
|
+
switch (_d.label) {
|
|
262
|
+
case 0: return [4 /*yield*/, (0, utils_2.isSasJsServerInServerMode)(target)];
|
|
263
|
+
case 1:
|
|
264
|
+
if (!_d.sent()) return [3 /*break*/, 3];
|
|
265
|
+
return [4 /*yield*/, (0, config_1.getAuthConfig)(target)];
|
|
266
|
+
case 2:
|
|
267
|
+
authConfig = _d.sent();
|
|
268
|
+
_d.label = 3;
|
|
268
269
|
case 3:
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
270
|
+
buildDestinationResultsFolder = process.sasjsConstants.buildDestinationResultsFolder;
|
|
271
|
+
sasjs = new node_1.default({
|
|
272
|
+
serverUrl: target.serverUrl,
|
|
273
|
+
httpsAgentOptions: target.httpsAgentOptions,
|
|
274
|
+
appLoc: target.appLoc,
|
|
275
|
+
serverType: target.serverType,
|
|
276
|
+
debug: true
|
|
277
|
+
});
|
|
278
|
+
fileExtension = path_1.default.extname(filePath).slice(1);
|
|
279
|
+
return [4 /*yield*/, sasjs.executeScriptSASjs(linesToExecute.join('\n'), fileExtension, authConfig)];
|
|
280
|
+
case 4:
|
|
281
|
+
executionResult = _d.sent();
|
|
282
|
+
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.success('Job execution completed!');
|
|
283
|
+
(_b = process.logger) === null || _b === void 0 ? void 0 : _b.info("Creating log file in ".concat(buildDestinationResultsFolder, " ."));
|
|
284
|
+
return [4 /*yield*/, createOutputFile(executionResult || '')];
|
|
285
|
+
case 5:
|
|
286
|
+
createdFilePath = _d.sent();
|
|
287
|
+
(_c = process.logger) === null || _c === void 0 ? void 0 : _c.success("Log file has been created at ".concat(createdFilePath, " ."));
|
|
288
|
+
return [2 /*return*/, { log: executionResult }];
|
|
272
289
|
}
|
|
273
290
|
});
|
|
274
291
|
});
|
|
@@ -290,3 +307,44 @@ function createOutputFile(log) {
|
|
|
290
307
|
});
|
|
291
308
|
});
|
|
292
309
|
}
|
|
310
|
+
function isUrl(filePath) {
|
|
311
|
+
return filePath.startsWith('https://') || filePath.startsWith('http://');
|
|
312
|
+
}
|
|
313
|
+
function createFileFromUrl(url) {
|
|
314
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
315
|
+
var _this = this;
|
|
316
|
+
return __generator(this, function (_a) {
|
|
317
|
+
switch (_a.label) {
|
|
318
|
+
case 0: return [4 /*yield*/, axios_1.default
|
|
319
|
+
.get(url)
|
|
320
|
+
.then(function (res) { return __awaiter(_this, void 0, void 0, function () {
|
|
321
|
+
var invalidSasError, content, urlWithoutQueryParams, fileExtension, tempFilePath;
|
|
322
|
+
return __generator(this, function (_a) {
|
|
323
|
+
switch (_a.label) {
|
|
324
|
+
case 0:
|
|
325
|
+
invalidSasError = process.sasjsConstants.invalidSasError;
|
|
326
|
+
if (typeof res.data !== 'string') {
|
|
327
|
+
throw new Error(invalidSasError);
|
|
328
|
+
}
|
|
329
|
+
content = res.data.trim();
|
|
330
|
+
if (content && content.startsWith('<')) {
|
|
331
|
+
throw new Error(invalidSasError);
|
|
332
|
+
}
|
|
333
|
+
urlWithoutQueryParams = url.split('?')[0];
|
|
334
|
+
fileExtension = path_1.default.extname(urlWithoutQueryParams);
|
|
335
|
+
tempFilePath = path_1.default.join(process.projectDir, "temp-".concat(Date.now()).concat(fileExtension));
|
|
336
|
+
return [4 /*yield*/, (0, utils_1.createFile)(tempFilePath, content)];
|
|
337
|
+
case 1:
|
|
338
|
+
_a.sent();
|
|
339
|
+
return [2 /*return*/, { isTempFile: true, tempFilePath: tempFilePath }];
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
}); })
|
|
343
|
+
.catch(function (err) {
|
|
344
|
+
throw new Error("".concat(err.message, "\nUrl: ").concat(url));
|
|
345
|
+
})];
|
|
346
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
347
|
+
}
|
|
348
|
+
});
|
|
349
|
+
});
|
|
350
|
+
}
|
|
@@ -83,7 +83,7 @@ var RunCommand = /** @class */ (function (_super) {
|
|
|
83
83
|
type: 'boolean',
|
|
84
84
|
alias: 'c',
|
|
85
85
|
default: false,
|
|
86
|
-
description: 'Used to
|
|
86
|
+
description: 'Used to compile the program prior to execution. Useful for including dependent macros and includes. More info here: https://cli.sasjs.io/compile'
|
|
87
87
|
}
|
|
88
88
|
},
|
|
89
89
|
syntax: syntax,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
var path_1 = __importDefault(require("path"));
|
|
43
|
+
var __1 = require("../..");
|
|
44
|
+
var utils_1 = require("@sasjs/utils");
|
|
45
|
+
var test_1 = require("../../../utils/test");
|
|
46
|
+
describe('sasjs run with server type sasjs', function () {
|
|
47
|
+
var target;
|
|
48
|
+
beforeEach(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
49
|
+
var appName;
|
|
50
|
+
return __generator(this, function (_a) {
|
|
51
|
+
switch (_a.label) {
|
|
52
|
+
case 0:
|
|
53
|
+
appName = 'cli-tests-run-sasjs' + (0, utils_1.generateTimestamp)();
|
|
54
|
+
return [4 /*yield*/, (0, test_1.createTestApp)(__dirname, appName)];
|
|
55
|
+
case 1:
|
|
56
|
+
_a.sent();
|
|
57
|
+
target = (0, test_1.generateTestTarget)(appName, "/Public/app/cli-tests/".concat(appName), {
|
|
58
|
+
serviceFolders: ['sasjs/testServices'],
|
|
59
|
+
initProgram: '',
|
|
60
|
+
termProgram: '',
|
|
61
|
+
macroVars: {}
|
|
62
|
+
}, utils_1.ServerType.Sasjs);
|
|
63
|
+
return [4 /*yield*/, (0, utils_1.copy)(path_1.default.join(__dirname, 'testServices'), path_1.default.join(process.projectDir, 'sasjs', 'testServices'))];
|
|
64
|
+
case 2:
|
|
65
|
+
_a.sent();
|
|
66
|
+
return [2 /*return*/];
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}); });
|
|
70
|
+
afterEach(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
71
|
+
return __generator(this, function (_a) {
|
|
72
|
+
switch (_a.label) {
|
|
73
|
+
case 0: return [4 /*yield*/, (0, test_1.removeTestApp)(__dirname, target.name)];
|
|
74
|
+
case 1:
|
|
75
|
+
_a.sent();
|
|
76
|
+
return [2 /*return*/];
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}); });
|
|
80
|
+
it('should run a file when a relative path is provided', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
81
|
+
return __generator(this, function (_a) {
|
|
82
|
+
switch (_a.label) {
|
|
83
|
+
case 0: return [4 /*yield*/, expect((0, __1.runSasCode)(target, 'sasjs/testServices/logJob.js')).toResolve()];
|
|
84
|
+
case 1:
|
|
85
|
+
_a.sent();
|
|
86
|
+
return [2 /*return*/];
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}); });
|
|
90
|
+
it('should run a file when an absolute path is provided', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
91
|
+
return __generator(this, function (_a) {
|
|
92
|
+
switch (_a.label) {
|
|
93
|
+
case 0: return [4 /*yield*/, expect((0, __1.runSasCode)(target, "".concat(process.projectDir, "/sasjs/testServices/logJob.js"))).toResolve()];
|
|
94
|
+
case 1:
|
|
95
|
+
_a.sent();
|
|
96
|
+
return [2 /*return*/];
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}); });
|
|
100
|
+
});
|
|
File without changes
|
|
@@ -163,11 +163,11 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath, force) {
|
|
|
163
163
|
case utils_1.ServerType.Sas9: return [3 /*break*/, 4];
|
|
164
164
|
case utils_1.ServerType.Sasjs: return [3 /*break*/, 5];
|
|
165
165
|
}
|
|
166
|
-
return [3 /*break*/,
|
|
166
|
+
return [3 /*break*/, 11];
|
|
167
167
|
case 2: return [4 /*yield*/, (0, config_1.getAuthConfig)(target)];
|
|
168
168
|
case 3:
|
|
169
169
|
authConfig = _e.sent();
|
|
170
|
-
return [3 /*break*/,
|
|
170
|
+
return [3 /*break*/, 11];
|
|
171
171
|
case 4:
|
|
172
172
|
if (target.authConfigSas9) {
|
|
173
173
|
username = target.authConfigSas9.userName;
|
|
@@ -182,19 +182,23 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath, force) {
|
|
|
182
182
|
throw new Error(sas9CredentialsError);
|
|
183
183
|
}
|
|
184
184
|
password = (0, utils_1.decodeFromBase64)(password);
|
|
185
|
-
return [3 /*break*/,
|
|
185
|
+
return [3 /*break*/, 11];
|
|
186
186
|
case 5:
|
|
187
|
-
_e.trys.push([5,
|
|
188
|
-
return [4 /*yield*/, (0,
|
|
187
|
+
_e.trys.push([5, 9, , 10]);
|
|
188
|
+
return [4 /*yield*/, (0, utils_2.isSasJsServerInServerMode)(target)];
|
|
189
189
|
case 6:
|
|
190
|
-
|
|
191
|
-
return [
|
|
190
|
+
if (!_e.sent()) return [3 /*break*/, 8];
|
|
191
|
+
return [4 /*yield*/, (0, config_1.getAuthConfig)(target)];
|
|
192
192
|
case 7:
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
case 8:
|
|
196
|
-
return [3 /*break*/, 9];
|
|
193
|
+
authConfig = _e.sent();
|
|
194
|
+
_e.label = 8;
|
|
195
|
+
case 8: return [3 /*break*/, 10];
|
|
197
196
|
case 9:
|
|
197
|
+
e_1 = _e.sent();
|
|
198
|
+
return [3 /*break*/, 10];
|
|
199
|
+
case 10: // FIXME: handle error properly
|
|
200
|
+
return [3 /*break*/, 11];
|
|
201
|
+
case 11:
|
|
198
202
|
result = {
|
|
199
203
|
sasjs_test_meta: []
|
|
200
204
|
};
|
|
@@ -337,21 +341,21 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath, force) {
|
|
|
337
341
|
}
|
|
338
342
|
});
|
|
339
343
|
}); })];
|
|
340
|
-
case
|
|
344
|
+
case 12:
|
|
341
345
|
_e.sent();
|
|
342
346
|
return [4 /*yield*/, (0, saveOutput_1.saveResultJson)(outDirectory, result)];
|
|
343
|
-
case
|
|
347
|
+
case 13:
|
|
344
348
|
jsonPath = _e.sent();
|
|
345
349
|
if (!jsonPath)
|
|
346
350
|
return [2 /*return*/];
|
|
347
351
|
return [4 /*yield*/, (0, saveOutput_1.saveResultXml)(outDirectory, result)];
|
|
348
|
-
case
|
|
352
|
+
case 14:
|
|
349
353
|
xmlPath = _e.sent();
|
|
350
354
|
return [4 /*yield*/, (0, saveOutput_1.saveResultCsv)(outDirectory, result)];
|
|
351
|
-
case
|
|
355
|
+
case 15:
|
|
352
356
|
_d = _e.sent(), csvData = _d.csvData, csvPath = _d.csvPath;
|
|
353
357
|
return [4 /*yield*/, (0, saveOutput_1.saveCoverageLcov)(outDirectory, flow)];
|
|
354
|
-
case
|
|
358
|
+
case 16:
|
|
355
359
|
coverageReportPath = _e.sent();
|
|
356
360
|
resultTable = {};
|
|
357
361
|
if (Array.isArray(csvData)) {
|
package/build/utils/test.js
CHANGED
|
@@ -177,12 +177,15 @@ var generateTestTarget = function (targetName, appLoc, serviceConfig, serverType
|
|
|
177
177
|
macroVars: {}
|
|
178
178
|
}; }
|
|
179
179
|
dotenv_1.default.config();
|
|
180
|
+
var serverUrl = process.env.SASJS_SERVER_URL;
|
|
181
|
+
if (serverType === types_1.ServerType.SasViya)
|
|
182
|
+
serverUrl = process.env.VIYA_SERVER_URL;
|
|
183
|
+
if (serverType === types_1.ServerType.Sas9)
|
|
184
|
+
serverUrl = process.env.SAS9_SERVER_URL;
|
|
180
185
|
var target = new types_1.Target({
|
|
181
186
|
name: targetName,
|
|
182
187
|
serverType: serverType,
|
|
183
|
-
serverUrl:
|
|
184
|
-
? process.env.VIYA_SERVER_URL
|
|
185
|
-
: process.env.SAS9_SERVER_URL),
|
|
188
|
+
serverUrl: serverUrl,
|
|
186
189
|
contextName: setConstants_1.contextName,
|
|
187
190
|
appLoc: appLoc,
|
|
188
191
|
authConfig: {
|
package/package.json
CHANGED
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"access": "public"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@sasjs/adapter": "3.10.
|
|
51
|
+
"@sasjs/adapter": "3.10.15",
|
|
52
52
|
"@sasjs/core": "4.35.3",
|
|
53
53
|
"@sasjs/lint": "1.12.0",
|
|
54
54
|
"@sasjs/utils": "2.47.0",
|
|
@@ -97,5 +97,5 @@
|
|
|
97
97
|
"typescript": "4.5.4",
|
|
98
98
|
"util": "0.12.4"
|
|
99
99
|
},
|
|
100
|
-
"version": "3.
|
|
100
|
+
"version": "3.19.0"
|
|
101
101
|
}
|