@sasjs/cli 3.7.7 → 3.8.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.
Files changed (26) hide show
  1. package/build/commands/compile/compile.js +5 -6
  2. package/build/commands/compile/internal/checkCompileStatus.js +3 -4
  3. package/build/commands/compile/internal/compileTestFile.d.ts +3 -2
  4. package/build/commands/compile/internal/compileTestFile.js +26 -13
  5. package/build/commands/compile/internal/getAllFolders.d.ts +6 -0
  6. package/build/commands/compile/internal/{getAllJobFolders.js → getAllFolders.js} +49 -23
  7. package/build/commands/compile/internal/identifySasFile.js +3 -4
  8. package/build/commands/compile/internal/spec/compileTestFile.spec.js +37 -0
  9. package/build/commands/compile/internal/spec/getAllFolders.spec.d.ts +1 -0
  10. package/build/commands/compile/internal/spec/getAllFolders.spec.js +184 -0
  11. package/build/commands/compile/spec/copyFilesToBuildFolder.spec.js +2 -4
  12. package/build/commands/deploy/deploy.js +27 -21
  13. package/build/commands/job/internal/execute/index.d.ts +1 -0
  14. package/build/commands/job/internal/execute/index.js +1 -0
  15. package/build/commands/job/internal/execute/sas9.d.ts +14 -0
  16. package/build/commands/job/internal/execute/sas9.js +139 -0
  17. package/build/commands/job/jobCommand.d.ts +4 -0
  18. package/build/commands/job/jobCommand.js +86 -32
  19. package/build/commands/job/spec/jobCommand.spec.js +406 -251
  20. package/build/commands/testing/test.js +3 -4
  21. package/build/utils/test.d.ts +2 -2
  22. package/build/utils/test.js +8 -5
  23. package/package.json +3 -3
  24. package/build/commands/compile/internal/getAllJobFolders.d.ts +0 -2
  25. package/build/commands/compile/internal/getAllServiceFolders.d.ts +0 -2
  26. package/build/commands/compile/internal/getAllServiceFolders.js +0 -91
@@ -225,13 +225,14 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
225
225
  printTestUrl = function () { return process.logger.info("Test URL: ".concat(testUrl)); };
226
226
  printTestUrl();
227
227
  handleRes = function (res) { return __awaiter(_this, void 0, void 0, function () {
228
- var lineBreak, existingTestTarget, existingTestTarget;
228
+ var lineBreak, test_results, existingTestTarget, existingTestTarget;
229
229
  var _a, _b;
230
230
  return __generator(this, function (_c) {
231
231
  switch (_c.label) {
232
232
  case 0:
233
233
  lineBreak = true;
234
- if (!res.result) {
234
+ test_results = (_a = res.result) === null || _a === void 0 ? void 0 : _a.test_results;
235
+ if (!test_results) {
235
236
  (0, displayResult_1.displayError)({}, "Job did not return a response, to debug click ".concat(testUrl));
236
237
  printCodeExample();
237
238
  lineBreak = false;
@@ -258,8 +259,6 @@ function runTest(target, testRegExps, outDirectory, flowSourcePath) {
258
259
  });
259
260
  }
260
261
  }
261
- if (!((_a = res.result) === null || _a === void 0 ? void 0 : _a.test_results))
262
- lineBreak = false;
263
262
  if (!res.log) return [3 /*break*/, 2];
264
263
  return [4 /*yield*/, (0, saveOutput_1.saveLog)(outDirectory, test, res.log, lineBreak)];
265
264
  case 1:
@@ -1,13 +1,13 @@
1
1
  /// <reference types="jest" />
2
2
  import { ServerType, Target, TargetJson, Configuration } from '@sasjs/utils/types';
3
3
  import { Folder } from '../types';
4
- import { ServiceConfig } from '@sasjs/utils/types/config';
4
+ import { ServiceConfig, JobConfig } from '@sasjs/utils/types/config';
5
5
  export declare const createTestApp: (parentFolder: string, appName: string) => Promise<void>;
6
6
  export declare const createTestJobsApp: (parentFolder: string, appName: string) => Promise<void>;
7
7
  export declare const createTestMinimalApp: (parentFolder: string, appName: string) => Promise<void>;
8
8
  export declare const removeTestApp: (parentFolder: string, appName: string) => Promise<void>;
9
9
  export declare const removeTestServerFolder: (folderPath: string, target: Target) => Promise<void>;
10
- export declare const generateTestTarget: (targetName: string, appLoc: string, serviceConfig?: ServiceConfig, serverType?: ServerType) => Target;
10
+ export declare const generateTestTarget: (targetName: string, appLoc: string, serviceConfig?: ServiceConfig, serverType?: ServerType, jobConfig?: JobConfig) => Target;
11
11
  export declare const createTestGlobalTarget: (targetName: string, appLoc: string, serviceConfig?: ServiceConfig, serverType?: ServerType) => Promise<Target>;
12
12
  export declare const verifyStep: (step?: 'db' | 'compile' | 'build', buildFileName?: string, customFiles?: 'custom' | 'no') => Promise<void>;
13
13
  export declare const mockProcessExit: () => jest.SpyInstance<never, [code?: number | undefined]>;
@@ -160,7 +160,7 @@ var removeTestServerFolder = function (folderPath, target) { return __awaiter(vo
160
160
  });
161
161
  }); };
162
162
  exports.removeTestServerFolder = removeTestServerFolder;
163
- var generateTestTarget = function (targetName, appLoc, serviceConfig, serverType) {
163
+ var generateTestTarget = function (targetName, appLoc, serviceConfig, serverType, jobConfig) {
164
164
  if (serviceConfig === void 0) { serviceConfig = {
165
165
  serviceFolders: [path_1.default.join('sasjs', 'services')],
166
166
  initProgram: '',
@@ -168,6 +168,12 @@ var generateTestTarget = function (targetName, appLoc, serviceConfig, serverType
168
168
  macroVars: {}
169
169
  }; }
170
170
  if (serverType === void 0) { serverType = types_1.ServerType.SasViya; }
171
+ if (jobConfig === void 0) { jobConfig = {
172
+ jobFolders: [],
173
+ initProgram: '',
174
+ termProgram: '',
175
+ macroVars: {}
176
+ }; }
171
177
  dotenv_1.default.config();
172
178
  var target = new types_1.Target({
173
179
  name: targetName,
@@ -183,12 +189,9 @@ var generateTestTarget = function (targetName, appLoc, serviceConfig, serverType
183
189
  access_token: process.env.ACCESS_TOKEN,
184
190
  refresh_token: process.env.REFRESH_TOKEN
185
191
  },
186
- jobConfig: {
187
- jobFolders: []
188
- },
192
+ jobConfig: jobConfig,
189
193
  serviceConfig: serviceConfig,
190
194
  testConfig: {
191
- testFolders: ['tests'],
192
195
  initProgram: path_1.default.join('tests', 'testinit.sas'),
193
196
  termProgram: path_1.default.join('tests', 'testterm.sas'),
194
197
  macroVars: {
package/package.json CHANGED
@@ -47,8 +47,8 @@
47
47
  "access": "public"
48
48
  },
49
49
  "dependencies": {
50
- "@sasjs/adapter": "3.7.4",
51
- "@sasjs/core": "4.9.2",
50
+ "@sasjs/adapter": "3.7.6",
51
+ "@sasjs/core": "4.9.3",
52
52
  "@sasjs/lint": "1.11.2",
53
53
  "@sasjs/utils": "2.36.0",
54
54
  "chalk": "4.1.2",
@@ -94,5 +94,5 @@
94
94
  "typescript": "4.5.4",
95
95
  "util": "0.12.4"
96
96
  },
97
- "version": "3.7.7"
97
+ "version": "3.8.0"
98
98
  }
@@ -1,2 +0,0 @@
1
- import { Target } from '@sasjs/utils';
2
- export declare function getAllJobFolders(target: Target): Promise<string[]>;
@@ -1,2 +0,0 @@
1
- import { Target } from '@sasjs/utils';
2
- export declare function getAllServiceFolders(target: Target): Promise<string[]>;
@@ -1,91 +0,0 @@
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 __read = (this && this.__read) || function (o, n) {
39
- var m = typeof Symbol === "function" && o[Symbol.iterator];
40
- if (!m) return o;
41
- var i = m.call(o), r, ar = [], e;
42
- try {
43
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
44
- }
45
- catch (error) { e = { error: error }; }
46
- finally {
47
- try {
48
- if (r && !r.done && (m = i["return"])) m.call(i);
49
- }
50
- finally { if (e) throw e.error; }
51
- }
52
- return ar;
53
- };
54
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
55
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
56
- if (ar || !(i in from)) {
57
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
58
- ar[i] = from[i];
59
- }
60
- }
61
- return to.concat(ar || Array.prototype.slice.call(from));
62
- };
63
- Object.defineProperty(exports, "__esModule", { value: true });
64
- exports.getAllServiceFolders = void 0;
65
- var utils_1 = require("@sasjs/utils");
66
- var config_1 = require("../../../utils/config");
67
- function getAllServiceFolders(target) {
68
- var _a, _b;
69
- return __awaiter(this, void 0, void 0, function () {
70
- var configuration, allServices, buildSourceFolder;
71
- return __generator(this, function (_c) {
72
- switch (_c.label) {
73
- case 0: return [4 /*yield*/, (0, config_1.getLocalOrGlobalConfig)()];
74
- case 1:
75
- configuration = (_c.sent()).configuration;
76
- allServices = [];
77
- if ((_a = configuration === null || configuration === void 0 ? void 0 : configuration.serviceConfig) === null || _a === void 0 ? void 0 : _a.serviceFolders)
78
- allServices = __spreadArray([], __read(configuration.serviceConfig.serviceFolders), false);
79
- if ((_b = target === null || target === void 0 ? void 0 : target.serviceConfig) === null || _b === void 0 ? void 0 : _b.serviceFolders)
80
- allServices = __spreadArray(__spreadArray([], __read(allServices), false), __read(target.serviceConfig.serviceFolders), false);
81
- allServices = allServices.filter(function (p) { return !!p; });
82
- buildSourceFolder = process.sasjsConstants.buildSourceFolder;
83
- allServices = allServices.map(function (service) {
84
- return (0, utils_1.getAbsolutePath)(service, buildSourceFolder);
85
- });
86
- return [2 /*return*/, __spreadArray([], __read(new Set(allServices)), false)];
87
- }
88
- });
89
- });
90
- }
91
- exports.getAllServiceFolders = getAllServiceFolders;