@sasjs/cli 3.9.0 → 3.10.2
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/compile/compile.d.ts +2 -1
- package/build/commands/compile/compile.js +26 -20
- package/build/commands/compile/compileSingleFile.js +9 -4
- package/build/commands/compile/internal/compileJobFile.d.ts +2 -1
- package/build/commands/compile/internal/compileJobFile.js +2 -2
- package/build/commands/compile/internal/compileServiceFile.d.ts +2 -1
- package/build/commands/compile/internal/compileServiceFile.js +2 -2
- package/build/commands/compile/internal/compileTestFile.d.ts +2 -2
- package/build/commands/compile/internal/compileTestFile.js +3 -2
- package/build/commands/compile/internal/loadDependencies.d.ts +3 -2
- package/build/commands/compile/internal/loadDependencies.js +37 -16
- package/build/commands/compile/internal/spec/compileTestFile.spec.js +2 -2
- package/build/commands/compile/spec/compileJobFile.spec.js +6 -4
- package/build/commands/compile/spec/compileServiceFile.spec.js +6 -4
- package/build/commands/compile/spec/loadDependencies.spec.js +38 -32
- package/build/commands/docs/generateDocs.js +3 -7
- package/build/commands/docs/internal/getFileInputs.js +1 -1
- package/build/commands/docs/internal/getFileOutputs.js +1 -1
- package/build/commands/help/help.js +2 -2
- package/build/commands/request/request.js +38 -26
- package/build/commands/request/spec/request.spec.server.js +155 -68
- package/build/commands/testing/test.js +4 -2
- package/build/utils/config.js +3 -4
- package/build/utils/displayResult.js +1 -1
- package/build/utils/spec/removeComments.spec.d.ts +1 -1
- package/build/utils/spec/removeComments.spec.js +2 -1
- package/build/utils/utils.d.ts +8 -1
- package/build/utils/utils.js +42 -4
- package/package.json +2 -2
|
@@ -10,6 +10,25 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
|
+
if (mod && mod.__esModule) return mod;
|
|
27
|
+
var result = {};
|
|
28
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
29
|
+
__setModuleDefault(result, mod);
|
|
30
|
+
return result;
|
|
31
|
+
};
|
|
13
32
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
33
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
34
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -54,6 +73,7 @@ var path_1 = __importDefault(require("path"));
|
|
|
54
73
|
var utils_1 = require("@sasjs/utils");
|
|
55
74
|
var utils_2 = require("@sasjs/utils");
|
|
56
75
|
var test_1 = require("../../../utils/test");
|
|
76
|
+
var timeStampUtils = __importStar(require("@sasjs/utils/time"));
|
|
57
77
|
var config_1 = require("../../../utils/config");
|
|
58
78
|
var request_1 = require("../request");
|
|
59
79
|
var build_1 = require("../../build/build");
|
|
@@ -92,14 +112,17 @@ var expectedDataObj = {
|
|
|
92
112
|
}
|
|
93
113
|
]
|
|
94
114
|
};
|
|
95
|
-
var getOutputJson = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
115
|
+
var getOutputJson = function (fileName) { return __awaiter(void 0, void 0, void 0, function () {
|
|
116
|
+
var _a, _b;
|
|
117
|
+
return __generator(this, function (_c) {
|
|
118
|
+
switch (_c.label) {
|
|
119
|
+
case 0:
|
|
120
|
+
_b = (_a = JSON).parse;
|
|
121
|
+
return [4 /*yield*/, (0, utils_1.readFile)(path_1.default.join(process.sasjsConstants.buildDestinationResultsFolder, 'requests', fileName))];
|
|
122
|
+
case 1: return [2 /*return*/, _b.apply(_a, [_c.sent()])];
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}); };
|
|
103
126
|
describe('sasjs request without compute API', function () {
|
|
104
127
|
var appName = 'cli-tests-request-' + (0, utils_2.generateTimestamp)();
|
|
105
128
|
var target = (0, test_1.generateTestTarget)(appName, "/Public/app/cli-tests/".concat(appName), {
|
|
@@ -165,18 +188,24 @@ describe('sasjs request without compute API', function () {
|
|
|
165
188
|
});
|
|
166
189
|
}); });
|
|
167
190
|
it("should execute service 'sendArr' with absolute path", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
168
|
-
var _a, _b;
|
|
191
|
+
var timestamp, outputFilename, _a, _b;
|
|
169
192
|
return __generator(this, function (_c) {
|
|
170
193
|
switch (_c.label) {
|
|
171
|
-
case 0:
|
|
194
|
+
case 0:
|
|
195
|
+
timestamp = (0, utils_2.generateTimestamp)();
|
|
196
|
+
jest
|
|
197
|
+
.spyOn(timeStampUtils, 'generateTimestamp')
|
|
198
|
+
.mockImplementationOnce(function () { return timestamp; });
|
|
199
|
+
outputFilename = "sendArr-".concat(timestamp, ".json");
|
|
200
|
+
return [4 /*yield*/, expect((0, request_1.runSasJob)(target, false, "/Public/app/cli-tests/".concat(target.name, "/services/runRequest/sendArr"), dataPathRel, undefined, authConfig)).toResolve()];
|
|
172
201
|
case 1:
|
|
173
202
|
_c.sent();
|
|
174
203
|
_a = expect;
|
|
175
|
-
return [4 /*yield*/, getOutputJson()];
|
|
204
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
176
205
|
case 2:
|
|
177
206
|
_a.apply(void 0, [(_c.sent()).table1]).toEqual(expectedDataArr.table1);
|
|
178
207
|
_b = expect;
|
|
179
|
-
return [4 /*yield*/, getOutputJson()];
|
|
208
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
180
209
|
case 3:
|
|
181
210
|
_b.apply(void 0, [(_c.sent()).table2]).toEqual(expectedDataArr.table2);
|
|
182
211
|
return [2 /*return*/];
|
|
@@ -184,18 +213,24 @@ describe('sasjs request without compute API', function () {
|
|
|
184
213
|
});
|
|
185
214
|
}); });
|
|
186
215
|
it("should execute service 'sendObj' with absolute path", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
187
|
-
var _a, _b;
|
|
216
|
+
var timestamp, outputFilename, _a, _b;
|
|
188
217
|
return __generator(this, function (_c) {
|
|
189
218
|
switch (_c.label) {
|
|
190
|
-
case 0:
|
|
219
|
+
case 0:
|
|
220
|
+
timestamp = (0, utils_2.generateTimestamp)();
|
|
221
|
+
jest
|
|
222
|
+
.spyOn(timeStampUtils, 'generateTimestamp')
|
|
223
|
+
.mockImplementationOnce(function () { return timestamp; });
|
|
224
|
+
outputFilename = "sendObj-".concat(timestamp, ".json");
|
|
225
|
+
return [4 /*yield*/, expect((0, request_1.runSasJob)(target, false, "/Public/app/cli-tests/".concat(target.name, "/services/runRequest/sendObj"), dataPathRel, undefined, authConfig)).toResolve()];
|
|
191
226
|
case 1:
|
|
192
227
|
_c.sent();
|
|
193
228
|
_a = expect;
|
|
194
|
-
return [4 /*yield*/, getOutputJson()];
|
|
229
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
195
230
|
case 2:
|
|
196
231
|
_a.apply(void 0, [(_c.sent()).table1]).toEqual(expectedDataObj.table1);
|
|
197
232
|
_b = expect;
|
|
198
|
-
return [4 /*yield*/, getOutputJson()];
|
|
233
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
199
234
|
case 3:
|
|
200
235
|
_b.apply(void 0, [(_c.sent()).table2]).toEqual(expectedDataObj.table2);
|
|
201
236
|
return [2 /*return*/];
|
|
@@ -203,18 +238,24 @@ describe('sasjs request without compute API', function () {
|
|
|
203
238
|
});
|
|
204
239
|
}); });
|
|
205
240
|
it("should execute service 'sendArr' with relative path", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
206
|
-
var _a, _b;
|
|
241
|
+
var timestamp, outputFilename, _a, _b;
|
|
207
242
|
return __generator(this, function (_c) {
|
|
208
243
|
switch (_c.label) {
|
|
209
|
-
case 0:
|
|
244
|
+
case 0:
|
|
245
|
+
timestamp = (0, utils_2.generateTimestamp)();
|
|
246
|
+
jest
|
|
247
|
+
.spyOn(timeStampUtils, 'generateTimestamp')
|
|
248
|
+
.mockImplementationOnce(function () { return timestamp; });
|
|
249
|
+
outputFilename = "sendArr-".concat(timestamp, ".json");
|
|
250
|
+
return [4 /*yield*/, expect((0, request_1.runSasJob)(target, false, 'services/runRequest/sendArr', dataPathRel, undefined, authConfig)).toResolve()];
|
|
210
251
|
case 1:
|
|
211
252
|
_c.sent();
|
|
212
253
|
_a = expect;
|
|
213
|
-
return [4 /*yield*/, getOutputJson()];
|
|
254
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
214
255
|
case 2:
|
|
215
256
|
_a.apply(void 0, [(_c.sent()).table1]).toEqual(expectedDataArr.table1);
|
|
216
257
|
_b = expect;
|
|
217
|
-
return [4 /*yield*/, getOutputJson()];
|
|
258
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
218
259
|
case 3:
|
|
219
260
|
_b.apply(void 0, [(_c.sent()).table2]).toEqual(expectedDataArr.table2);
|
|
220
261
|
return [2 /*return*/];
|
|
@@ -222,18 +263,24 @@ describe('sasjs request without compute API', function () {
|
|
|
222
263
|
});
|
|
223
264
|
}); });
|
|
224
265
|
it("should execute service 'sendObj' with relative path", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
225
|
-
var _a, _b;
|
|
266
|
+
var timestamp, outputFilename, _a, _b;
|
|
226
267
|
return __generator(this, function (_c) {
|
|
227
268
|
switch (_c.label) {
|
|
228
|
-
case 0:
|
|
269
|
+
case 0:
|
|
270
|
+
timestamp = (0, utils_2.generateTimestamp)();
|
|
271
|
+
jest
|
|
272
|
+
.spyOn(timeStampUtils, 'generateTimestamp')
|
|
273
|
+
.mockImplementationOnce(function () { return timestamp; });
|
|
274
|
+
outputFilename = "sendObj-".concat(timestamp, ".json");
|
|
275
|
+
return [4 /*yield*/, expect((0, request_1.runSasJob)(target, false, 'services/runRequest/sendObj', dataPathRel, undefined, authConfig)).toResolve()];
|
|
229
276
|
case 1:
|
|
230
277
|
_c.sent();
|
|
231
278
|
_a = expect;
|
|
232
|
-
return [4 /*yield*/, getOutputJson()];
|
|
279
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
233
280
|
case 2:
|
|
234
281
|
_a.apply(void 0, [(_c.sent()).table1]).toEqual(expectedDataObj.table1);
|
|
235
282
|
_b = expect;
|
|
236
|
-
return [4 /*yield*/, getOutputJson()];
|
|
283
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
237
284
|
case 3:
|
|
238
285
|
_b.apply(void 0, [(_c.sent()).table2]).toEqual(expectedDataObj.table2);
|
|
239
286
|
return [2 /*return*/];
|
|
@@ -258,7 +305,7 @@ describe('sasjs request without compute API', function () {
|
|
|
258
305
|
});
|
|
259
306
|
}); });
|
|
260
307
|
it("should execute service 'err' with absolute path with log path", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
261
|
-
var jobPath, log, rawLogDataStats
|
|
308
|
+
var jobPath, log, rawLogDataStats;
|
|
262
309
|
return __generator(this, function (_a) {
|
|
263
310
|
switch (_a.label) {
|
|
264
311
|
case 0:
|
|
@@ -268,15 +315,13 @@ describe('sasjs request without compute API', function () {
|
|
|
268
315
|
case 1:
|
|
269
316
|
_a.sent();
|
|
270
317
|
rawLogDataStats = (0, fs_1.statSync)(log);
|
|
271
|
-
rawDataStats = (0, fs_1.statSync)(path_1.default.join(process.projectDir, 'output.json'));
|
|
272
318
|
expect(rawLogDataStats.size).toBeGreaterThan(10);
|
|
273
|
-
expect(rawDataStats.size).toBeGreaterThan(10);
|
|
274
319
|
return [2 /*return*/];
|
|
275
320
|
}
|
|
276
321
|
});
|
|
277
322
|
}); });
|
|
278
323
|
it("should execute service 'err' with absolute path with default log path", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
279
|
-
var jobPath, log, rawLogDataStats
|
|
324
|
+
var jobPath, log, rawLogDataStats;
|
|
280
325
|
return __generator(this, function (_a) {
|
|
281
326
|
switch (_a.label) {
|
|
282
327
|
case 0:
|
|
@@ -286,9 +331,7 @@ describe('sasjs request without compute API', function () {
|
|
|
286
331
|
case 1:
|
|
287
332
|
_a.sent();
|
|
288
333
|
rawLogDataStats = (0, fs_1.statSync)(log);
|
|
289
|
-
rawDataStats = (0, fs_1.statSync)(path_1.default.join(process.projectDir, 'output.json'));
|
|
290
334
|
expect(rawLogDataStats.size).toBeGreaterThan(10);
|
|
291
|
-
expect(rawDataStats.size).toBeGreaterThan(10);
|
|
292
335
|
return [2 /*return*/];
|
|
293
336
|
}
|
|
294
337
|
});
|
|
@@ -355,18 +398,24 @@ describe('sasjs request with SAS9', function () {
|
|
|
355
398
|
});
|
|
356
399
|
}); });
|
|
357
400
|
it("should execute service 'sendArr' with absolute path", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
358
|
-
var _a, _b;
|
|
401
|
+
var timestamp, outputFilename, _a, _b;
|
|
359
402
|
return __generator(this, function (_c) {
|
|
360
403
|
switch (_c.label) {
|
|
361
|
-
case 0:
|
|
404
|
+
case 0:
|
|
405
|
+
timestamp = (0, utils_2.generateTimestamp)();
|
|
406
|
+
jest
|
|
407
|
+
.spyOn(timeStampUtils, 'generateTimestamp')
|
|
408
|
+
.mockImplementationOnce(function () { return timestamp; });
|
|
409
|
+
outputFilename = "sendArr-".concat(timestamp, ".json");
|
|
410
|
+
return [4 /*yield*/, expect((0, request_1.runSasJob)(target, false, "/Public/app/cli-tests/".concat(target.name, "/services/runRequest/sendArr"), dataPathRel)).toResolve()];
|
|
362
411
|
case 1:
|
|
363
412
|
_c.sent();
|
|
364
413
|
_a = expect;
|
|
365
|
-
return [4 /*yield*/, getOutputJson()];
|
|
414
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
366
415
|
case 2:
|
|
367
416
|
_a.apply(void 0, [(_c.sent()).table1]).toEqual(expectedDataArr.table1);
|
|
368
417
|
_b = expect;
|
|
369
|
-
return [4 /*yield*/, getOutputJson()];
|
|
418
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
370
419
|
case 3:
|
|
371
420
|
_b.apply(void 0, [(_c.sent()).table2]).toEqual(expectedDataArr.table2);
|
|
372
421
|
return [2 /*return*/];
|
|
@@ -374,18 +423,24 @@ describe('sasjs request with SAS9', function () {
|
|
|
374
423
|
});
|
|
375
424
|
}); });
|
|
376
425
|
it("should execute service 'sendObj' with absolute path", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
377
|
-
var _a, _b;
|
|
426
|
+
var timestamp, outputFilename, _a, _b;
|
|
378
427
|
return __generator(this, function (_c) {
|
|
379
428
|
switch (_c.label) {
|
|
380
|
-
case 0:
|
|
429
|
+
case 0:
|
|
430
|
+
timestamp = (0, utils_2.generateTimestamp)();
|
|
431
|
+
jest
|
|
432
|
+
.spyOn(timeStampUtils, 'generateTimestamp')
|
|
433
|
+
.mockImplementationOnce(function () { return timestamp; });
|
|
434
|
+
outputFilename = "sendObj-".concat(timestamp, ".json");
|
|
435
|
+
return [4 /*yield*/, expect((0, request_1.runSasJob)(target, false, "/Public/app/cli-tests/".concat(target.name, "/services/runRequest/sendObj"), dataPathRel)).toResolve()];
|
|
381
436
|
case 1:
|
|
382
437
|
_c.sent();
|
|
383
438
|
_a = expect;
|
|
384
|
-
return [4 /*yield*/, getOutputJson()];
|
|
439
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
385
440
|
case 2:
|
|
386
441
|
_a.apply(void 0, [(_c.sent()).table1]).toEqual(expectedDataObj.table1);
|
|
387
442
|
_b = expect;
|
|
388
|
-
return [4 /*yield*/, getOutputJson()];
|
|
443
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
389
444
|
case 3:
|
|
390
445
|
_b.apply(void 0, [(_c.sent()).table2]).toEqual(expectedDataObj.table2);
|
|
391
446
|
return [2 /*return*/];
|
|
@@ -393,18 +448,24 @@ describe('sasjs request with SAS9', function () {
|
|
|
393
448
|
});
|
|
394
449
|
}); });
|
|
395
450
|
it("should execute service 'sendArr' with relative path", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
396
|
-
var _a, _b;
|
|
451
|
+
var timestamp, outputFilename, _a, _b;
|
|
397
452
|
return __generator(this, function (_c) {
|
|
398
453
|
switch (_c.label) {
|
|
399
|
-
case 0:
|
|
454
|
+
case 0:
|
|
455
|
+
timestamp = (0, utils_2.generateTimestamp)();
|
|
456
|
+
jest
|
|
457
|
+
.spyOn(timeStampUtils, 'generateTimestamp')
|
|
458
|
+
.mockImplementationOnce(function () { return timestamp; });
|
|
459
|
+
outputFilename = "sendArr-".concat(timestamp, ".json");
|
|
460
|
+
return [4 /*yield*/, expect((0, request_1.runSasJob)(target, false, 'services/runRequest/sendArr', dataPathRel)).toResolve()];
|
|
400
461
|
case 1:
|
|
401
462
|
_c.sent();
|
|
402
463
|
_a = expect;
|
|
403
|
-
return [4 /*yield*/, getOutputJson()];
|
|
464
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
404
465
|
case 2:
|
|
405
466
|
_a.apply(void 0, [(_c.sent()).table1]).toEqual(expectedDataArr.table1);
|
|
406
467
|
_b = expect;
|
|
407
|
-
return [4 /*yield*/, getOutputJson()];
|
|
468
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
408
469
|
case 3:
|
|
409
470
|
_b.apply(void 0, [(_c.sent()).table2]).toEqual(expectedDataArr.table2);
|
|
410
471
|
return [2 /*return*/];
|
|
@@ -412,18 +473,24 @@ describe('sasjs request with SAS9', function () {
|
|
|
412
473
|
});
|
|
413
474
|
}); });
|
|
414
475
|
it("should execute service 'sendObj' with relative path", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
415
|
-
var _a, _b;
|
|
476
|
+
var timestamp, outputFilename, _a, _b;
|
|
416
477
|
return __generator(this, function (_c) {
|
|
417
478
|
switch (_c.label) {
|
|
418
|
-
case 0:
|
|
479
|
+
case 0:
|
|
480
|
+
timestamp = (0, utils_2.generateTimestamp)();
|
|
481
|
+
jest
|
|
482
|
+
.spyOn(timeStampUtils, 'generateTimestamp')
|
|
483
|
+
.mockImplementationOnce(function () { return timestamp; });
|
|
484
|
+
outputFilename = "sendObj-".concat(timestamp, ".json");
|
|
485
|
+
return [4 /*yield*/, expect((0, request_1.runSasJob)(target, false, 'services/runRequest/sendObj', dataPathRel)).toResolve()];
|
|
419
486
|
case 1:
|
|
420
487
|
_c.sent();
|
|
421
488
|
_a = expect;
|
|
422
|
-
return [4 /*yield*/, getOutputJson()];
|
|
489
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
423
490
|
case 2:
|
|
424
491
|
_a.apply(void 0, [(_c.sent()).table1]).toEqual(expectedDataObj.table1);
|
|
425
492
|
_b = expect;
|
|
426
|
-
return [4 /*yield*/, getOutputJson()];
|
|
493
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
427
494
|
case 3:
|
|
428
495
|
_b.apply(void 0, [(_c.sent()).table2]).toEqual(expectedDataObj.table2);
|
|
429
496
|
return [2 /*return*/];
|
|
@@ -448,7 +515,7 @@ describe('sasjs request with SAS9', function () {
|
|
|
448
515
|
});
|
|
449
516
|
}); });
|
|
450
517
|
it("should execute service 'err' with absolute path with log path", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
451
|
-
var jobPath, log, rawLogDataStats
|
|
518
|
+
var jobPath, log, rawLogDataStats;
|
|
452
519
|
return __generator(this, function (_a) {
|
|
453
520
|
switch (_a.label) {
|
|
454
521
|
case 0:
|
|
@@ -458,15 +525,13 @@ describe('sasjs request with SAS9', function () {
|
|
|
458
525
|
case 1:
|
|
459
526
|
_a.sent();
|
|
460
527
|
rawLogDataStats = (0, fs_1.statSync)(log);
|
|
461
|
-
rawDataStats = (0, fs_1.statSync)(path_1.default.join(process.projectDir, 'output.json'));
|
|
462
528
|
expect(rawLogDataStats.size).toBeGreaterThan(10);
|
|
463
|
-
expect(rawDataStats.size).toBeGreaterThan(10);
|
|
464
529
|
return [2 /*return*/];
|
|
465
530
|
}
|
|
466
531
|
});
|
|
467
532
|
}); });
|
|
468
533
|
it("should execute service 'err' with absolute path with default log path", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
469
|
-
var jobPath, log, rawLogDataStats
|
|
534
|
+
var jobPath, log, rawLogDataStats;
|
|
470
535
|
return __generator(this, function (_a) {
|
|
471
536
|
switch (_a.label) {
|
|
472
537
|
case 0:
|
|
@@ -476,9 +541,7 @@ describe('sasjs request with SAS9', function () {
|
|
|
476
541
|
case 1:
|
|
477
542
|
_a.sent();
|
|
478
543
|
rawLogDataStats = (0, fs_1.statSync)(log);
|
|
479
|
-
rawDataStats = (0, fs_1.statSync)(path_1.default.join(process.projectDir, 'output.json'));
|
|
480
544
|
expect(rawLogDataStats.size).toBeGreaterThan(10);
|
|
481
|
-
expect(rawDataStats.size).toBeGreaterThan(10);
|
|
482
545
|
return [2 /*return*/];
|
|
483
546
|
}
|
|
484
547
|
});
|
|
@@ -544,18 +607,24 @@ describe("sasjs request with compute API", function () {
|
|
|
544
607
|
});
|
|
545
608
|
}); });
|
|
546
609
|
it("should execute service 'sendArr' with absolute path", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
547
|
-
var _a, _b;
|
|
610
|
+
var timestamp, outputFilename, _a, _b;
|
|
548
611
|
return __generator(this, function (_c) {
|
|
549
612
|
switch (_c.label) {
|
|
550
|
-
case 0:
|
|
613
|
+
case 0:
|
|
614
|
+
timestamp = (0, utils_2.generateTimestamp)();
|
|
615
|
+
jest
|
|
616
|
+
.spyOn(timeStampUtils, 'generateTimestamp')
|
|
617
|
+
.mockImplementationOnce(function () { return timestamp; });
|
|
618
|
+
outputFilename = "sendArr-".concat(timestamp, ".json");
|
|
619
|
+
return [4 /*yield*/, expect((0, request_1.runSasJob)(target, false, "/Public/app/cli-tests/".concat(target.name, "/services/runRequest/sendArr"), dataPathRel, configPathRel, authConfig)).toResolve()];
|
|
551
620
|
case 1:
|
|
552
621
|
_c.sent();
|
|
553
622
|
_a = expect;
|
|
554
|
-
return [4 /*yield*/, getOutputJson()];
|
|
623
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
555
624
|
case 2:
|
|
556
625
|
_a.apply(void 0, [(_c.sent()).table1]).toEqual(expectedDataArr.table1);
|
|
557
626
|
_b = expect;
|
|
558
|
-
return [4 /*yield*/, getOutputJson()];
|
|
627
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
559
628
|
case 3:
|
|
560
629
|
_b.apply(void 0, [(_c.sent()).table2]).toEqual(expectedDataArr.table2);
|
|
561
630
|
return [2 /*return*/];
|
|
@@ -563,18 +632,24 @@ describe("sasjs request with compute API", function () {
|
|
|
563
632
|
});
|
|
564
633
|
}); });
|
|
565
634
|
it("should execute service 'sendObj' with absolute path", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
566
|
-
var _a, _b;
|
|
635
|
+
var timestamp, outputFilename, _a, _b;
|
|
567
636
|
return __generator(this, function (_c) {
|
|
568
637
|
switch (_c.label) {
|
|
569
|
-
case 0:
|
|
638
|
+
case 0:
|
|
639
|
+
timestamp = (0, utils_2.generateTimestamp)();
|
|
640
|
+
jest
|
|
641
|
+
.spyOn(timeStampUtils, 'generateTimestamp')
|
|
642
|
+
.mockImplementationOnce(function () { return timestamp; });
|
|
643
|
+
outputFilename = "sendObj-".concat(timestamp, ".json");
|
|
644
|
+
return [4 /*yield*/, expect((0, request_1.runSasJob)(target, false, "/Public/app/cli-tests/".concat(target.name, "/services/runRequest/sendObj"), dataPathRel, configPathRel, authConfig)).toResolve()];
|
|
570
645
|
case 1:
|
|
571
646
|
_c.sent();
|
|
572
647
|
_a = expect;
|
|
573
|
-
return [4 /*yield*/, getOutputJson()];
|
|
648
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
574
649
|
case 2:
|
|
575
650
|
_a.apply(void 0, [(_c.sent()).table1]).toEqual(expectedDataObj.table1);
|
|
576
651
|
_b = expect;
|
|
577
|
-
return [4 /*yield*/, getOutputJson()];
|
|
652
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
578
653
|
case 3:
|
|
579
654
|
_b.apply(void 0, [(_c.sent()).table2]).toEqual(expectedDataObj.table2);
|
|
580
655
|
return [2 /*return*/];
|
|
@@ -582,18 +657,24 @@ describe("sasjs request with compute API", function () {
|
|
|
582
657
|
});
|
|
583
658
|
}); });
|
|
584
659
|
it("should execute service 'sendArr' with relative path", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
585
|
-
var _a, _b;
|
|
660
|
+
var timestamp, outputFilename, _a, _b;
|
|
586
661
|
return __generator(this, function (_c) {
|
|
587
662
|
switch (_c.label) {
|
|
588
|
-
case 0:
|
|
663
|
+
case 0:
|
|
664
|
+
timestamp = (0, utils_2.generateTimestamp)();
|
|
665
|
+
jest
|
|
666
|
+
.spyOn(timeStampUtils, 'generateTimestamp')
|
|
667
|
+
.mockImplementationOnce(function () { return timestamp; });
|
|
668
|
+
outputFilename = "sendArr-".concat(timestamp, ".json");
|
|
669
|
+
return [4 /*yield*/, expect((0, request_1.runSasJob)(target, false, 'services/runRequest/sendArr', dataPathRel, undefined, authConfig)).toResolve()];
|
|
589
670
|
case 1:
|
|
590
671
|
_c.sent();
|
|
591
672
|
_a = expect;
|
|
592
|
-
return [4 /*yield*/, getOutputJson()];
|
|
673
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
593
674
|
case 2:
|
|
594
675
|
_a.apply(void 0, [(_c.sent()).table1]).toEqual(expectedDataArr.table1);
|
|
595
676
|
_b = expect;
|
|
596
|
-
return [4 /*yield*/, getOutputJson()];
|
|
677
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
597
678
|
case 3:
|
|
598
679
|
_b.apply(void 0, [(_c.sent()).table2]).toEqual(expectedDataArr.table2);
|
|
599
680
|
return [2 /*return*/];
|
|
@@ -601,18 +682,24 @@ describe("sasjs request with compute API", function () {
|
|
|
601
682
|
});
|
|
602
683
|
}); });
|
|
603
684
|
it("should execute service 'sendObj' with relative path", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
604
|
-
var _a, _b;
|
|
685
|
+
var timestamp, outputFilename, _a, _b;
|
|
605
686
|
return __generator(this, function (_c) {
|
|
606
687
|
switch (_c.label) {
|
|
607
|
-
case 0:
|
|
688
|
+
case 0:
|
|
689
|
+
timestamp = (0, utils_2.generateTimestamp)();
|
|
690
|
+
jest
|
|
691
|
+
.spyOn(timeStampUtils, 'generateTimestamp')
|
|
692
|
+
.mockImplementationOnce(function () { return timestamp; });
|
|
693
|
+
outputFilename = "sendObj-".concat(timestamp, ".json");
|
|
694
|
+
return [4 /*yield*/, expect((0, request_1.runSasJob)(target, false, 'services/runRequest/sendObj', dataPathRel, undefined, authConfig)).toResolve()];
|
|
608
695
|
case 1:
|
|
609
696
|
_c.sent();
|
|
610
697
|
_a = expect;
|
|
611
|
-
return [4 /*yield*/, getOutputJson()];
|
|
698
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
612
699
|
case 2:
|
|
613
700
|
_a.apply(void 0, [(_c.sent()).table1]).toEqual(expectedDataObj.table1);
|
|
614
701
|
_b = expect;
|
|
615
|
-
return [4 /*yield*/, getOutputJson()];
|
|
702
|
+
return [4 /*yield*/, getOutputJson(outputFilename)];
|
|
616
703
|
case 3:
|
|
617
704
|
_b.apply(void 0, [(_c.sent()).table2]).toEqual(expectedDataObj.table2);
|
|
618
705
|
return [2 /*return*/];
|
|
@@ -122,7 +122,7 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
|
|
|
122
122
|
flow = [];
|
|
123
123
|
if (testFlow.testSetUp)
|
|
124
124
|
flow.push(testFlow.testSetUp);
|
|
125
|
-
if (testFlow.tests)
|
|
125
|
+
if (testFlow.tests) {
|
|
126
126
|
flow = __spreadArray(__spreadArray([], __read(flow), false), __read(testFlow.tests.filter(function (test) {
|
|
127
127
|
var e_2, _a;
|
|
128
128
|
if (!testRegExps.length)
|
|
@@ -144,6 +144,7 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
|
|
|
144
144
|
}
|
|
145
145
|
return match;
|
|
146
146
|
})), false);
|
|
147
|
+
}
|
|
147
148
|
if (testFlow.testTearDown)
|
|
148
149
|
flow.push(testFlow.testTearDown);
|
|
149
150
|
sasjs = (0, createSASjsInstance_1.createSASjsInstance)({
|
|
@@ -190,7 +191,8 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
|
|
|
190
191
|
case 7:
|
|
191
192
|
e_1 = _e.sent();
|
|
192
193
|
return [3 /*break*/, 8];
|
|
193
|
-
case 8:
|
|
194
|
+
case 8: // FIXME: handle error properly
|
|
195
|
+
return [3 /*break*/, 9];
|
|
194
196
|
case 9:
|
|
195
197
|
result = {
|
|
196
198
|
sasjs_test_meta: []
|
package/build/utils/config.js
CHANGED
|
@@ -686,11 +686,10 @@ function getMacroFolders(target) {
|
|
|
686
686
|
return [4 /*yield*/, getLocalOrGlobalConfig()];
|
|
687
687
|
case 1:
|
|
688
688
|
localConfig = (_a.sent()).configuration;
|
|
689
|
+
if (target === null || target === void 0 ? void 0 : target.macroFolders)
|
|
690
|
+
macroFolders = target.macroFolders;
|
|
689
691
|
if (localConfig === null || localConfig === void 0 ? void 0 : localConfig.macroFolders) {
|
|
690
|
-
macroFolders = localConfig.macroFolders;
|
|
691
|
-
}
|
|
692
|
-
if (target === null || target === void 0 ? void 0 : target.macroFolders) {
|
|
693
|
-
macroFolders = target.macroFolders.concat(macroFolders);
|
|
692
|
+
macroFolders = localConfig.macroFolders.concat(macroFolders);
|
|
694
693
|
}
|
|
695
694
|
buildSourceFolder = process.sasjsConstants.buildSourceFolder;
|
|
696
695
|
macroFolders = macroFolders.map(function (macroFolder) {
|
|
@@ -12,7 +12,7 @@ function displayError(err, errorMessage) {
|
|
|
12
12
|
if (errorMessage === void 0) { errorMessage = ''; }
|
|
13
13
|
if (errorMessage)
|
|
14
14
|
errorMessage = "".concat(errorMessage, "\n");
|
|
15
|
-
if (err
|
|
15
|
+
if (err) {
|
|
16
16
|
var failureDetails = '';
|
|
17
17
|
if (err.hasOwnProperty('error')) {
|
|
18
18
|
var body = err.error || null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const sampleSasProgram
|
|
1
|
+
export declare const sampleSasProgram: string;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.sampleSasProgram = void 0;
|
|
4
4
|
var utils_1 = require("../utils");
|
|
5
|
+
var utils_2 = require("@sasjs/utils");
|
|
5
6
|
describe('removeComments', function () {
|
|
6
7
|
test('should remove block comment', function () {
|
|
7
8
|
var text = "/* test\n123\n456\n789 */";
|
|
@@ -43,4 +44,4 @@ describe('removeComments', function () {
|
|
|
43
44
|
expect((0, utils_1.removeComments)(text)).toEqual(text);
|
|
44
45
|
});
|
|
45
46
|
});
|
|
46
|
-
exports.sampleSasProgram = "/**\n @file mv_createfolder.sas\n @brief Creates a viya folder if that foloder does not already exist\n @details Expects oauth token in a global macro variable (default\n ACCESS_TOKEN).\n\n options mprint;\n %mv_createfolder(path=/Public)\n\n\n @param path= The full path of the folder to be created\n @param access_token_var= The global macro variable to contain the access token\n @param grant_type= valid values are \"password\" or \"authorization_code\" (unquoted).\n The default is authorization_code.\n\n\n @version VIYA V.03.04\n @author Allan Bowe\n @source https://github.com/sasjs/core\n\n
|
|
47
|
+
exports.sampleSasProgram = "/**\n @file mv_createfolder.sas\n @brief Creates a viya folder if that foloder does not already exist\n @details Expects oauth token in a global macro variable (default\n ACCESS_TOKEN).\n\n options mprint;\n %mv_createfolder(path=/Public)\n\n\n @param path= The full path of the folder to be created\n @param access_token_var= The global macro variable to contain the access token\n @param grant_type= valid values are \"password\" or \"authorization_code\" (unquoted).\n The default is authorization_code.\n\n\n @version VIYA V.03.04\n @author Allan Bowe\n @source https://github.com/sasjs/core\n\n ".concat(utils_2.DependencyHeader.Macro, "\n @li mf_abort.sas\n @li mf_getuniquefileref.sas\n @li mf_getuniquelibref.sas\n @li mf_isblank.sas\n\n**/\n\n/* This is a comment\nthat spans\nmultiple lines */\n\n%macro mv_createfolder(path=\n ,access_token_var=ACCESS_TOKEN\n ,grant_type=authorization_code\n);");
|
package/build/utils/utils.d.ts
CHANGED
|
@@ -34,5 +34,12 @@ export declare function getAdapterInstance(target: Target): SASjs;
|
|
|
34
34
|
export declare function displaySasjsRunnerError(username: string): void;
|
|
35
35
|
export declare const loadEnvVariables: (fileName: string) => Promise<void>;
|
|
36
36
|
export declare function prefixAppLoc(appLoc?: string, path?: string): string | null;
|
|
37
|
-
export declare const isWindows: () => boolean;
|
|
38
37
|
export declare const terminateProcess: (status: number) => never;
|
|
38
|
+
/**
|
|
39
|
+
* This function checks whether the current directory, or any of the parent
|
|
40
|
+
* directories, are part of a SASjs project. This is done by testing for
|
|
41
|
+
* the existence of a ./sasjs/sasjsconfig.json file.
|
|
42
|
+
*
|
|
43
|
+
* @returns boolean
|
|
44
|
+
*/
|
|
45
|
+
export declare const isSASjsProject: () => Promise<boolean>;
|
package/build/utils/utils.js
CHANGED
|
@@ -86,7 +86,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
86
86
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
87
87
|
};
|
|
88
88
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
89
|
-
exports.
|
|
89
|
+
exports.isSASjsProject = exports.terminateProcess = exports.prefixAppLoc = exports.loadEnvVariables = exports.displaySasjsRunnerError = exports.getAdapterInstance = exports.checkNodeVersion = exports.millisecondsToDdHhMmSs = exports.arrToObj = exports.parseLogLines = exports.executeShellScript = exports.getUniqServicesObj = exports.removeComments = exports.setupDoxygen = exports.setupGhooks = exports.setupGitIgnore = exports.setupNpmProject = exports.createTemplateApp = exports.createMinimalApp = exports.createAngularApp = exports.createReactApp = exports.diff = exports.inExistingProject = void 0;
|
|
90
90
|
var shelljs_1 = __importDefault(require("shelljs"));
|
|
91
91
|
var path_1 = __importDefault(require("path"));
|
|
92
92
|
var ora_1 = __importDefault(require("ora"));
|
|
@@ -414,7 +414,7 @@ function executeShellScript(filePath, logFilePath) {
|
|
|
414
414
|
return __generator(this, function (_b) {
|
|
415
415
|
switch (_b.label) {
|
|
416
416
|
case 0:
|
|
417
|
-
shellCommand = (0,
|
|
417
|
+
shellCommand = (0, utils_1.isWindows)() ? "sh ".concat(filePath) : "bash ".concat(filePath);
|
|
418
418
|
result = shelljs_1.default.exec(shellCommand, { silent: true });
|
|
419
419
|
if (!result.code) return [3 /*break*/, 1];
|
|
420
420
|
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.error("Error: ".concat(result.stderr));
|
|
@@ -555,11 +555,49 @@ function prefixAppLoc(appLoc, path) {
|
|
|
555
555
|
.join(' ');
|
|
556
556
|
}
|
|
557
557
|
exports.prefixAppLoc = prefixAppLoc;
|
|
558
|
-
var isWindows = function () { return process.platform === 'win32'; };
|
|
559
|
-
exports.isWindows = isWindows;
|
|
560
558
|
var terminateProcess = function (status) {
|
|
561
559
|
var _a;
|
|
562
560
|
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.info("Process will be terminated with the status code ".concat(status, "."));
|
|
563
561
|
process.exit(status);
|
|
564
562
|
};
|
|
565
563
|
exports.terminateProcess = terminateProcess;
|
|
564
|
+
/**
|
|
565
|
+
* This function checks whether the current directory, or any of the parent
|
|
566
|
+
* directories, are part of a SASjs project. This is done by testing for
|
|
567
|
+
* the existence of a ./sasjs/sasjsconfig.json file.
|
|
568
|
+
*
|
|
569
|
+
* @returns boolean
|
|
570
|
+
*/
|
|
571
|
+
var isSASjsProject = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
572
|
+
var i, currentLocation, maxLevels, _a;
|
|
573
|
+
return __generator(this, function (_b) {
|
|
574
|
+
switch (_b.label) {
|
|
575
|
+
case 0:
|
|
576
|
+
i = 1;
|
|
577
|
+
currentLocation = process.projectDir;
|
|
578
|
+
maxLevels = currentLocation.split(path_1.default.sep).length;
|
|
579
|
+
_b.label = 1;
|
|
580
|
+
case 1:
|
|
581
|
+
if (!(i <= maxLevels)) return [3 /*break*/, 5];
|
|
582
|
+
return [4 /*yield*/, (0, utils_1.folderExists)(path_1.default.join(currentLocation, 'sasjs'))];
|
|
583
|
+
case 2:
|
|
584
|
+
_a = (_b.sent());
|
|
585
|
+
if (!_a) return [3 /*break*/, 4];
|
|
586
|
+
return [4 /*yield*/, (0, utils_1.fileExists)(path_1.default.join(currentLocation, 'sasjs', 'sasjsconfig.json'))];
|
|
587
|
+
case 3:
|
|
588
|
+
_a = (_b.sent());
|
|
589
|
+
_b.label = 4;
|
|
590
|
+
case 4:
|
|
591
|
+
if (_a) {
|
|
592
|
+
return [2 /*return*/, true];
|
|
593
|
+
}
|
|
594
|
+
else {
|
|
595
|
+
currentLocation = path_1.default.join(currentLocation, '..');
|
|
596
|
+
i++;
|
|
597
|
+
}
|
|
598
|
+
return [3 /*break*/, 1];
|
|
599
|
+
case 5: return [2 /*return*/, false];
|
|
600
|
+
}
|
|
601
|
+
});
|
|
602
|
+
}); };
|
|
603
|
+
exports.isSASjsProject = isSASjsProject;
|