UNPKG

@sasjs/cli

Version:

Command line interface for SASjs

259 lines (258 loc) 14.1 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (g && (g = 0, op[0] && (_ = 0)), _) try { 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; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var dotenv_1 = __importDefault(require("dotenv")); var utils_1 = require("@sasjs/utils"); var config_1 = require("../../../utils/config"); var utils_2 = require("../../../utils"); var node_1 = __importDefault(require("@sasjs/adapter/node")); var list_1 = require("../list"); var create_1 = require("../create"); var move_1 = require("../move"); var delete_1 = require("../delete"); describe('sasjs folder with Viya', function () { dotenv_1.default.config(); var timestamp = (0, utils_1.generateTimestamp)(); var targetName = "cli-tests-folder-".concat(timestamp); var target = new utils_1.Target({ name: targetName, appLoc: "/Public/app/cli-tests/".concat(targetName), serverType: utils_1.ServerType.SasViya, contextName: utils_2.contextName, serverUrl: process.env.VIYA_SERVER_URL, authConfig: { client: process.env.CLIENT, secret: process.env.SECRET, access_token: process.env.ACCESS_TOKEN, refresh_token: process.env.REFRESH_TOKEN } }); var sasjs = new node_1.default({ serverUrl: target.serverUrl, httpsAgentOptions: target.httpsAgentOptions, appLoc: target.appLoc, serverType: target.serverType }); var authConfig; beforeAll(function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: process.projectDir = process.cwd(); return [4 /*yield*/, (0, utils_2.setConstants)()]; case 1: _a.sent(); return [4 /*yield*/, (0, config_1.getAuthConfig)(target)]; case 2: authConfig = _a.sent(); return [2 /*return*/]; } }); }); }); it('lists folder children', function () { return __awaiter(void 0, void 0, void 0, function () { var timestamp, testFolderPath, folderList, regex; return __generator(this, function (_a) { switch (_a.label) { case 0: timestamp = (0, utils_1.generateTimestamp)(); testFolderPath = "/Public/app/cli-tests/cli-tests-folder-".concat(timestamp); return [4 /*yield*/, createTestFolder(testFolderPath, sasjs, authConfig.access_token)]; case 1: _a.sent(); return [4 /*yield*/, (0, list_1.list)('/Public/app/cli-tests', sasjs, authConfig.access_token)]; case 2: folderList = (_a.sent()); regex = new RegExp("(?<!S)cli-tests-folder-".concat(timestamp, "(?!S)"), 'gm'); expect(regex.test(folderList)).toBe(true); return [4 /*yield*/, deleteTestFolder(testFolderPath, sasjs, authConfig.access_token)]; case 3: _a.sent(); return [2 /*return*/]; } }); }); }); it('move folders keeping the folder name', function () { return __awaiter(void 0, void 0, void 0, function () { var timestamp, testFolderPath, folderList, regex, newFolderList, regex2, newSubfolderList, regex3; return __generator(this, function (_a) { switch (_a.label) { case 0: timestamp = (0, utils_1.generateTimestamp)(); testFolderPath = "/Public/app/cli-tests/cli-tests-folder-".concat(timestamp); return [4 /*yield*/, createTestFolder(testFolderPath, sasjs, authConfig.access_token)]; case 1: _a.sent(); return [4 /*yield*/, (0, list_1.list)('/Public/app/cli-tests', sasjs, authConfig.access_token)]; case 2: folderList = (_a.sent()); regex = new RegExp("(?<!S)cli-tests-folder-".concat(timestamp, "(?!S)"), 'gm'); expect(regex.test(folderList)).toBe(true); return [4 /*yield*/, (0, create_1.create)("".concat(testFolderPath, "/temp/test"), sasjs, authConfig.access_token, false)]; case 3: _a.sent(); return [4 /*yield*/, (0, create_1.create)("".concat(testFolderPath, "/test2"), sasjs, authConfig.access_token, false)]; case 4: _a.sent(); return [4 /*yield*/, (0, move_1.move)("".concat(testFolderPath, "/temp"), "".concat(testFolderPath, "/test2"), sasjs, authConfig.access_token) // Check if operations are executed correctly ]; case 5: _a.sent(); return [4 /*yield*/, (0, list_1.list)("".concat(testFolderPath, "/test2"), sasjs, authConfig.access_token)]; case 6: newFolderList = (_a.sent()); regex2 = new RegExp("(?<!S)temp(?!S)", 'gm'); expect(regex2.test(newFolderList)).toBe(true); return [4 /*yield*/, (0, list_1.list)("".concat(testFolderPath, "/test2/temp"), sasjs, authConfig.access_token)]; case 7: newSubfolderList = (_a.sent()); regex3 = new RegExp("(?<!S)test(?!S)", 'gm'); expect(regex3.test(newSubfolderList)).toBe(true); return [4 /*yield*/, deleteTestFolder(testFolderPath, sasjs, authConfig.access_token)]; case 8: _a.sent(); return [2 /*return*/]; } }); }); }); it('move folder to the same location and rename it', function () { return __awaiter(void 0, void 0, void 0, function () { var timestamp, testFolderPath, folderList, regex, newFolderList, regex2; return __generator(this, function (_a) { switch (_a.label) { case 0: timestamp = (0, utils_1.generateTimestamp)(); testFolderPath = "/Public/app/cli-tests/cli-tests-folder-".concat(timestamp); return [4 /*yield*/, createTestFolder(testFolderPath, sasjs, authConfig.access_token)]; case 1: _a.sent(); return [4 /*yield*/, (0, list_1.list)('/Public/app/cli-tests', sasjs, authConfig.access_token)]; case 2: folderList = (_a.sent()); regex = new RegExp("(?<!S)cli-tests-folder-".concat(timestamp, "(?!S)"), 'gm'); expect(regex.test(folderList)).toBe(true); return [4 /*yield*/, (0, create_1.create)("".concat(testFolderPath, "/temp/test"), sasjs, authConfig.access_token, false)]; case 3: _a.sent(); return [4 /*yield*/, (0, move_1.move)("".concat(testFolderPath, "/temp/test"), "".concat(testFolderPath, "/temp/test_renamed"), sasjs, authConfig.access_token) // Check if operations are executed correctly ]; case 4: _a.sent(); return [4 /*yield*/, (0, list_1.list)("".concat(testFolderPath, "/temp"), sasjs, authConfig.access_token)]; case 5: newFolderList = (_a.sent()); regex2 = new RegExp("(?<!S)test_renamed(?!S)", 'gm'); expect(regex2.test(newFolderList)).toBe(true); return [4 /*yield*/, deleteTestFolder(testFolderPath, sasjs, authConfig.access_token)]; case 6: _a.sent(); return [2 /*return*/]; } }); }); }); it('move folder to different location renaming the folder', function () { return __awaiter(void 0, void 0, void 0, function () { var timestamp, testFolderPath, folderList, regex, newFolderList, regex2; return __generator(this, function (_a) { switch (_a.label) { case 0: timestamp = (0, utils_1.generateTimestamp)(); testFolderPath = "/Public/app/cli-tests/cli-tests-folder-".concat(timestamp); return [4 /*yield*/, createTestFolder(testFolderPath, sasjs, authConfig.access_token)]; case 1: _a.sent(); return [4 /*yield*/, (0, list_1.list)('/Public/app/cli-tests', sasjs, authConfig.access_token) /** * This regex function will pass only if it matches the whole word. * It will ignore whitespaces. */ ]; case 2: folderList = _a.sent(); regex = new RegExp("(?<!S)cli-tests-folder-".concat(timestamp, "(?!S)"), 'gm'); expect(regex.test(folderList)).toBe(true); return [4 /*yield*/, (0, create_1.create)("".concat(testFolderPath, "/temp/test"), sasjs, authConfig.access_token, false)]; case 3: _a.sent(); return [4 /*yield*/, (0, create_1.create)("".concat(testFolderPath, "/test2"), sasjs, authConfig.access_token, false)]; case 4: _a.sent(); return [4 /*yield*/, (0, move_1.move)("".concat(testFolderPath, "/temp"), "".concat(testFolderPath, "/test2/test_renamed"), sasjs, authConfig.access_token) // Check if operations are executed correctly ]; case 5: _a.sent(); return [4 /*yield*/, (0, list_1.list)("".concat(testFolderPath, "/test2"), sasjs, authConfig.access_token) /** * This regex function will pass only if it matches the whole word. * It will ignore whitespaces. */ ]; case 6: newFolderList = _a.sent(); regex2 = new RegExp("(?<!S)test_renamed(?!S)", 'gm'); expect(regex2.test(newFolderList)).toBe(true); return [4 /*yield*/, deleteTestFolder(testFolderPath, sasjs, authConfig.access_token)]; case 7: _a.sent(); return [2 /*return*/]; } }); }); }); }); var createTestFolder = function (testFolderPath, sasjs, accessToken) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, (0, create_1.create)(testFolderPath, sasjs, accessToken, false)]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }; var deleteTestFolder = function (testFolderPath, sasjs, accessToken) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, (0, delete_1.deleteFolder)(testFolderPath, sasjs, accessToken)]; case 1: _a.sent(); return [2 /*return*/]; } }); }); };