@microsoft/connected-workbooks 3.1.2-beta.2 → 3.1.3-beta

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.
@@ -25,41 +25,41 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  return result;
26
26
  };
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
- const utils_1 = require("../src/utils/");
29
- const base64 = __importStar(require("base64-js"));
30
- describe("ArrayReader tests", () => {
31
- const buffer = base64.toByteArray("UHJhaXNlIFRoZSBTdW4h").buffer;
32
- const arrReader = new utils_1.arrayUtils.ArrayReader(buffer);
33
- test("getInt32 test", () => {
34
- const int32 = arrReader.getInt32();
28
+ var utils_1 = require("../src/utils/");
29
+ var base64 = __importStar(require("base64-js"));
30
+ describe("ArrayReader tests", function () {
31
+ var buffer = base64.toByteArray("UHJhaXNlIFRoZSBTdW4h").buffer;
32
+ var arrReader = new utils_1.arrayUtils.ArrayReader(buffer);
33
+ test("getInt32 test", function () {
34
+ var int32 = arrReader.getInt32();
35
35
  expect(int32).toEqual(1767993936);
36
36
  expect(arrReader._position).toEqual(4);
37
37
  });
38
- test("getBytes test", () => {
39
- const bytes = arrReader.getBytes(4);
38
+ test("getBytes test", function () {
39
+ var bytes = arrReader.getBytes(4);
40
40
  expect(bytes).toEqual(new Uint8Array([115, 101, 32, 84]));
41
41
  expect(arrReader._position).toEqual(8);
42
42
  });
43
- test("reset test", () => {
43
+ test("reset test", function () {
44
44
  arrReader.reset();
45
45
  expect(arrReader._position).toEqual(0);
46
46
  });
47
47
  });
48
- test("getInt32Buffer test", () => {
49
- const size = 4;
50
- const val = 4;
51
- const packageSizeBuffer = new ArrayBuffer(size);
48
+ test("getInt32Buffer test", function () {
49
+ var size = 4;
50
+ var val = 4;
51
+ var packageSizeBuffer = new ArrayBuffer(size);
52
52
  new DataView(packageSizeBuffer).setInt32(0, val, true);
53
- const expected = new Uint8Array(packageSizeBuffer);
54
- const actual = utils_1.arrayUtils.getInt32Buffer(size);
53
+ var expected = new Uint8Array(packageSizeBuffer);
54
+ var actual = utils_1.arrayUtils.getInt32Buffer(size);
55
55
  expect(actual).toStrictEqual(expected);
56
56
  });
57
- test("concatArrays test", () => {
58
- const uIntArr1 = new Uint8Array(4).fill(5);
59
- const uIntArr2 = new Uint8Array(2).fill(10);
60
- const expected = new Uint8Array(6);
57
+ test("concatArrays test", function () {
58
+ var uIntArr1 = new Uint8Array(4).fill(5);
59
+ var uIntArr2 = new Uint8Array(2).fill(10);
60
+ var expected = new Uint8Array(6);
61
61
  expected.set(uIntArr1, 0);
62
62
  expected.set(uIntArr2, 4);
63
- const actual = utils_1.arrayUtils.concatArrays(uIntArr1, uIntArr2);
63
+ var actual = utils_1.arrayUtils.concatArrays(uIntArr1, uIntArr2);
64
64
  expect(actual).toStrictEqual(expected);
65
65
  });
@@ -2,24 +2,26 @@
2
2
  // Copyright (c) Microsoft Corporation.
3
3
  // Licensed under the MIT license.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- const types_1 = require("../src/types");
6
- const utils_1 = require("../src/utils");
7
- describe("Document Utils tests", () => {
8
- test("ResolveType date not supported success", () => {
5
+ var types_1 = require("../src/types");
6
+ var utils_1 = require("../src/utils");
7
+ var constants_1 = require("../src/utils/constants");
8
+ describe("Document Utils tests", function () {
9
+ test("ResolveType date not supported success", function () {
9
10
  expect(utils_1.documentUtils.resolveType("5-4-2023 00:00", false)).toEqual(types_1.DataTypes.string);
10
11
  });
11
- test("ResolveType string success", () => {
12
+ test("ResolveType string success", function () {
12
13
  expect(utils_1.documentUtils.resolveType("sTrIng", false)).toEqual(types_1.DataTypes.string);
13
14
  expect(utils_1.documentUtils.resolveType("True", false)).toEqual(types_1.DataTypes.string);
14
15
  expect(utils_1.documentUtils.resolveType("False", false)).toEqual(types_1.DataTypes.string);
16
+ expect(utils_1.documentUtils.resolveType(" ", false)).toEqual(types_1.DataTypes.string);
15
17
  });
16
- test("ResolveType boolean success", () => {
18
+ test("ResolveType boolean success", function () {
17
19
  expect(utils_1.documentUtils.resolveType("true", false)).toEqual(types_1.DataTypes.boolean);
18
20
  expect(utils_1.documentUtils.resolveType(" true", false)).toEqual(types_1.DataTypes.boolean);
19
21
  expect(utils_1.documentUtils.resolveType("false", false)).toEqual(types_1.DataTypes.boolean);
20
22
  expect(utils_1.documentUtils.resolveType(" false", false)).toEqual(types_1.DataTypes.boolean);
21
23
  });
22
- test("ResolveType number success", () => {
24
+ test("ResolveType number success", function () {
23
25
  expect(utils_1.documentUtils.resolveType("100000", false)).toEqual(types_1.DataTypes.number);
24
26
  expect(utils_1.documentUtils.resolveType("1000.00", false)).toEqual(types_1.DataTypes.number);
25
27
  expect(utils_1.documentUtils.resolveType("1000.50", false)).toEqual(types_1.DataTypes.number);
@@ -27,9 +29,36 @@ describe("Document Utils tests", () => {
27
29
  expect(utils_1.documentUtils.resolveType("1.23450", false)).toEqual(types_1.DataTypes.number);
28
30
  expect(utils_1.documentUtils.resolveType("1.23.4.50", false)).toEqual(types_1.DataTypes.string);
29
31
  });
30
- test("ResolveType header row success", () => {
32
+ test("ResolveType header row success", function () {
31
33
  expect(utils_1.documentUtils.resolveType("100000", true)).toEqual(types_1.DataTypes.string);
32
34
  expect(utils_1.documentUtils.resolveType("true", true)).toEqual(types_1.DataTypes.string);
33
35
  expect(utils_1.documentUtils.resolveType("string", true)).toEqual(types_1.DataTypes.string);
34
36
  });
37
+ test("Cell Data Element preserves spaces", function () {
38
+ var doc = document.implementation.createDocument("", "", null);
39
+ var cell = doc.createElementNS("", constants_1.element.kindCell);
40
+ var cellData = doc.createElementNS("", constants_1.element.cellValue);
41
+ utils_1.documentUtils.updateCellData(" ", cell, cellData, false);
42
+ expect(cellData.getAttribute("xml:space")).toEqual("preserve");
43
+ cellData.removeAttribute("xml:space");
44
+ utils_1.documentUtils.updateCellData("a ", cell, cellData, false);
45
+ expect(cellData.getAttribute("xml:space")).toEqual("preserve");
46
+ cellData.removeAttribute("xml:space");
47
+ utils_1.documentUtils.updateCellData(" a", cell, cellData, false);
48
+ expect(cellData.getAttribute("xml:space")).toEqual("preserve");
49
+ cellData.removeAttribute("xml:space");
50
+ utils_1.documentUtils.updateCellData("a a", cell, cellData, false);
51
+ expect(cellData.getAttribute("xml:space")).toBeNull();
52
+ });
53
+ test("Test convert column number To Excel Column", function () {
54
+ expect(utils_1.documentUtils.convertToExcelColumn(0)).toEqual("A");
55
+ expect(utils_1.documentUtils.convertToExcelColumn(701)).toEqual("ZZ");
56
+ expect(utils_1.documentUtils.convertToExcelColumn(16383)).toEqual("XFD");
57
+ try {
58
+ utils_1.documentUtils.convertToExcelColumn(16384);
59
+ }
60
+ catch (e) {
61
+ expect(e.message).toEqual("Column index out of range");
62
+ }
63
+ });
35
64
  });
@@ -3,10 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const constants_1 = require("../src/utils/constants");
7
- const gridUtils_1 = __importDefault(require("../src/utils/gridUtils"));
8
- const columnName = (i) => `${constants_1.defaults.columnName} ${i}`;
9
- describe("Grid Utils tests", () => {
6
+ var constants_1 = require("../src/utils/constants");
7
+ var gridUtils_1 = __importDefault(require("../src/utils/gridUtils"));
8
+ var columnName = function (i) { return "".concat(constants_1.defaults.columnName, " ").concat(i); };
9
+ describe("Grid Utils tests", function () {
10
10
  test.concurrent.each([
11
11
  ["null grid", null, { columnNames: [columnName(1)], rows: [[""]] }],
12
12
  ["null grid data", { data: null }, { columnNames: [columnName(1)], rows: [[""]] }],
@@ -135,7 +135,7 @@ describe("Grid Utils tests", () => {
135
135
  rows: [["", ""]],
136
136
  },
137
137
  ],
138
- ])("%s:\n\t%j should be parsed to %j", (scenario, input, expected) => {
138
+ ])("%s:\n\t%j should be parsed to %j", function (scenario, input, expected) {
139
139
  expect(gridUtils_1.default.parseToTableData(input)).toEqual(expected);
140
140
  });
141
141
  // promote headers, without adjust column names, errors
@@ -150,8 +150,8 @@ describe("Grid Utils tests", () => {
150
150
  ["1", "2"],
151
151
  ],
152
152
  ],
153
- ])(`parsing %j should throw "${constants_1.promotedHeadersCannotBeUsedWithoutAdjustingColumnNamesErr}"`, (input) => {
154
- expect(() => gridUtils_1.default.parseToTableData({ data: input, config: { promoteHeaders: true, adjustColumnNames: false } })).toThrowError(constants_1.promotedHeadersCannotBeUsedWithoutAdjustingColumnNamesErr);
153
+ ])("parsing %j should throw \"".concat(constants_1.promotedHeadersCannotBeUsedWithoutAdjustingColumnNamesErr, "\""), function (input) {
154
+ expect(function () { return gridUtils_1.default.parseToTableData({ data: input, config: { promoteHeaders: true, adjustColumnNames: false } }); }).toThrowError(constants_1.promotedHeadersCannotBeUsedWithoutAdjustingColumnNamesErr);
155
155
  });
156
156
  // array isn't MxN
157
157
  test.concurrent.each([
@@ -162,7 +162,7 @@ describe("Grid Utils tests", () => {
162
162
  ],
163
163
  ],
164
164
  [[["אבג", "אבג"], ["1", "2"], ["3"]]],
165
- ])(`parsing %j should throw "${constants_1.arrayIsntMxNErr}"`, (input) => {
166
- expect(() => gridUtils_1.default.parseToTableData({ data: input, config: { promoteHeaders: true, adjustColumnNames: false } })).toThrowError(constants_1.arrayIsntMxNErr);
165
+ ])("parsing %j should throw \"".concat(constants_1.arrayIsntMxNErr, "\""), function (input) {
166
+ expect(function () { return gridUtils_1.default.parseToTableData({ data: input, config: { promoteHeaders: true, adjustColumnNames: false } }); }).toThrowError(constants_1.arrayIsntMxNErr);
167
167
  });
168
168
  });
@@ -2,105 +2,106 @@
2
2
  // Copyright (c) Microsoft Corporation.
3
3
  // Licensed under the MIT license.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- const utils_1 = require("../src/utils");
6
- const jsdom_1 = require("jsdom");
5
+ var utils_1 = require("../src/utils");
6
+ var jsdom_1 = require("jsdom");
7
7
  // Create a JSDOM instance
8
- const { window } = new jsdom_1.JSDOM("<!DOCTYPE html><html><body></body></html>");
9
- const document = window.document;
8
+ var window = new jsdom_1.JSDOM("<!DOCTYPE html><html><body></body></html>").window;
9
+ var document = window.document;
10
10
  // Helper function to create table rows and cells
11
- const createRowWithCells = (cellValues, celltypes = "td") => {
12
- const row = document.createElement("tr");
13
- cellValues.forEach((value) => {
14
- const cell = document.createElement(celltypes);
11
+ var createRowWithCells = function (cellValues, celltypes) {
12
+ if (celltypes === void 0) { celltypes = "td"; }
13
+ var row = document.createElement("tr");
14
+ cellValues.forEach(function (value) {
15
+ var cell = document.createElement(celltypes);
15
16
  cell.textContent = value;
16
17
  row.appendChild(cell);
17
18
  });
18
19
  return row;
19
20
  };
20
- describe("extractTableValues", () => {
21
- test("returns an empty array for an empty table", () => {
21
+ describe("extractTableValues", function () {
22
+ test("returns an empty array for an empty table", function () {
22
23
  // Create an empty table element
23
- const table = document.createElement("table");
24
+ var table = document.createElement("table");
24
25
  // Call the method and expect an empty array as the result
25
26
  expect(utils_1.htmlUtils.extractTableValues(table)).toEqual([]);
26
27
  });
27
- test("returns an empty row for an empty tr", () => {
28
- const table = document.createElement("table");
29
- const tbody = document.createElement("tbody");
30
- const row = createRowWithCells([]);
28
+ test("returns an empty row for an empty tr", function () {
29
+ var table = document.createElement("table");
30
+ var tbody = document.createElement("tbody");
31
+ var row = createRowWithCells([]);
31
32
  tbody.appendChild(row);
32
33
  table.appendChild(tbody);
33
34
  expect(utils_1.htmlUtils.extractTableValues(table)).toEqual([[]]);
34
35
  });
35
- test("extracts values correctly from a table with multiple rows and cells", () => {
36
- const table = document.createElement("table");
37
- const tbody = document.createElement("tbody");
38
- const row1 = createRowWithCells(["A", "B"]);
39
- const row2 = createRowWithCells(["C", "D"]);
36
+ test("extracts values correctly from a table with multiple rows and cells", function () {
37
+ var table = document.createElement("table");
38
+ var tbody = document.createElement("tbody");
39
+ var row1 = createRowWithCells(["A", "B"]);
40
+ var row2 = createRowWithCells(["C", "D"]);
40
41
  tbody.appendChild(row1);
41
42
  tbody.appendChild(row2);
42
43
  table.appendChild(tbody);
43
- const expectedResult = [
44
+ var expectedResult = [
44
45
  ["A", "B"],
45
46
  ["C", "D"],
46
47
  ];
47
48
  expect(utils_1.htmlUtils.extractTableValues(table)).toEqual(expectedResult);
48
49
  });
49
- test("handles empty cells by using an empty string", () => {
50
- const table = document.createElement("table");
51
- const tbody = document.createElement("tbody");
52
- const row1 = createRowWithCells(["A", ""]);
53
- const row2 = createRowWithCells(["", "D"]);
50
+ test("handles empty cells by using an empty string", function () {
51
+ var table = document.createElement("table");
52
+ var tbody = document.createElement("tbody");
53
+ var row1 = createRowWithCells(["A", ""]);
54
+ var row2 = createRowWithCells(["", "D"]);
54
55
  tbody.appendChild(row1);
55
56
  tbody.appendChild(row2);
56
57
  table.appendChild(tbody);
57
- const expectedResult = [
58
+ var expectedResult = [
58
59
  ["A", ""],
59
60
  ["", "D"],
60
61
  ];
61
62
  expect(utils_1.htmlUtils.extractTableValues(table)).toEqual(expectedResult);
62
63
  });
63
- test("handle table header (th) cells", () => {
64
- const table = document.createElement("table");
65
- const tbody = document.createElement("tbody");
66
- const headerRow = createRowWithCells(["Header 1", "Header 2"], "th");
67
- const dataRow = createRowWithCells(["A", "B"]);
64
+ test("handle table header (th) cells", function () {
65
+ var table = document.createElement("table");
66
+ var tbody = document.createElement("tbody");
67
+ var headerRow = createRowWithCells(["Header 1", "Header 2"], "th");
68
+ var dataRow = createRowWithCells(["A", "B"]);
68
69
  tbody.appendChild(headerRow);
69
70
  tbody.appendChild(dataRow);
70
71
  table.appendChild(tbody);
71
- const expectedResult = [
72
+ var expectedResult = [
72
73
  ["Header 1", "Header 2"],
73
74
  ["A", "B"],
74
75
  ];
75
76
  expect(utils_1.htmlUtils.extractTableValues(table)).toEqual(expectedResult);
76
77
  });
77
- test("handles tables with multiple tbody elements", () => {
78
- const table = document.createElement("table");
79
- const tbody1 = document.createElement("tbody");
80
- const row1 = createRowWithCells(["A", "B"]);
78
+ test("handles tables with multiple tbody elements", function () {
79
+ var table = document.createElement("table");
80
+ var tbody1 = document.createElement("tbody");
81
+ var row1 = createRowWithCells(["A", "B"]);
81
82
  tbody1.appendChild(row1);
82
83
  table.appendChild(tbody1);
83
- const tbody2 = document.createElement("tbody");
84
- const row2 = createRowWithCells(["C", "D"]);
84
+ var tbody2 = document.createElement("tbody");
85
+ var row2 = createRowWithCells(["C", "D"]);
85
86
  tbody2.appendChild(row2);
86
87
  table.appendChild(tbody2);
87
- const expectedResult = [
88
+ var expectedResult = [
88
89
  ["A", "B"],
89
90
  ["C", "D"],
90
91
  ];
91
92
  expect(utils_1.htmlUtils.extractTableValues(table)).toEqual(expectedResult);
92
93
  });
93
- test("handles tables that are not MxN", () => {
94
- const table = document.createElement("table");
95
- const tbody1 = document.createElement("tbody");
96
- const row1 = createRowWithCells(["A", "B"]);
94
+ test("handles tables that are not MxN", function () {
95
+ var table = document.createElement("table");
96
+ var tbody1 = document.createElement("tbody");
97
+ var row1 = createRowWithCells(["A", "B"]);
97
98
  tbody1.appendChild(row1);
98
99
  table.appendChild(tbody1);
99
- const tbody2 = document.createElement("tbody");
100
- const row2 = createRowWithCells(["C", "D", "E"]);
100
+ var tbody2 = document.createElement("tbody");
101
+ var row2 = createRowWithCells(["C", "D", "E"]);
101
102
  tbody2.appendChild(row2);
102
103
  table.appendChild(tbody2);
103
- const expectedResult = [
104
+ var expectedResult = [
104
105
  ["A", "B"],
105
106
  ["C", "D", "E"],
106
107
  ];
@@ -10,50 +10,103 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  step((generator = generator.apply(thisArg, _arguments || [])).next());
11
11
  });
12
12
  };
13
+ var __generator = (this && this.__generator) || function (thisArg, body) {
14
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
15
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
16
+ function verb(n) { return function (v) { return step([n, v]); }; }
17
+ function step(op) {
18
+ if (f) throw new TypeError("Generator is already executing.");
19
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
20
+ 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;
21
+ if (y = 0, t) op = [op[0] & 2, t.value];
22
+ switch (op[0]) {
23
+ case 0: case 1: t = op; break;
24
+ case 4: _.label++; return { value: op[1], done: false };
25
+ case 5: _.label++; y = op[1]; op = [0]; continue;
26
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
27
+ default:
28
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
29
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
30
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
31
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
32
+ if (t[2]) _.ops.pop();
33
+ _.trys.pop(); continue;
34
+ }
35
+ op = body.call(thisArg, _);
36
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
37
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
38
+ }
39
+ };
13
40
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
41
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
42
  };
16
43
  Object.defineProperty(exports, "__esModule", { value: true });
17
- const util_1 = require("util");
18
- const mashupDocumentParser_1 = require("../src/utils/mashupDocumentParser");
19
- const utils_1 = require("../src/utils");
20
- const mocks_1 = require("./mocks");
21
- const base64_js_1 = __importDefault(require("base64-js"));
22
- const jszip_1 = __importDefault(require("jszip"));
23
- const workbookTemplate_1 = require("../src/workbookTemplate");
24
- const constants_1 = require("../src/utils/constants");
25
- const util_2 = __importDefault(require("util"));
44
+ var util_1 = require("util");
45
+ var mashupDocumentParser_1 = require("../src/utils/mashupDocumentParser");
46
+ var utils_1 = require("../src/utils");
47
+ var mocks_1 = require("./mocks");
48
+ var base64_js_1 = __importDefault(require("base64-js"));
49
+ var jszip_1 = __importDefault(require("jszip"));
50
+ var workbookTemplate_1 = require("../src/workbookTemplate");
51
+ var constants_1 = require("../src/utils/constants");
52
+ var util_2 = __importDefault(require("util"));
26
53
  global.TextDecoder = util_1.TextDecoder;
27
54
  global.TextEncoder = util_1.TextEncoder;
28
- describe("Mashup Document Parser tests", () => {
29
- test("ReplaceSingleQuery test", () => __awaiter(void 0, void 0, void 0, function* () {
55
+ describe("Mashup Document Parser tests", function () {
56
+ test("ReplaceSingleQuery test", function () { return __awaiter(void 0, void 0, void 0, function () {
57
+ var defaultZipFile, originalBase64Str, replacedQueryBase64Str, buffer, mashupArray, startArray, packageSize, packageOPC, zip, section1m, mocksection1;
30
58
  var _a;
31
- const defaultZipFile = yield jszip_1.default.loadAsync(workbookTemplate_1.SIMPLE_QUERY_WORKBOOK_TEMPLATE, { base64: true });
32
- const originalBase64Str = yield utils_1.pqUtils.getBase64(defaultZipFile);
33
- if (originalBase64Str) {
34
- const replacedQueryBase64Str = yield (0, mashupDocumentParser_1.replaceSingleQuery)(originalBase64Str, "newQueryName", mocks_1.section1mNewQueryNameSimpleMock);
35
- const buffer = base64_js_1.default.toByteArray(replacedQueryBase64Str).buffer;
36
- const mashupArray = new utils_1.arrayUtils.ArrayReader(buffer);
37
- const startArray = mashupArray.getBytes(4);
38
- const packageSize = mashupArray.getInt32();
39
- const packageOPC = mashupArray.getBytes(packageSize);
40
- const zip = yield jszip_1.default.loadAsync(packageOPC);
41
- const section1m = yield ((_a = zip.file(constants_1.section1mPath)) === null || _a === void 0 ? void 0 : _a.async("text"));
42
- if (section1m) {
43
- const mocksection1 = mocks_1.section1mNewQueryNameSimpleMock.replace(/ /g, "");
44
- expect(section1m.replace(/ /g, "")).toEqual(mocksection1);
59
+ return __generator(this, function (_b) {
60
+ switch (_b.label) {
61
+ case 0: return [4 /*yield*/, jszip_1.default.loadAsync(workbookTemplate_1.SIMPLE_QUERY_WORKBOOK_TEMPLATE, { base64: true })];
62
+ case 1:
63
+ defaultZipFile = _b.sent();
64
+ return [4 /*yield*/, utils_1.pqUtils.getBase64(defaultZipFile)];
65
+ case 2:
66
+ originalBase64Str = _b.sent();
67
+ if (!originalBase64Str) return [3 /*break*/, 6];
68
+ return [4 /*yield*/, (0, mashupDocumentParser_1.replaceSingleQuery)(originalBase64Str, "newQueryName", mocks_1.section1mNewQueryNameSimpleMock)];
69
+ case 3:
70
+ replacedQueryBase64Str = _b.sent();
71
+ buffer = base64_js_1.default.toByteArray(replacedQueryBase64Str).buffer;
72
+ mashupArray = new utils_1.arrayUtils.ArrayReader(buffer);
73
+ startArray = mashupArray.getBytes(4);
74
+ packageSize = mashupArray.getInt32();
75
+ packageOPC = mashupArray.getBytes(packageSize);
76
+ return [4 /*yield*/, jszip_1.default.loadAsync(packageOPC)];
77
+ case 4:
78
+ zip = _b.sent();
79
+ return [4 /*yield*/, ((_a = zip.file(constants_1.section1mPath)) === null || _a === void 0 ? void 0 : _a.async("text"))];
80
+ case 5:
81
+ section1m = _b.sent();
82
+ if (section1m) {
83
+ mocksection1 = mocks_1.section1mNewQueryNameSimpleMock.replace(/ /g, "");
84
+ expect(section1m.replace(/ /g, "")).toEqual(mocksection1);
85
+ }
86
+ _b.label = 6;
87
+ case 6: return [2 /*return*/];
88
+ }
89
+ });
90
+ }); });
91
+ test("Power Query MetadataXml test", function () { return __awaiter(void 0, void 0, void 0, function () {
92
+ var defaultZipFile, originalBase64Str, metadata, newMetadataArray, metadataString;
93
+ return __generator(this, function (_a) {
94
+ switch (_a.label) {
95
+ case 0: return [4 /*yield*/, jszip_1.default.loadAsync(workbookTemplate_1.SIMPLE_QUERY_WORKBOOK_TEMPLATE, { base64: true })];
96
+ case 1:
97
+ defaultZipFile = _a.sent();
98
+ return [4 /*yield*/, utils_1.pqUtils.getBase64(defaultZipFile)];
99
+ case 2:
100
+ originalBase64Str = _a.sent();
101
+ if (originalBase64Str) {
102
+ metadata = (0, mashupDocumentParser_1.getPackageComponents)(originalBase64Str).metadata;
103
+ newMetadataArray = (0, mashupDocumentParser_1.editSingleQueryMetadata)(metadata, { queryName: "newQueryName" });
104
+ metadataString = new util_2.default.TextDecoder("utf-8").decode(newMetadataArray);
105
+ expect(metadataString.replace(/ /g, "")).toContain(mocks_1.pqMetadataXmlMockPart1.replace(/ /g, ""));
106
+ expect(metadataString.replace(/ /g, "")).toContain(mocks_1.pqMetadataXmlMockPart2.replace(/ /g, ""));
107
+ }
108
+ return [2 /*return*/];
45
109
  }
46
- }
47
- }));
48
- test("Power Query MetadataXml test", () => __awaiter(void 0, void 0, void 0, function* () {
49
- const defaultZipFile = yield jszip_1.default.loadAsync(workbookTemplate_1.SIMPLE_QUERY_WORKBOOK_TEMPLATE, { base64: true });
50
- const originalBase64Str = yield utils_1.pqUtils.getBase64(defaultZipFile);
51
- if (originalBase64Str) {
52
- const { metadata } = (0, mashupDocumentParser_1.getPackageComponents)(originalBase64Str);
53
- const newMetadataArray = (0, mashupDocumentParser_1.editSingleQueryMetadata)(metadata, { queryName: "newQueryName" });
54
- const metadataString = new util_2.default.TextDecoder("utf-8").decode(newMetadataArray);
55
- expect(metadataString.replace(/ /g, "")).toContain(mocks_1.pqMetadataXmlMockPart1.replace(/ /g, ""));
56
- expect(metadataString.replace(/ /g, "")).toContain(mocks_1.pqMetadataXmlMockPart2.replace(/ /g, ""));
57
- }
58
- }));
110
+ });
111
+ }); });
59
112
  });
@@ -4,4 +4,4 @@ exports.relationshipInfo = exports.item2Path = exports.item1Path = exports.pqEmp
4
4
  exports.pqEmptySingleQueryBase64 = "AAAAAD8DAABQSwMEFAACAAgANG8kVJyKlF+iAAAA9QAAABIAHABDb25maWcvUGFja2FnZS54bWwgohgAKKAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAhY+xDoIwFEV/hXSnLXUR8iiDqyQmROPaQMVGeBhaLP/m4Cf5C2IUdXO8557h3vv1BtnYNsFF99Z0mJKIchJoLLvKYJ2SwR3CJckkbFR5UrUOJhltMtoqJUfnzglj3nvqF7TrayY4j9g+XxflUbeKfGTzXw4NWqew1ETC7jVGChrHVHBBObCZQW7w24tp7rP9gbAaGjf0WmoMtwWwOQJ7X5APUEsDBBQAAgAIADRvJFQPyumrpAAAAOkAAAATABwAW0NvbnRlbnRfVHlwZXNdLnhtbCCiGAAooBQAAAAAAAAAAAAAAAAAAAAAAAAAAABtjksOwjAMRK8SeZ+6sEAINWUB3IALRMH9iOajxkXhbCw4ElcgbXeIpWfmeebzelfHZAfxoDH23inYFCUIcsbfetcqmLiRezjW1fUZKIocdVFBxxwOiNF0ZHUsfCCXncaPVnM+xxaDNnfdEm7LcofGOybHkucfUFdnavQ0sLikLK+1GQdxWnNzlQKmxLjI+JewP3kdwtAbzdnEJG2UdiFxGV5/AVBLAwQUAAIACAA0byRUPfc/WjsAAABKAAAAEwAcAEZvcm11bGFzL1NlY3Rpb24xLm0gohgAKKAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAK05NLsnMz1MIhtCG1rxcvFzFGYlFqSkKgaWpRZWGCrYKOaklvFwKQBCcX1qUnAoUUVLi5crMQxa0BgBQSwECLQAUAAIACAA0byRUnIqUX6IAAAD1AAAAEgAAAAAAAAAAAAAAAAAAAAAAQ29uZmlnL1BhY2thZ2UueG1sUEsBAi0AFAACAAgANG8kVA/K6aukAAAA6QAAABMAAAAAAAAAAAAAAAAA7gAAAFtDb250ZW50X1R5cGVzXS54bWxQSwECLQAUAAIACAA0byRUPfc/WjsAAABKAAAAEwAAAAAAAAAAAAAAAADfAQAARm9ybXVsYXMvU2VjdGlvbjEubVBLBQYAAAAAAwADAMIAAABnAgAAAAAQAQAA77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48UGVybWlzc2lvbkxpc3QgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSI+PENhbkV2YWx1YXRlRnV0dXJlUGFja2FnZXM+ZmFsc2U8L0NhbkV2YWx1YXRlRnV0dXJlUGFja2FnZXM+PEZpcmV3YWxsRW5hYmxlZD50cnVlPC9GaXJld2FsbEVuYWJsZWQ+PC9QZXJtaXNzaW9uTGlzdD5XBwAAAAAAADUHAADvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PjxMb2NhbFBhY2thZ2VNZXRhZGF0YUZpbGUgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSI+PEl0ZW1zPjxJdGVtPjxJdGVtTG9jYXRpb24+PEl0ZW1UeXBlPkFsbEZvcm11bGFzPC9JdGVtVHlwZT48SXRlbVBhdGggLz48L0l0ZW1Mb2NhdGlvbj48U3RhYmxlRW50cmllcyAvPjwvSXRlbT48SXRlbT48SXRlbUxvY2F0aW9uPjxJdGVtVHlwZT5Gb3JtdWxhPC9JdGVtVHlwZT48SXRlbVBhdGg+U2VjdGlvbjEvUXVlcnkxPC9JdGVtUGF0aD48L0l0ZW1Mb2NhdGlvbj48U3RhYmxlRW50cmllcz48RW50cnkgVHlwZT0iSXNQcml2YXRlIiBWYWx1ZT0ibDAiIC8+PEVudHJ5IFR5cGU9IkZpbGxFbmFibGVkIiBWYWx1ZT0ibDEiIC8+PEVudHJ5IFR5cGU9IkZpbGxPYmplY3RUeXBlIiBWYWx1ZT0ic1RhYmxlIiAvPjxFbnRyeSBUeXBlPSJGaWxsVG9EYXRhTW9kZWxFbmFibGVkIiBWYWx1ZT0ibDAiIC8+PEVudHJ5IFR5cGU9IkJ1ZmZlck5leHRSZWZyZXNoIiBWYWx1ZT0ibDEiIC8+PEVudHJ5IFR5cGU9IlJlc3VsdFR5cGUiIFZhbHVlPSJzVGV4dCIgLz48RW50cnkgVHlwZT0iTmFtZVVwZGF0ZWRBZnRlckZpbGwiIFZhbHVlPSJsMCIgLz48RW50cnkgVHlwZT0iTmF2aWdhdGlvblN0ZXBOYW1lIiBWYWx1ZT0ic05hdmlnYXRpb24iIC8+PEVudHJ5IFR5cGU9IkZpbGxUYXJnZXQiIFZhbHVlPSJzUXVlcnkxIiAvPjxFbnRyeSBUeXBlPSJGaWxsZWRDb21wbGV0ZVJlc3VsdFRvV29ya3NoZWV0IiBWYWx1ZT0ibDEiIC8+PEVudHJ5IFR5cGU9IkFkZGVkVG9EYXRhTW9kZWwiIFZhbHVlPSJsMCIgLz48RW50cnkgVHlwZT0iRmlsbENvdW50IiBWYWx1ZT0ibDEiIC8+PEVudHJ5IFR5cGU9IkZpbGxFcnJvckNvZGUiIFZhbHVlPSJzVW5rbm93biIgLz48RW50cnkgVHlwZT0iRmlsbEVycm9yQ291bnQiIFZhbHVlPSJsMCIgLz48RW50cnkgVHlwZT0iRmlsbExhc3RVcGRhdGVkIiBWYWx1ZT0iZDIwMjItMDEtMDRUMTM6NTc6NDEuNDI4Njg3NloiIC8+PEVudHJ5IFR5cGU9IkZpbGxDb2x1bW5UeXBlcyIgVmFsdWU9InNCZz09IiAvPjxFbnRyeSBUeXBlPSJGaWxsQ29sdW1uTmFtZXMiIFZhbHVlPSJzWyZxdW90O1F1ZXJ5MSZxdW90O10iIC8+PEVudHJ5IFR5cGU9IkZpbGxTdGF0dXMiIFZhbHVlPSJzQ29tcGxldGUiIC8+PEVudHJ5IFR5cGU9IlJlbGF0aW9uc2hpcEluZm9Db250YWluZXIiIFZhbHVlPSJzeyZxdW90O2NvbHVtbkNvdW50JnF1b3Q7OjEsJnF1b3Q7a2V5Q29sdW1uTmFtZXMmcXVvdDs6W10sJnF1b3Q7cXVlcnlSZWxhdGlvbnNoaXBzJnF1b3Q7OltdLCZxdW90O2NvbHVtbklkZW50aXRpZXMmcXVvdDs6WyZxdW90O1NlY3Rpb24xL1F1ZXJ5MS9BdXRvUmVtb3ZlZENvbHVtbnMxLntRdWVyeTEsMH0mcXVvdDtdLCZxdW90O0NvbHVtbkNvdW50JnF1b3Q7OjEsJnF1b3Q7S2V5Q29sdW1uTmFtZXMmcXVvdDs6W10sJnF1b3Q7Q29sdW1uSWRlbnRpdGllcyZxdW90OzpbJnF1b3Q7U2VjdGlvbjEvUXVlcnkxL0F1dG9SZW1vdmVkQ29sdW1uczEue1F1ZXJ5MSwwfSZxdW90O10sJnF1b3Q7UmVsYXRpb25zaGlwSW5mbyZxdW90OzpbXX0iIC8+PC9TdGFibGVFbnRyaWVzPjwvSXRlbT48SXRlbT48SXRlbUxvY2F0aW9uPjxJdGVtVHlwZT5Gb3JtdWxhPC9JdGVtVHlwZT48SXRlbVBhdGg+U2VjdGlvbjEvUXVlcnkxL1NvdXJjZTwvSXRlbVBhdGg+PC9JdGVtTG9jYXRpb24+PFN0YWJsZUVudHJpZXMgLz48L0l0ZW0+PC9JdGVtcz48L0xvY2FsUGFja2FnZU1ldGFkYXRhRmlsZT4WAAAAUEsFBgAAAAAAAAAAAAAAAAAAAAAAANoAAAABAAAA0Iyd3wEV0RGMegDAT8KX6wEAAABs6pJSrvyBRolDTEcY9br+AAAAAAIAAAAAAANmAADAAAAAEAAAAM2ABqrkUHWLIjutmwT8aSwAAAAABIAAAKAAAAAQAAAAB++4pk2c38nl+B8CQ1xQ8lAAAACDTggVTXdcei1dA4QpS2EM3j9zDxuLROzPcF+VlD3TOHucdUilnfVGiFgRj6oDphatETwcwgkP+xXB4TixbYvDp90yn7ajFFbVBH41sxK+ExQAAADnUwPj8oZDOcsaCAlZ2Clo8VQMmw==";
5
5
  exports.item1Path = "customXml/item1.xml";
6
6
  exports.item2Path = "customXml/item2.xml";
7
- exports.relationshipInfo = `s{"columnCount":1,"keyColumnNames":[],"queryRelationships":[],"columnIdentities":["Section1/newQueryName/AutoRemovedColumns1.{newQueryName,0}"],"ColumnCount":1,"KeyColumnNames":[],"ColumnIdentities":["Section1/newQueryName/AutoRemovedColumns1.{newQueryName,0}"],"RelationshipInfo":[]}`;
7
+ exports.relationshipInfo = "s{\"columnCount\":1,\"keyColumnNames\":[],\"queryRelationships\":[],\"columnIdentities\":[\"Section1/newQueryName/AutoRemovedColumns1.{newQueryName,0}\"],\"ColumnCount\":1,\"KeyColumnNames\":[],\"ColumnIdentities\":[\"Section1/newQueryName/AutoRemovedColumns1.{newQueryName,0}\"],\"RelationshipInfo\":[]}";
@@ -1,18 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.section1mNewQueryNameBlankMock = exports.section1mNewQueryNameSimpleMock = exports.section1mBlankQueryMock = exports.section1mSimpleQueryMock = exports.simpleQueryMock = void 0;
4
- exports.simpleQueryMock = `shared newQueryName =
5
- let
6
- Source = Folder.Files("C:\\Users\\user1\\Desktop\\test")
7
- in
8
- Source`;
9
- exports.section1mSimpleQueryMock = `section Section1;
10
-
11
- shared Query1 =
12
- ${exports.simpleQueryMock};`;
13
- exports.section1mBlankQueryMock = `section Section1;\r\n\r\nshared Query1 = let\r\n Source = ""\r\nin\r\n Source;`;
14
- exports.section1mNewQueryNameSimpleMock = `section Section1;
15
-
16
- shared newQueryName =
17
- ${exports.simpleQueryMock};`;
18
- exports.section1mNewQueryNameBlankMock = `section Section1;\r\n\r\nshared newQueryName = let\r\n Source = ""\r\nin\r\n Source;`;
4
+ exports.simpleQueryMock = "shared newQueryName = \n let\n Source = Folder.Files(\"C:\\Users\\user1\\Desktop\\test\")\nin\n Source";
5
+ exports.section1mSimpleQueryMock = "section Section1;\n\n shared Query1 =\n ".concat(exports.simpleQueryMock, ";");
6
+ exports.section1mBlankQueryMock = "section Section1;\r\n\r\nshared Query1 = let\r\n Source = \"\"\r\nin\r\n Source;";
7
+ exports.section1mNewQueryNameSimpleMock = "section Section1;\n\n shared newQueryName =\n ".concat(exports.simpleQueryMock, ";");
8
+ exports.section1mNewQueryNameBlankMock = "section Section1;\r\n\r\nshared newQueryName = let\r\n Source = \"\"\r\nin\r\n Source;";
@@ -6,7 +6,7 @@ exports.sheetsXmlMock = '<sheetData><row r="1" spans="1:2" x14ac:dyDescent="0.3"
6
6
  exports.addZeroSheetsXmlMock = '<sheetData><row r="1" spans="1:2" x14ac:dyDescent="0.3"><c r="A1" t="str"><v>Column1</v></c><c r="B1" t="str"><v>Column2</v></c></row><row r="2" spans="1:2" x14ac:dyDescent="0.3"><c r="A2" t="str"><v>one</v></c><c r="B2" t="1"><v>0</v></c></row><row r="3" spans="1:2" x14ac:dyDescent="0.3"><c r="A3" t="str"><v>two</v></c><c r="B3" t="1"><v>2</v></c></row></sheetData>';
7
7
  exports.workbookXmlMock = '<definedName name="ExternalData_1" localSheetId="0" hidden="1">Sheet1!$A$1:$B$2</definedName>';
8
8
  exports.queryTableMock = '<queryTableRefresh nextId="3"><queryTableFields count="2"><queryTableField id="1" name="Column1" tableColumnId="1"/><queryTableField id="2" name="Column2" tableColumnId="2"/></queryTableFields></queryTableRefresh></queryTable>';
9
- exports.sharedStringsXmlMock = `<sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" count="2" uniqueCount="2"><si><t>Query1</t></si><si><t/></si><si><t>newQueryName</t></si></sst>`;
10
- exports.existingSharedStringsXmlMock = `<sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" count="1" uniqueCount="1"><si><t>newQueryName</t></si><si><t/></si></sst>`;
9
+ exports.sharedStringsXmlMock = "<sst xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" count=\"2\" uniqueCount=\"2\"><si><t>Query1</t></si><si><t/></si><si><t>newQueryName</t></si></sst>";
10
+ exports.existingSharedStringsXmlMock = "<sst xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" count=\"1\" uniqueCount=\"1\"><si><t>newQueryName</t></si><si><t/></si></sst>";
11
11
  exports.pqMetadataXmlMockPart1 = '<LocalPackageMetadataFile xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Items> <Item> <ItemLocation> <ItemType>AllFormulas</ItemType> <ItemPath/> </ItemLocation> <StableEntries/> </Item> <Item> <ItemLocation> <ItemType>Formula</ItemType> <ItemPath>Section1/newQueryName</ItemPath> </ItemLocation> <StableEntries> <Entry Type="IsPrivate" Value="l0"/> <Entry Type="FillEnabled" Value="l1"/> <Entry Type="FillObjectType" Value="sTable"/> <Entry Type="FillToDataModelEnabled" Value="l0"/> <Entry Type="BufferNextRefresh" Value="l1"/> <Entry Type="ResultType" Value="sTable"/> <Entry Type="NameUpdatedAfterFill" Value="l0"/> <Entry Type="NavigationStepName" Value="sNavigation"/> <Entry Type="FillTarget" Value="sQuery1"/> <Entry Type="FilledCompleteResultToWorksheet" Value="l1"/> <Entry Type="AddedToDataModel" Value="l0"/> <Entry Type="FillCount" Value="l1"/> <Entry Type="FillErrorCode" Value="sUnknown"/> <Entry Type="FillErrorCount" Value="l0"/>';
12
12
  exports.pqMetadataXmlMockPart2 = '<Entry Type="FillColumnTypes" Value="sBg=="/> <Entry Type="FillColumnNames" Value="s[&quot;Query1&quot;]"/> <Entry Type="FillStatus" Value="sComplete"/> <Entry Type="RelationshipInfoContainer" Value="s{&quot;columnCount&quot;:1,&quot;keyColumnNames&quot;:[],&quot;queryRelationships&quot;:[],&quot;columnIdentities&quot;:[&quot;Section1/Query1/AutoRemovedColumns1.{Query1,0}&quot;],&quot;ColumnCount&quot;:1,&quot;KeyColumnNames&quot;:[],&quot;ColumnIdentities&quot;:[&quot;Section1/Query1/AutoRemovedColumns1.{Query1,0}&quot;],&quot;RelationshipInfo&quot;:[]}"/> </StableEntries> </Item> <Item> <ItemLocation> <ItemType>Formula</ItemType> <ItemPath>Section1/newQueryName/Source</ItemPath> </ItemLocation> <StableEntries/> </Item> </Items> </LocalPackageMetadataFile>';