@sasjs/cli 2.38.8 → 3.0.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/add/addCredential.d.ts +2 -2
- package/build/commands/add/addCredential.js +26 -28
- package/build/commands/add/internal/input.js +15 -2
- package/build/commands/build/build.d.ts +1 -1
- package/build/commands/build/build.js +41 -19
- package/build/commands/build/internal/getLaunchPageCode.js +2 -1
- package/build/commands/compile/internal/compileServiceFile.js +11 -7
- package/build/commands/compile/internal/compileTestFile.js +1 -1
- package/build/commands/compile/internal/spec/compileTestFile.spec.js +16 -4
- package/build/commands/compile/spec/compile.spec.js +30 -0
- package/build/commands/compile/spec/loadDependencies.spec.js +3 -3
- package/build/commands/context/contextCommand.js +5 -5
- package/build/commands/deploy/deploy.d.ts +2 -1
- package/build/commands/deploy/deploy.js +92 -46
- package/build/commands/deploy/spec/cbd.spec.d.ts +1 -0
- package/build/commands/deploy/spec/cbd.spec.js +141 -0
- package/build/commands/deploy/spec/cbd.spec.server.js +6 -57
- package/build/commands/deploy/spec/utils.d.ts +6 -0
- package/build/commands/deploy/spec/utils.js +242 -0
- package/build/commands/flow/flowCommand.js +1 -1
- package/build/commands/flow/spec/flow.spec.server.js +1 -1
- package/build/commands/folder/folderCommand.js +2 -2
- package/build/commands/folder/spec/folder.spec.server.js +1 -1
- package/build/commands/job/internal/execute/index.d.ts +2 -0
- package/build/commands/job/internal/execute/index.js +14 -0
- package/build/commands/job/internal/execute/sasjs.d.ts +8 -0
- package/build/commands/job/internal/execute/sasjs.js +69 -0
- package/build/commands/job/{execute.d.ts → internal/execute/viya.d.ts} +1 -1
- package/build/commands/job/{execute.js → internal/execute/viya.js} +29 -68
- package/build/commands/job/internal/utils.d.ts +1 -0
- package/build/commands/job/internal/utils.js +81 -0
- package/build/commands/job/jobCommand.d.ts +2 -1
- package/build/commands/job/jobCommand.js +65 -23
- package/build/commands/job/spec/execute.spec.js +41 -21
- package/build/commands/job/spec/getContextName.spec.js +1 -1
- package/build/commands/job/spec/job.spec.server.js +4 -4
- package/build/commands/job/spec/jobCommand.spec.js +10 -10
- package/build/commands/request/request.js +1 -1
- package/build/commands/run/run.js +2 -2
- package/build/commands/servicepack/spec/servicepack.spec.server.js +0 -1
- package/build/commands/shared/deployToSasViyaWithServicePack.js +1 -1
- package/build/commands/testing/test.js +1 -1
- package/build/config.json +3 -1
- package/build/utils/config.js +104 -64
- package/build/utils/file.d.ts +1 -1
- package/build/utils/file.js +1 -1
- package/build/utils/spec/removeComments.spec.d.ts +1 -1
- package/build/utils/spec/removeComments.spec.js +1 -1
- package/build/utils/test.js +1 -1
- package/build/utils/utils.d.ts +1 -0
- package/build/utils/utils.js +8 -2
- package/package.json +13 -13
|
@@ -49,7 +49,7 @@ var utils_2 = require("@sasjs/utils");
|
|
|
49
49
|
var file_1 = require("../../utils/file");
|
|
50
50
|
var getDeployScripts_1 = require("./internal/getDeployScripts");
|
|
51
51
|
var deployToSasViyaWithServicePack_1 = require("../shared/deployToSasViyaWithServicePack");
|
|
52
|
-
function deploy(target, isLocal) {
|
|
52
|
+
function deploy(target, isLocal, sasjs) {
|
|
53
53
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
54
54
|
return __awaiter(this, void 0, void 0, function () {
|
|
55
55
|
var appLoc, buildDestinationFolder_1, finalFilePathJSON, jsonObject, webIndexFileName, deployScripts, buildDestinationFolder, logFilePath;
|
|
@@ -82,50 +82,58 @@ function deploy(target, isLocal) {
|
|
|
82
82
|
}
|
|
83
83
|
buildDestinationFolder = process.sasjsConstants.buildDestinationFolder;
|
|
84
84
|
logFilePath = buildDestinationFolder;
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
var _a, _b, _c;
|
|
88
|
-
return __generator(this, function (_d) {
|
|
89
|
-
switch (_d.label) {
|
|
90
|
-
case 0:
|
|
91
|
-
deployScriptPath = utils_1.getAbsolutePath(deployScript, process.projectDir);
|
|
92
|
-
if (!file_1.isSasFile(deployScript)) return [3 /*break*/, 7];
|
|
93
|
-
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.info("Processing SAS file " + path_1.default.basename(deployScript) + " ...");
|
|
94
|
-
return [4 /*yield*/, utils_2.readFile(deployScriptPath)
|
|
95
|
-
// split into lines
|
|
96
|
-
];
|
|
97
|
-
case 1:
|
|
98
|
-
deployScriptFile = _d.sent();
|
|
99
|
-
linesToExecute = deployScriptFile.replace(/\r\n/g, '\n').split('\n');
|
|
100
|
-
return [4 /*yield*/, config_1.getStreamConfig(target)];
|
|
101
|
-
case 2:
|
|
102
|
-
streamConfig = _d.sent();
|
|
103
|
-
if (!(target.serverType === utils_2.ServerType.SasViya)) return [3 /*break*/, 4];
|
|
104
|
-
return [4 /*yield*/, deployToSasViya(deployScript, target, isLocal, linesToExecute, logFilePath, streamConfig)];
|
|
105
|
-
case 3:
|
|
106
|
-
_d.sent();
|
|
107
|
-
return [3 /*break*/, 6];
|
|
108
|
-
case 4: return [4 /*yield*/, deployToSas9(deployScript, target, linesToExecute, logFilePath, streamConfig)];
|
|
109
|
-
case 5:
|
|
110
|
-
_d.sent();
|
|
111
|
-
_d.label = 6;
|
|
112
|
-
case 6: return [3 /*break*/, 9];
|
|
113
|
-
case 7:
|
|
114
|
-
if (!file_1.isShellScript(deployScript)) return [3 /*break*/, 9];
|
|
115
|
-
(_b = process.logger) === null || _b === void 0 ? void 0 : _b.info("Executing shell script " + deployScript + " ...");
|
|
116
|
-
logPath = path_1.default.join(process.projectDir, 'sasjsbuild', path_1.default.basename(deployScript).replace('.sh', '') + ".log");
|
|
117
|
-
return [4 /*yield*/, utils_1.executeShellScript(deployScriptPath, logPath)];
|
|
118
|
-
case 8:
|
|
119
|
-
_d.sent();
|
|
120
|
-
(_c = process.logger) === null || _c === void 0 ? void 0 : _c.success("Shell script execution completed! Log is here: " + logPath);
|
|
121
|
-
_d.label = 9;
|
|
122
|
-
case 9: return [2 /*return*/];
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
}); })];
|
|
85
|
+
if (!(target.serverType === utils_2.ServerType.Sasjs)) return [3 /*break*/, 5];
|
|
86
|
+
return [4 /*yield*/, deployToSasjs(target, sasjs)];
|
|
126
87
|
case 4:
|
|
127
88
|
_k.sent();
|
|
128
|
-
return [
|
|
89
|
+
return [3 /*break*/, 7];
|
|
90
|
+
case 5: return [4 /*yield*/, utils_2.asyncForEach(deployScripts, function (deployScript) { return __awaiter(_this, void 0, void 0, function () {
|
|
91
|
+
var deployScriptPath, deployScriptFile, linesToExecute, streamConfig, logPath;
|
|
92
|
+
var _a, _b, _c;
|
|
93
|
+
return __generator(this, function (_d) {
|
|
94
|
+
switch (_d.label) {
|
|
95
|
+
case 0:
|
|
96
|
+
deployScriptPath = utils_1.getAbsolutePath(deployScript, process.projectDir);
|
|
97
|
+
if (!file_1.isSasFile(deployScript)) return [3 /*break*/, 7];
|
|
98
|
+
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.info("Processing SAS file " + path_1.default.basename(deployScript) + " ...");
|
|
99
|
+
return [4 /*yield*/, utils_2.readFile(deployScriptPath)
|
|
100
|
+
// split into lines
|
|
101
|
+
];
|
|
102
|
+
case 1:
|
|
103
|
+
deployScriptFile = _d.sent();
|
|
104
|
+
linesToExecute = deployScriptFile
|
|
105
|
+
.replace(/\r\n/g, '\n')
|
|
106
|
+
.split('\n');
|
|
107
|
+
return [4 /*yield*/, config_1.getStreamConfig(target)];
|
|
108
|
+
case 2:
|
|
109
|
+
streamConfig = _d.sent();
|
|
110
|
+
if (!(target.serverType === utils_2.ServerType.SasViya)) return [3 /*break*/, 4];
|
|
111
|
+
return [4 /*yield*/, deployToSasViya(deployScript, target, isLocal, linesToExecute, logFilePath, streamConfig)];
|
|
112
|
+
case 3:
|
|
113
|
+
_d.sent();
|
|
114
|
+
return [3 /*break*/, 6];
|
|
115
|
+
case 4: return [4 /*yield*/, deployToSas9(deployScript, target, linesToExecute, logFilePath, streamConfig)];
|
|
116
|
+
case 5:
|
|
117
|
+
_d.sent();
|
|
118
|
+
_d.label = 6;
|
|
119
|
+
case 6: return [3 /*break*/, 9];
|
|
120
|
+
case 7:
|
|
121
|
+
if (!file_1.isShellScript(deployScript)) return [3 /*break*/, 9];
|
|
122
|
+
(_b = process.logger) === null || _b === void 0 ? void 0 : _b.info("Executing shell script " + deployScript + " ...");
|
|
123
|
+
logPath = path_1.default.join(process.projectDir, 'sasjsbuild', path_1.default.basename(deployScript).replace('.sh', '') + ".log");
|
|
124
|
+
return [4 /*yield*/, utils_1.executeShellScript(deployScriptPath, logPath)];
|
|
125
|
+
case 8:
|
|
126
|
+
_d.sent();
|
|
127
|
+
(_c = process.logger) === null || _c === void 0 ? void 0 : _c.success("Shell script execution completed! Log is here: " + logPath);
|
|
128
|
+
_d.label = 9;
|
|
129
|
+
case 9: return [2 /*return*/];
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}); })];
|
|
133
|
+
case 6:
|
|
134
|
+
_k.sent();
|
|
135
|
+
_k.label = 7;
|
|
136
|
+
case 7: return [2 /*return*/];
|
|
129
137
|
}
|
|
130
138
|
});
|
|
131
139
|
});
|
|
@@ -141,7 +149,7 @@ function getSASjsAndAuthConfig(target, isLocal) {
|
|
|
141
149
|
serverUrl: target.serverUrl,
|
|
142
150
|
appLoc: target.appLoc,
|
|
143
151
|
serverType: target.serverType,
|
|
144
|
-
|
|
152
|
+
httpsAgentOptions: target.httpsAgentOptions,
|
|
145
153
|
debug: true,
|
|
146
154
|
useComputeApi: true
|
|
147
155
|
});
|
|
@@ -233,14 +241,15 @@ function deployToSas9(deployScript, target, linesToExecute, logFilePath, streamC
|
|
|
233
241
|
password = utils_2.decodeFromBase64(password);
|
|
234
242
|
sasjs = new node_1.default({
|
|
235
243
|
serverUrl: target.serverUrl,
|
|
236
|
-
|
|
244
|
+
httpsAgentOptions: target.httpsAgentOptions,
|
|
237
245
|
appLoc: target.appLoc,
|
|
238
246
|
serverType: target.serverType
|
|
239
247
|
});
|
|
240
248
|
return [4 /*yield*/, sasjs
|
|
241
249
|
.executeScriptSAS9(linesToExecute, username, password)
|
|
242
250
|
.catch(function (err) {
|
|
243
|
-
|
|
251
|
+
var _a;
|
|
252
|
+
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.log(formatErrorString(err));
|
|
244
253
|
if (err && err.errorCode === 404) {
|
|
245
254
|
utils_1.displaySasjsRunnerError(username);
|
|
246
255
|
}
|
|
@@ -270,6 +279,43 @@ function deployToSas9(deployScript, target, linesToExecute, logFilePath, streamC
|
|
|
270
279
|
});
|
|
271
280
|
});
|
|
272
281
|
}
|
|
282
|
+
function deployToSasjs(target, sasjs) {
|
|
283
|
+
var _a, _b;
|
|
284
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
285
|
+
var buildDestinationFolder, finalFilePathJSON, jsonContent, payload, result;
|
|
286
|
+
return __generator(this, function (_c) {
|
|
287
|
+
switch (_c.label) {
|
|
288
|
+
case 0:
|
|
289
|
+
buildDestinationFolder = process.sasjsConstants.buildDestinationFolder;
|
|
290
|
+
finalFilePathJSON = path_1.default.join(buildDestinationFolder, target.name + ".json");
|
|
291
|
+
return [4 /*yield*/, utils_2.readFile(finalFilePathJSON)];
|
|
292
|
+
case 1:
|
|
293
|
+
jsonContent = _c.sent();
|
|
294
|
+
payload = JSON.parse(jsonContent);
|
|
295
|
+
sasjs = sasjs
|
|
296
|
+
? sasjs
|
|
297
|
+
: new node_1.default({
|
|
298
|
+
serverType: target.serverType,
|
|
299
|
+
serverUrl: target.serverUrl,
|
|
300
|
+
appLoc: target.appLoc
|
|
301
|
+
});
|
|
302
|
+
return [4 /*yield*/, sasjs.deployToSASjs(payload).catch(function (err) {
|
|
303
|
+
var _a;
|
|
304
|
+
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.error(err);
|
|
305
|
+
})];
|
|
306
|
+
case 2:
|
|
307
|
+
result = _c.sent();
|
|
308
|
+
if ((result === null || result === void 0 ? void 0 : result.status) === 'failure') {
|
|
309
|
+
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.error(result.message);
|
|
310
|
+
if (result.example) {
|
|
311
|
+
(_b = process.logger) === null || _b === void 0 ? void 0 : _b.info("Payload example:\n" + JSON.stringify(result.example, null, 2));
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
return [2 /*return*/];
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
});
|
|
318
|
+
}
|
|
273
319
|
/**
|
|
274
320
|
* this function formats the error string to dump error log on console
|
|
275
321
|
* @param error
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,141 @@
|
|
|
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 node_1 = __importDefault(require("@sasjs/adapter/node"));
|
|
43
|
+
var utils_1 = require("@sasjs/utils");
|
|
44
|
+
var test_1 = require("../../../utils/test");
|
|
45
|
+
var types_1 = require("../../../types");
|
|
46
|
+
var build_1 = require("../../build/build");
|
|
47
|
+
var deploy_1 = require("../deploy");
|
|
48
|
+
var utils_2 = require("./utils");
|
|
49
|
+
var config_1 = require("../../../utils/config");
|
|
50
|
+
describe('sasjs cbd with server type SASJS', function () {
|
|
51
|
+
var target;
|
|
52
|
+
var appName;
|
|
53
|
+
beforeEach(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
54
|
+
return __generator(this, function (_a) {
|
|
55
|
+
switch (_a.label) {
|
|
56
|
+
case 0:
|
|
57
|
+
appName = "cli-tests-cbd-sasjs-server-" + utils_1.generateTimestamp();
|
|
58
|
+
return [4 /*yield*/, test_1.createTestMinimalApp(__dirname, appName)];
|
|
59
|
+
case 1:
|
|
60
|
+
_a.sent();
|
|
61
|
+
return [4 /*yield*/, utils_2.createLocalTarget(utils_1.ServerType.Sasjs)];
|
|
62
|
+
case 2:
|
|
63
|
+
target = _a.sent();
|
|
64
|
+
return [2 /*return*/];
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}); });
|
|
68
|
+
afterEach(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
69
|
+
return __generator(this, function (_a) {
|
|
70
|
+
switch (_a.label) {
|
|
71
|
+
case 0: return [4 /*yield*/, test_1.removeTestApp(__dirname, appName)];
|
|
72
|
+
case 1:
|
|
73
|
+
_a.sent();
|
|
74
|
+
jest.resetAllMocks();
|
|
75
|
+
return [2 /*return*/];
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}); });
|
|
79
|
+
it("should deploy compile and build to sasjs/server", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
80
|
+
var sasjs, customTarget;
|
|
81
|
+
return __generator(this, function (_a) {
|
|
82
|
+
switch (_a.label) {
|
|
83
|
+
case 0:
|
|
84
|
+
sasjs = new node_1.default();
|
|
85
|
+
jest.mock('@sasjs/adapter');
|
|
86
|
+
jest.spyOn(sasjs, 'deployToSASjs').mockImplementation(function () {
|
|
87
|
+
return Promise.resolve({
|
|
88
|
+
status: 'success',
|
|
89
|
+
message: 'message'
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
return [4 /*yield*/, utils_2.updateLocalTarget(target.name, {
|
|
93
|
+
jobConfig: undefined,
|
|
94
|
+
serviceConfig: undefined,
|
|
95
|
+
deployConfig: {
|
|
96
|
+
deployServicePack: false,
|
|
97
|
+
deployScripts: ["sasjsbuild/" + target.name + ".sas"]
|
|
98
|
+
}
|
|
99
|
+
})];
|
|
100
|
+
case 1:
|
|
101
|
+
_a.sent();
|
|
102
|
+
return [4 /*yield*/, config_1.findTargetInConfiguration(target.name, types_1.TargetScope.Local)];
|
|
103
|
+
case 2:
|
|
104
|
+
customTarget = (_a.sent()).target;
|
|
105
|
+
return [4 /*yield*/, expect(build_1.build(customTarget)).toResolve()];
|
|
106
|
+
case 3:
|
|
107
|
+
_a.sent();
|
|
108
|
+
return [4 /*yield*/, deploy_1.deploy(customTarget, true, sasjs)];
|
|
109
|
+
case 4:
|
|
110
|
+
_a.sent();
|
|
111
|
+
expect(sasjs.deployToSASjs).toHaveBeenCalledWith({
|
|
112
|
+
members: [
|
|
113
|
+
{
|
|
114
|
+
name: 'services',
|
|
115
|
+
type: 'folder',
|
|
116
|
+
members: [
|
|
117
|
+
{
|
|
118
|
+
name: 'common',
|
|
119
|
+
type: 'folder',
|
|
120
|
+
members: [
|
|
121
|
+
{
|
|
122
|
+
name: 'appinit',
|
|
123
|
+
type: 'service',
|
|
124
|
+
code: '/* provide additional debug info */\n%global _program;\n%put &=syscc;\n%put user=%mf_getuser();\n%put pgm=&_program;\n%put timestamp=%sysfunc(datetime(),datetime19.);\n* Service Variables start;\n*Service Variables end;\n* Dependencies start;\n* Dependencies end;\n* Programs start;\n*Programs end;\n* Service start;\nproc sql;\ncreate table areas as select distinct area\n from sashelp.springs;\n%webout(OPEN)\n%webout(OBJ,areas)\n%webout(CLOSE)\n* Service end;'
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: 'getdata',
|
|
128
|
+
type: 'service',
|
|
129
|
+
code: '/* provide additional debug info */\n%global _program;\n%put &=syscc;\n%put user=%mf_getuser();\n%put pgm=&_program;\n%put timestamp=%sysfunc(datetime(),datetime19.);\n* Service Variables start;\n*Service Variables end;\n* Dependencies start;\n* Dependencies end;\n* Programs start;\n*Programs end;\n* Service start;\n%webout(FETCH)\nproc sql;\ncreate table springs as select * from sashelp.springs\n where area in (select area from work.areas);\n%webout(OPEN)\n%webout(OBJ,springs)\n%webout(CLOSE)\n* Service end;'
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
}
|
|
133
|
+
]
|
|
134
|
+
}
|
|
135
|
+
]
|
|
136
|
+
});
|
|
137
|
+
return [2 /*return*/];
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}); });
|
|
141
|
+
});
|
|
@@ -70,7 +70,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
70
70
|
};
|
|
71
71
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
72
72
|
var utils_1 = require("@sasjs/utils");
|
|
73
|
-
var dotenv_1 = __importDefault(require("dotenv"));
|
|
74
73
|
var path_1 = __importDefault(require("path"));
|
|
75
74
|
var utils_2 = require("@sasjs/utils");
|
|
76
75
|
var configUtils = __importStar(require("../../../utils/config"));
|
|
@@ -78,18 +77,18 @@ var getDeployScriptsModule = __importStar(require("../internal/getDeployScripts"
|
|
|
78
77
|
var test_1 = require("../../../utils/test");
|
|
79
78
|
var build_1 = require("../../build/build");
|
|
80
79
|
var deploy_1 = require("../deploy");
|
|
81
|
-
var utils_3 = require("
|
|
80
|
+
var utils_3 = require("./utils");
|
|
82
81
|
describe('sasjs cbd with global config', function () {
|
|
83
82
|
var target;
|
|
84
83
|
beforeEach(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
85
84
|
return __generator(this, function (_a) {
|
|
86
85
|
switch (_a.label) {
|
|
87
86
|
case 0:
|
|
88
|
-
target = generateTarget(false);
|
|
87
|
+
target = utils_3.generateTarget(false);
|
|
89
88
|
return [4 /*yield*/, test_1.createTestMinimalApp(__dirname, target.name)];
|
|
90
89
|
case 1:
|
|
91
90
|
_a.sent();
|
|
92
|
-
return [4 /*yield*/, copyJobsAndServices(target.name)];
|
|
91
|
+
return [4 /*yield*/, utils_3.copyJobsAndServices(target.name)];
|
|
93
92
|
case 2:
|
|
94
93
|
_a.sent();
|
|
95
94
|
return [2 /*return*/];
|
|
@@ -168,8 +167,8 @@ describe('sasjs cbd with local config', function () {
|
|
|
168
167
|
return [4 /*yield*/, test_1.createTestApp(__dirname, appName)];
|
|
169
168
|
case 1:
|
|
170
169
|
_a.sent();
|
|
171
|
-
target = generateTarget(true);
|
|
172
|
-
return [4 /*yield*/, copyJobsAndServices(appName)];
|
|
170
|
+
target = utils_3.generateTarget(true);
|
|
171
|
+
return [4 /*yield*/, utils_3.copyJobsAndServices(appName)];
|
|
173
172
|
case 2:
|
|
174
173
|
_a.sent();
|
|
175
174
|
return [4 /*yield*/, utils_1.copy(path_1.default.join(__dirname, 'testScript', 'copyscript.sh'), path_1.default.join(process.projectDir, 'sasjs', 'build', 'copyscript.sh'))];
|
|
@@ -283,7 +282,7 @@ describe('sasjs cbd having stream app', function () {
|
|
|
283
282
|
return [4 /*yield*/, test_1.createTestMinimalApp(__dirname, appName)];
|
|
284
283
|
case 1:
|
|
285
284
|
_a.sent();
|
|
286
|
-
target = generateTarget(true);
|
|
285
|
+
target = utils_3.generateTarget(true);
|
|
287
286
|
return [2 /*return*/];
|
|
288
287
|
}
|
|
289
288
|
});
|
|
@@ -330,53 +329,3 @@ describe('sasjs cbd having stream app', function () {
|
|
|
330
329
|
});
|
|
331
330
|
}); });
|
|
332
331
|
});
|
|
333
|
-
var generateTarget = function (isLocal) {
|
|
334
|
-
dotenv_1.default.config();
|
|
335
|
-
var timestamp = utils_2.generateTimestamp();
|
|
336
|
-
var targetName = "cli-tests-cbd-" + timestamp;
|
|
337
|
-
var authConfig = isLocal
|
|
338
|
-
? undefined
|
|
339
|
-
: {
|
|
340
|
-
client: process.env.CLIENT,
|
|
341
|
-
secret: process.env.SECRET,
|
|
342
|
-
access_token: process.env.ACCESS_TOKEN,
|
|
343
|
-
refresh_token: process.env.REFRESH_TOKEN
|
|
344
|
-
};
|
|
345
|
-
return new utils_2.Target({
|
|
346
|
-
name: targetName,
|
|
347
|
-
serverType: utils_2.ServerType.SasViya,
|
|
348
|
-
serverUrl: process.env.VIYA_SERVER_URL,
|
|
349
|
-
appLoc: "/Public/app/cli-tests/" + targetName,
|
|
350
|
-
contextName: utils_3.contextName,
|
|
351
|
-
serviceConfig: {
|
|
352
|
-
serviceFolders: ['sasjs/testServices', 'sasjs/testJob', 'sasjs/services'],
|
|
353
|
-
initProgram: 'sasjs/testServices/serviceinit.sas',
|
|
354
|
-
termProgram: 'sasjs/testServices/serviceterm.sas',
|
|
355
|
-
macroVars: {}
|
|
356
|
-
},
|
|
357
|
-
jobConfig: {
|
|
358
|
-
jobFolders: ['sasjs/testJob'],
|
|
359
|
-
initProgram: 'sasjs/testServices/serviceinit.sas',
|
|
360
|
-
termProgram: 'sasjs/testServices/serviceterm.sas',
|
|
361
|
-
macroVars: {}
|
|
362
|
-
},
|
|
363
|
-
authConfig: authConfig,
|
|
364
|
-
deployConfig: {
|
|
365
|
-
deployServicePack: true,
|
|
366
|
-
deployScripts: ['']
|
|
367
|
-
}
|
|
368
|
-
});
|
|
369
|
-
};
|
|
370
|
-
var copyJobsAndServices = function (appName) { return __awaiter(void 0, void 0, void 0, function () {
|
|
371
|
-
return __generator(this, function (_a) {
|
|
372
|
-
switch (_a.label) {
|
|
373
|
-
case 0: return [4 /*yield*/, utils_1.copy(path_1.default.join(__dirname, 'testJob'), path_1.default.join(__dirname, appName, 'sasjs', 'testJob'))];
|
|
374
|
-
case 1:
|
|
375
|
-
_a.sent();
|
|
376
|
-
return [4 /*yield*/, utils_1.copy(path_1.default.join(__dirname, 'testServices'), path_1.default.join(__dirname, appName, 'sasjs', 'testServices'))];
|
|
377
|
-
case 2:
|
|
378
|
-
_a.sent();
|
|
379
|
-
return [2 /*return*/];
|
|
380
|
-
}
|
|
381
|
-
});
|
|
382
|
-
}); };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ServerType, Target } from '@sasjs/utils';
|
|
2
|
+
export declare const createGlobalTarget: (serverType?: ServerType) => Promise<Target>;
|
|
3
|
+
export declare const createLocalTarget: (serverType?: ServerType) => Promise<Target>;
|
|
4
|
+
export declare const updateLocalTarget: (targetName: string, data: any) => Promise<void>;
|
|
5
|
+
export declare const copyJobsAndServices: (appName: string) => Promise<void>;
|
|
6
|
+
export declare const generateTarget: (isLocal: boolean) => Target;
|