@lab1095/n8n-nodes-sharepoint-excel 0.1.1 → 0.2.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 (51) hide show
  1. package/dist/credentials/MicrosoftGraphOAuth2Api.credentials.d.ts +3 -2
  2. package/dist/credentials/MicrosoftGraphOAuth2Api.credentials.js +9 -33
  3. package/dist/credentials/MicrosoftGraphOAuth2Api.credentials.js.map +1 -1
  4. package/dist/nodes/SharePointExcel/SharePointExcel.node.d.ts +4 -0
  5. package/dist/nodes/SharePointExcel/SharePointExcel.node.js +4 -0
  6. package/dist/nodes/SharePointExcel/SharePointExcel.node.js.map +1 -1
  7. package/dist/nodes/SharePointExcel/actions/router.js +12 -5
  8. package/dist/nodes/SharePointExcel/actions/router.js.map +1 -1
  9. package/dist/nodes/SharePointExcel/actions/sheet/appendRows.js +52 -29
  10. package/dist/nodes/SharePointExcel/actions/sheet/appendRows.js.map +1 -1
  11. package/dist/nodes/SharePointExcel/actions/sheet/appendRows.test.d.ts +1 -0
  12. package/dist/nodes/SharePointExcel/actions/sheet/appendRows.test.js +437 -0
  13. package/dist/nodes/SharePointExcel/actions/sheet/appendRows.test.js.map +1 -0
  14. package/dist/nodes/SharePointExcel/actions/sheet/clearSheet.js +2 -2
  15. package/dist/nodes/SharePointExcel/actions/sheet/clearSheet.js.map +1 -1
  16. package/dist/nodes/SharePointExcel/actions/sheet/clearSheet.test.d.ts +1 -0
  17. package/dist/nodes/SharePointExcel/actions/sheet/clearSheet.test.js +182 -0
  18. package/dist/nodes/SharePointExcel/actions/sheet/clearSheet.test.js.map +1 -0
  19. package/dist/nodes/SharePointExcel/actions/sheet/readRows.js +75 -20
  20. package/dist/nodes/SharePointExcel/actions/sheet/readRows.js.map +1 -1
  21. package/dist/nodes/SharePointExcel/actions/sheet/readRows.test.d.ts +1 -0
  22. package/dist/nodes/SharePointExcel/actions/sheet/readRows.test.js +251 -0
  23. package/dist/nodes/SharePointExcel/actions/sheet/readRows.test.js.map +1 -0
  24. package/dist/nodes/SharePointExcel/actions/sheet/upsertRows.js +100 -55
  25. package/dist/nodes/SharePointExcel/actions/sheet/upsertRows.js.map +1 -1
  26. package/dist/nodes/SharePointExcel/actions/table/getRows.js +69 -13
  27. package/dist/nodes/SharePointExcel/actions/table/getRows.js.map +1 -1
  28. package/dist/nodes/SharePointExcel/actions/table/getRows.test.d.ts +1 -0
  29. package/dist/nodes/SharePointExcel/actions/table/getRows.test.js +228 -0
  30. package/dist/nodes/SharePointExcel/actions/table/getRows.test.js.map +1 -0
  31. package/dist/nodes/SharePointExcel/actions/workbook/getWorkbooks.test.d.ts +1 -0
  32. package/dist/nodes/SharePointExcel/actions/workbook/getWorkbooks.test.js +151 -0
  33. package/dist/nodes/SharePointExcel/actions/workbook/getWorkbooks.test.js.map +1 -0
  34. package/dist/nodes/SharePointExcel/descriptions.d.ts +7 -0
  35. package/dist/nodes/SharePointExcel/descriptions.js +198 -13
  36. package/dist/nodes/SharePointExcel/descriptions.js.map +1 -1
  37. package/dist/nodes/SharePointExcel/listSearch.js +20 -5
  38. package/dist/nodes/SharePointExcel/listSearch.js.map +1 -1
  39. package/dist/nodes/SharePointExcel/listSearch.test.d.ts +1 -0
  40. package/dist/nodes/SharePointExcel/listSearch.test.js +302 -0
  41. package/dist/nodes/SharePointExcel/listSearch.test.js.map +1 -0
  42. package/dist/nodes/SharePointExcel/resourceMapping.d.ts +2 -0
  43. package/dist/nodes/SharePointExcel/resourceMapping.js +118 -0
  44. package/dist/nodes/SharePointExcel/resourceMapping.js.map +1 -0
  45. package/dist/nodes/SharePointExcel/test-utils/mocks.d.ts +114 -0
  46. package/dist/nodes/SharePointExcel/test-utils/mocks.js +116 -0
  47. package/dist/nodes/SharePointExcel/test-utils/mocks.js.map +1 -0
  48. package/dist/nodes/SharePointExcel/types.d.ts +25 -2
  49. package/dist/package.json +7 -3
  50. package/dist/tsconfig.tsbuildinfo +1 -1
  51. package/package.json +7 -3
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const clearSheet_1 = require("./clearSheet");
6
+ const mocks_1 = require("../../test-utils/mocks");
7
+ vitest_1.vi.mock('../../api', () => ({
8
+ loadWorkbook: vitest_1.vi.fn(),
9
+ saveWorkbook: vitest_1.vi.fn(),
10
+ getWorksheet: vitest_1.vi.fn(),
11
+ }));
12
+ const api_1 = require("../../api");
13
+ const apiMocks = { loadWorkbook: api_1.loadWorkbook, saveWorkbook: api_1.saveWorkbook, getWorksheet: api_1.getWorksheet };
14
+ (0, vitest_1.describe)('clearSheet', () => {
15
+ (0, vitest_1.beforeEach)(() => {
16
+ vitest_1.vi.clearAllMocks();
17
+ });
18
+ (0, vitest_1.describe)('basic functionality', () => {
19
+ (0, vitest_1.it)('clears all rows and saves the workbook', async () => {
20
+ const { worksheet } = (0, mocks_1.setupSheetMocks)(apiMocks, {
21
+ sheetName: 'Sheet1',
22
+ rowCount: 3,
23
+ columnCount: 2,
24
+ headers: { 1: 'Name', 2: 'Email' },
25
+ rows: [
26
+ { 1: 'John', 2: 'john@example.com' },
27
+ { 1: 'Jane', 2: 'jane@example.com' },
28
+ ],
29
+ });
30
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({
31
+ sheetName: 'Sheet1',
32
+ });
33
+ const context = (0, mocks_1.createMockContext)({ operation: 'clearSheet' });
34
+ const result = await clearSheet_1.execute.call(mockFunctions, [{ json: {} }], context);
35
+ (0, vitest_1.expect)(api_1.loadWorkbook).toHaveBeenCalledTimes(1);
36
+ (0, vitest_1.expect)(worksheet.spliceRows).toHaveBeenCalledWith(1, 3);
37
+ (0, vitest_1.expect)(api_1.saveWorkbook).toHaveBeenCalledTimes(1);
38
+ (0, vitest_1.expect)(result).toHaveLength(1);
39
+ (0, vitest_1.expect)(result[0].json).toEqual({
40
+ success: true,
41
+ sheet: 'Sheet1',
42
+ clearedRows: 3,
43
+ clearedColumns: 2,
44
+ });
45
+ });
46
+ (0, vitest_1.it)('handles resourceLocator format for sheetName', async () => {
47
+ const { workbook } = (0, mocks_1.setupSheetMocks)(apiMocks, {
48
+ sheetName: 'MySheet',
49
+ rowCount: 1,
50
+ columnCount: 1,
51
+ });
52
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({
53
+ sheetName: { mode: 'list', value: 'MySheet' },
54
+ });
55
+ const context = (0, mocks_1.createMockContext)({ operation: 'clearSheet' });
56
+ const result = await clearSheet_1.execute.call(mockFunctions, [{ json: {} }], context);
57
+ (0, vitest_1.expect)(api_1.getWorksheet).toHaveBeenCalledWith(workbook, 'MySheet', mockFunctions);
58
+ (0, vitest_1.expect)(result[0].json.sheet).toBe('MySheet');
59
+ });
60
+ (0, vitest_1.it)('uses correct basePath from context', async () => {
61
+ const { workbook } = (0, mocks_1.setupSheetMocks)(apiMocks, {
62
+ sheetName: 'Sheet1',
63
+ rowCount: 1,
64
+ columnCount: 1,
65
+ });
66
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({
67
+ sheetName: 'Sheet1',
68
+ });
69
+ const customBasePath = '/sites/custom-site/drives/custom-drive/items/custom-file';
70
+ const context = (0, mocks_1.createMockContext)({
71
+ operation: 'clearSheet',
72
+ basePath: customBasePath,
73
+ });
74
+ await clearSheet_1.execute.call(mockFunctions, [{ json: {} }], context);
75
+ (0, vitest_1.expect)(api_1.loadWorkbook).toHaveBeenCalledWith(customBasePath);
76
+ (0, vitest_1.expect)(api_1.saveWorkbook).toHaveBeenCalledWith(customBasePath, workbook);
77
+ });
78
+ });
79
+ (0, vitest_1.describe)('row clearing behavior', () => {
80
+ (0, vitest_1.it)('handles empty sheet (0 rows)', async () => {
81
+ const { worksheet } = (0, mocks_1.setupSheetMocks)(apiMocks, {
82
+ sheetName: 'EmptySheet',
83
+ rowCount: 0,
84
+ columnCount: 0,
85
+ });
86
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({ sheetName: 'EmptySheet' });
87
+ const context = (0, mocks_1.createMockContext)({ operation: 'clearSheet' });
88
+ const result = await clearSheet_1.execute.call(mockFunctions, [{ json: {} }], context);
89
+ (0, vitest_1.expect)(worksheet.spliceRows).not.toHaveBeenCalled();
90
+ (0, vitest_1.expect)(result[0].json).toEqual({
91
+ success: true,
92
+ sheet: 'EmptySheet',
93
+ clearedRows: 0,
94
+ clearedColumns: 0,
95
+ });
96
+ });
97
+ (0, vitest_1.it)('handles sheet with single row', async () => {
98
+ const { worksheet } = (0, mocks_1.setupSheetMocks)(apiMocks, {
99
+ sheetName: 'Sheet1',
100
+ rowCount: 1,
101
+ columnCount: 1,
102
+ });
103
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({ sheetName: 'Sheet1' });
104
+ const context = (0, mocks_1.createMockContext)({ operation: 'clearSheet' });
105
+ const result = await clearSheet_1.execute.call(mockFunctions, [{ json: {} }], context);
106
+ (0, vitest_1.expect)(worksheet.spliceRows).toHaveBeenCalledWith(1, 1);
107
+ (0, vitest_1.expect)(result[0].json).toEqual({
108
+ success: true,
109
+ sheet: 'Sheet1',
110
+ clearedRows: 1,
111
+ clearedColumns: 1,
112
+ });
113
+ });
114
+ (0, vitest_1.it)('handles large sheets', async () => {
115
+ const { worksheet } = (0, mocks_1.setupSheetMocks)(apiMocks, {
116
+ sheetName: 'LargeSheet',
117
+ rowCount: 10000,
118
+ columnCount: 50,
119
+ });
120
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({ sheetName: 'LargeSheet' });
121
+ const context = (0, mocks_1.createMockContext)({ operation: 'clearSheet' });
122
+ const result = await clearSheet_1.execute.call(mockFunctions, [{ json: {} }], context);
123
+ (0, vitest_1.expect)(worksheet.spliceRows).toHaveBeenCalledWith(1, 10000);
124
+ (0, vitest_1.expect)(result[0].json).toEqual({
125
+ success: true,
126
+ sheet: 'LargeSheet',
127
+ clearedRows: 10000,
128
+ clearedColumns: 50,
129
+ });
130
+ });
131
+ });
132
+ (0, vitest_1.describe)('edge cases', () => {
133
+ (0, vitest_1.it)('ignores input items (operation is sheet-level)', async () => {
134
+ (0, mocks_1.setupSheetMocks)(apiMocks, {
135
+ sheetName: 'Sheet1',
136
+ rowCount: 1,
137
+ columnCount: 1,
138
+ });
139
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({ sheetName: 'Sheet1' });
140
+ const context = (0, mocks_1.createMockContext)({ operation: 'clearSheet' });
141
+ const multipleItems = [
142
+ { json: { data: 'item1' } },
143
+ { json: { data: 'item2' } },
144
+ { json: { data: 'item3' } },
145
+ ];
146
+ const result = await clearSheet_1.execute.call(mockFunctions, multipleItems, context);
147
+ (0, vitest_1.expect)(result).toHaveLength(1);
148
+ (0, vitest_1.expect)(api_1.loadWorkbook).toHaveBeenCalledTimes(1);
149
+ (0, vitest_1.expect)(api_1.saveWorkbook).toHaveBeenCalledTimes(1);
150
+ });
151
+ });
152
+ (0, vitest_1.describe)('error handling', () => {
153
+ (0, vitest_1.it)('throws error when sheet not found', async () => {
154
+ const workbook = (0, mocks_1.createMockWorkbook)({});
155
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({ sheetName: 'NonExistent' });
156
+ const context = (0, mocks_1.createMockContext)({ operation: 'clearSheet' });
157
+ vitest_1.vi.mocked(api_1.loadWorkbook).mockResolvedValue(workbook);
158
+ vitest_1.vi.mocked(api_1.getWorksheet).mockImplementation(() => {
159
+ throw new n8n_workflow_1.NodeOperationError(mockFunctions.getNode(), 'Sheet "NonExistent" not found in workbook');
160
+ });
161
+ await (0, vitest_1.expect)(clearSheet_1.execute.call(mockFunctions, [{ json: {} }], context)).rejects.toThrow('Sheet "NonExistent" not found in workbook');
162
+ });
163
+ (0, vitest_1.it)('throws error when loadWorkbook fails', async () => {
164
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({ sheetName: 'Sheet1' });
165
+ const context = (0, mocks_1.createMockContext)({ operation: 'clearSheet' });
166
+ vitest_1.vi.mocked(api_1.loadWorkbook).mockRejectedValue(new n8n_workflow_1.NodeOperationError(mockFunctions.getNode(), 'Graph API request failed: Access denied'));
167
+ await (0, vitest_1.expect)(clearSheet_1.execute.call(mockFunctions, [{ json: {} }], context)).rejects.toThrow('Graph API request failed: Access denied');
168
+ });
169
+ (0, vitest_1.it)('throws error when saveWorkbook fails', async () => {
170
+ (0, mocks_1.setupSheetMocks)(apiMocks, {
171
+ sheetName: 'Sheet1',
172
+ rowCount: 1,
173
+ columnCount: 1,
174
+ });
175
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({ sheetName: 'Sheet1' });
176
+ const context = (0, mocks_1.createMockContext)({ operation: 'clearSheet' });
177
+ vitest_1.vi.mocked(api_1.saveWorkbook).mockRejectedValue(new n8n_workflow_1.NodeOperationError(mockFunctions.getNode(), 'Graph API request failed: File is locked'));
178
+ await (0, vitest_1.expect)(clearSheet_1.execute.call(mockFunctions, [{ json: {} }], context)).rejects.toThrow('Graph API request failed: File is locked');
179
+ });
180
+ });
181
+ });
182
+ //# sourceMappingURL=clearSheet.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clearSheet.test.js","sourceRoot":"","sources":["../../../../../nodes/SharePointExcel/actions/sheet/clearSheet.test.ts"],"names":[],"mappings":"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"}
@@ -6,36 +6,91 @@ async function execute(_items, context) {
6
6
  const returnData = [];
7
7
  const sheetNameParam = this.getNodeParameter('sheetName', 0);
8
8
  const sheetName = typeof sheetNameParam === 'object' ? sheetNameParam.value : sheetNameParam;
9
+ const returnAll = this.getNodeParameter('returnAll', 0, true);
10
+ const limit = returnAll ? 0 : this.getNodeParameter('limit', 0, 50);
9
11
  const options = this.getNodeParameter('options', 0);
10
12
  const headerRow = options.headerRow || 1;
11
13
  const startRow = options.startRow || 2;
12
- const maxRows = options.maxRows || 0;
14
+ const rawData = options.rawData || false;
15
+ const dataProperty = options.dataProperty || 'data';
16
+ const fieldsFilter = options.fields
17
+ ? new Set(options.fields.split(',').map((f) => f.trim()).filter(Boolean))
18
+ : new Set();
13
19
  const workbook = await api_1.loadWorkbook.call(this, context.basePath);
14
20
  const worksheet = (0, api_1.getWorksheet)(workbook, sheetName, this);
15
- const headers = [];
21
+ const allHeaders = new Map();
16
22
  const headerRowData = worksheet.getRow(headerRow);
17
23
  headerRowData.eachCell({ includeEmpty: false }, (cell, colNumber) => {
18
- headers[colNumber] = String(cell.value || `Column${colNumber}`);
24
+ allHeaders.set(colNumber, String(cell.value || `Column${colNumber}`));
19
25
  });
20
- let rowCount = 0;
21
- for (let rowNum = startRow; rowNum <= worksheet.rowCount; rowNum++) {
22
- if (maxRows > 0 && rowCount >= maxRows)
23
- break;
24
- const row = worksheet.getRow(rowNum);
25
- const rowData = {};
26
- let hasData = false;
27
- row.eachCell({ includeEmpty: false }, (cell, colNumber) => {
28
- const header = headers[colNumber] || `Column${colNumber}`;
29
- rowData[header] = cell.value;
30
- hasData = true;
31
- });
32
- if (hasData) {
33
- returnData.push({ json: rowData });
34
- rowCount++;
26
+ const filteredColumns = [];
27
+ const outputHeaders = [];
28
+ allHeaders.forEach((header, colNumber) => {
29
+ if (fieldsFilter.size === 0 || fieldsFilter.has(header)) {
30
+ filteredColumns.push(colNumber);
31
+ outputHeaders.push(header);
32
+ }
33
+ });
34
+ if (rawData) {
35
+ const rawRows = [];
36
+ let rowCount = 0;
37
+ for (let rowNum = startRow; rowNum <= worksheet.rowCount; rowNum++) {
38
+ if (limit > 0 && rowCount >= limit)
39
+ break;
40
+ const row = worksheet.getRow(rowNum);
41
+ const rowArray = [];
42
+ let hasData = false;
43
+ for (const colNumber of filteredColumns) {
44
+ const cell = row.getCell(colNumber);
45
+ const value = cell.value;
46
+ rowArray.push(value !== null && value !== void 0 ? value : null);
47
+ if (value !== null && value !== undefined) {
48
+ hasData = true;
49
+ }
50
+ }
51
+ if (hasData) {
52
+ rawRows.push(rowArray);
53
+ rowCount++;
54
+ }
55
+ }
56
+ if (rawRows.length === 0) {
57
+ returnData.push({ json: { message: 'No data found in sheet' } });
58
+ }
59
+ else {
60
+ returnData.push({
61
+ json: {
62
+ headers: outputHeaders,
63
+ [dataProperty]: rawRows,
64
+ },
65
+ });
35
66
  }
36
67
  }
37
- if (returnData.length === 0) {
38
- returnData.push({ json: { message: 'No data found in sheet' } });
68
+ else {
69
+ let rowCount = 0;
70
+ for (let rowNum = startRow; rowNum <= worksheet.rowCount; rowNum++) {
71
+ if (limit > 0 && rowCount >= limit)
72
+ break;
73
+ const row = worksheet.getRow(rowNum);
74
+ const rowData = {};
75
+ let hasData = false;
76
+ for (let i = 0; i < filteredColumns.length; i++) {
77
+ const colNumber = filteredColumns[i];
78
+ const header = outputHeaders[i];
79
+ const cell = row.getCell(colNumber);
80
+ const value = cell.value;
81
+ if (value !== null && value !== undefined) {
82
+ rowData[header] = value;
83
+ hasData = true;
84
+ }
85
+ }
86
+ if (hasData) {
87
+ returnData.push({ json: rowData });
88
+ rowCount++;
89
+ }
90
+ }
91
+ if (returnData.length === 0) {
92
+ returnData.push({ json: { message: 'No data found in sheet' } });
93
+ }
39
94
  }
40
95
  return returnData;
41
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"readRows.js","sourceRoot":"","sources":["../../../../../nodes/SharePointExcel/actions/sheet/readRows.ts"],"names":[],"mappings":";;AAIA,0BAqDC;AAxDD,mCAAuD;AAGhD,KAAK,UAAU,OAAO,CAE5B,MAA4B,EAC5B,OAAyB;IAEzB,MAAM,UAAU,GAAyB,EAAE,CAAC;IAE5C,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAEpC,CAAC;IACxB,MAAM,SAAS,GACd,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC;IAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAoB,CAAC;IACvE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;IAErC,MAAM,QAAQ,GAAG,MAAM,kBAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,IAAA,kBAAY,EAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAG1D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAClD,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;QACnE,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,SAAS,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAGH,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,IAAI,MAAM,GAAG,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;QACpE,IAAI,OAAO,GAAG,CAAC,IAAI,QAAQ,IAAI,OAAO;YAAE,MAAM;QAE9C,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,OAAO,GAAgB,EAAE,CAAC;QAChC,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,GAAG,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;YACzD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,SAAS,EAAE,CAAC;YAC1D,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAkC,CAAC;YAC1D,OAAO,GAAG,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,CAAC;YACb,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YACnC,QAAQ,EAAE,CAAC;QACZ,CAAC;IACF,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"readRows.js","sourceRoot":"","sources":["../../../../../nodes/SharePointExcel/actions/sheet/readRows.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,251 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const readRows_1 = require("./readRows");
5
+ const mocks_1 = require("../../test-utils/mocks");
6
+ vitest_1.vi.mock('../../api', () => ({
7
+ loadWorkbook: vitest_1.vi.fn(),
8
+ getWorksheet: vitest_1.vi.fn(),
9
+ }));
10
+ const api_1 = require("../../api");
11
+ (0, vitest_1.describe)('readRows', () => {
12
+ (0, vitest_1.beforeEach)(() => {
13
+ vitest_1.vi.clearAllMocks();
14
+ });
15
+ (0, vitest_1.describe)('basic functionality', () => {
16
+ (0, vitest_1.it)('returns keyed objects with all columns by default', async () => {
17
+ const worksheet = (0, mocks_1.createMockWorksheet)({
18
+ headers: { 1: 'Name', 2: 'Email', 3: 'Age' },
19
+ rows: [
20
+ { 1: 'John', 2: 'john@test.com', 3: 30 },
21
+ { 1: 'Jane', 2: 'jane@test.com', 3: 25 },
22
+ ],
23
+ });
24
+ const workbook = (0, mocks_1.createMockWorkbook)({ Sheet1: worksheet });
25
+ vitest_1.vi.mocked(api_1.loadWorkbook).mockResolvedValue(workbook);
26
+ vitest_1.vi.mocked(api_1.getWorksheet).mockReturnValue(worksheet);
27
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({
28
+ sheetName: 'Sheet1',
29
+ returnAll: true,
30
+ options: {},
31
+ });
32
+ const context = (0, mocks_1.createMockContext)();
33
+ const result = await readRows_1.execute.call(mockFunctions, [], context);
34
+ (0, vitest_1.expect)(result).toHaveLength(2);
35
+ (0, vitest_1.expect)(result[0].json).toEqual({ Name: 'John', Email: 'john@test.com', Age: 30 });
36
+ (0, vitest_1.expect)(result[1].json).toEqual({ Name: 'Jane', Email: 'jane@test.com', Age: 25 });
37
+ });
38
+ (0, vitest_1.it)('handles resourceLocator format for sheetName', async () => {
39
+ const worksheet = (0, mocks_1.createMockWorksheet)({
40
+ headers: { 1: 'Name' },
41
+ rows: [{ 1: 'John' }],
42
+ });
43
+ const workbook = (0, mocks_1.createMockWorkbook)({ Sheet1: worksheet });
44
+ vitest_1.vi.mocked(api_1.loadWorkbook).mockResolvedValue(workbook);
45
+ vitest_1.vi.mocked(api_1.getWorksheet).mockReturnValue(worksheet);
46
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({
47
+ sheetName: { mode: 'list', value: 'Sheet1' },
48
+ returnAll: true,
49
+ options: {},
50
+ });
51
+ const context = (0, mocks_1.createMockContext)();
52
+ await readRows_1.execute.call(mockFunctions, [], context);
53
+ (0, vitest_1.expect)(api_1.getWorksheet).toHaveBeenCalledWith(workbook, 'Sheet1', mockFunctions);
54
+ });
55
+ });
56
+ (0, vitest_1.describe)('returnAll and limit', () => {
57
+ (0, vitest_1.it)('returns all rows when returnAll is true', async () => {
58
+ const worksheet = (0, mocks_1.createMockWorksheet)({
59
+ headers: { 1: 'Name' },
60
+ rows: [{ 1: 'A' }, { 1: 'B' }, { 1: 'C' }, { 1: 'D' }, { 1: 'E' }],
61
+ });
62
+ const workbook = (0, mocks_1.createMockWorkbook)({ Sheet1: worksheet });
63
+ vitest_1.vi.mocked(api_1.loadWorkbook).mockResolvedValue(workbook);
64
+ vitest_1.vi.mocked(api_1.getWorksheet).mockReturnValue(worksheet);
65
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({
66
+ sheetName: 'Sheet1',
67
+ returnAll: true,
68
+ options: {},
69
+ });
70
+ const context = (0, mocks_1.createMockContext)();
71
+ const result = await readRows_1.execute.call(mockFunctions, [], context);
72
+ (0, vitest_1.expect)(result).toHaveLength(5);
73
+ });
74
+ (0, vitest_1.it)('limits rows when returnAll is false', async () => {
75
+ const worksheet = (0, mocks_1.createMockWorksheet)({
76
+ headers: { 1: 'Name' },
77
+ rows: [{ 1: 'A' }, { 1: 'B' }, { 1: 'C' }, { 1: 'D' }, { 1: 'E' }],
78
+ });
79
+ const workbook = (0, mocks_1.createMockWorkbook)({ Sheet1: worksheet });
80
+ vitest_1.vi.mocked(api_1.loadWorkbook).mockResolvedValue(workbook);
81
+ vitest_1.vi.mocked(api_1.getWorksheet).mockReturnValue(worksheet);
82
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({
83
+ sheetName: 'Sheet1',
84
+ returnAll: false,
85
+ limit: 2,
86
+ options: {},
87
+ });
88
+ const context = (0, mocks_1.createMockContext)();
89
+ const result = await readRows_1.execute.call(mockFunctions, [], context);
90
+ (0, vitest_1.expect)(result).toHaveLength(2);
91
+ (0, vitest_1.expect)(result[0].json).toEqual({ Name: 'A' });
92
+ (0, vitest_1.expect)(result[1].json).toEqual({ Name: 'B' });
93
+ });
94
+ });
95
+ (0, vitest_1.describe)('rawData mode', () => {
96
+ (0, vitest_1.it)('returns arrays instead of objects when rawData is true', async () => {
97
+ const worksheet = (0, mocks_1.createMockWorksheet)({
98
+ headers: { 1: 'Name', 2: 'Email' },
99
+ rows: [
100
+ { 1: 'John', 2: 'john@test.com' },
101
+ { 1: 'Jane', 2: 'jane@test.com' },
102
+ ],
103
+ });
104
+ const workbook = (0, mocks_1.createMockWorkbook)({ Sheet1: worksheet });
105
+ vitest_1.vi.mocked(api_1.loadWorkbook).mockResolvedValue(workbook);
106
+ vitest_1.vi.mocked(api_1.getWorksheet).mockReturnValue(worksheet);
107
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({
108
+ sheetName: 'Sheet1',
109
+ returnAll: true,
110
+ options: { rawData: true },
111
+ });
112
+ const context = (0, mocks_1.createMockContext)();
113
+ const result = await readRows_1.execute.call(mockFunctions, [], context);
114
+ (0, vitest_1.expect)(result).toHaveLength(1);
115
+ (0, vitest_1.expect)(result[0].json).toEqual({
116
+ headers: ['Name', 'Email'],
117
+ data: [
118
+ ['John', 'john@test.com'],
119
+ ['Jane', 'jane@test.com'],
120
+ ],
121
+ });
122
+ });
123
+ (0, vitest_1.it)('uses custom dataProperty name', async () => {
124
+ const worksheet = (0, mocks_1.createMockWorksheet)({
125
+ headers: { 1: 'Name' },
126
+ rows: [{ 1: 'John' }],
127
+ });
128
+ const workbook = (0, mocks_1.createMockWorkbook)({ Sheet1: worksheet });
129
+ vitest_1.vi.mocked(api_1.loadWorkbook).mockResolvedValue(workbook);
130
+ vitest_1.vi.mocked(api_1.getWorksheet).mockReturnValue(worksheet);
131
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({
132
+ sheetName: 'Sheet1',
133
+ returnAll: true,
134
+ options: { rawData: true, dataProperty: 'rows' },
135
+ });
136
+ const context = (0, mocks_1.createMockContext)();
137
+ const result = await readRows_1.execute.call(mockFunctions, [], context);
138
+ (0, vitest_1.expect)(result[0].json).toHaveProperty('rows');
139
+ (0, vitest_1.expect)(result[0].json).not.toHaveProperty('data');
140
+ });
141
+ });
142
+ (0, vitest_1.describe)('fields filter', () => {
143
+ (0, vitest_1.it)('returns only specified columns', async () => {
144
+ const worksheet = (0, mocks_1.createMockWorksheet)({
145
+ headers: { 1: 'Name', 2: 'Email', 3: 'Age', 4: 'City' },
146
+ rows: [{ 1: 'John', 2: 'john@test.com', 3: 30, 4: 'NYC' }],
147
+ });
148
+ const workbook = (0, mocks_1.createMockWorkbook)({ Sheet1: worksheet });
149
+ vitest_1.vi.mocked(api_1.loadWorkbook).mockResolvedValue(workbook);
150
+ vitest_1.vi.mocked(api_1.getWorksheet).mockReturnValue(worksheet);
151
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({
152
+ sheetName: 'Sheet1',
153
+ returnAll: true,
154
+ options: { fields: 'Name, Age' },
155
+ });
156
+ const context = (0, mocks_1.createMockContext)();
157
+ const result = await readRows_1.execute.call(mockFunctions, [], context);
158
+ (0, vitest_1.expect)(result[0].json).toEqual({ Name: 'John', Age: 30 });
159
+ (0, vitest_1.expect)(result[0].json).not.toHaveProperty('Email');
160
+ (0, vitest_1.expect)(result[0].json).not.toHaveProperty('City');
161
+ });
162
+ (0, vitest_1.it)('works with rawData mode and fields filter', async () => {
163
+ const worksheet = (0, mocks_1.createMockWorksheet)({
164
+ headers: { 1: 'Name', 2: 'Email', 3: 'Age' },
165
+ rows: [{ 1: 'John', 2: 'john@test.com', 3: 30 }],
166
+ });
167
+ const workbook = (0, mocks_1.createMockWorkbook)({ Sheet1: worksheet });
168
+ vitest_1.vi.mocked(api_1.loadWorkbook).mockResolvedValue(workbook);
169
+ vitest_1.vi.mocked(api_1.getWorksheet).mockReturnValue(worksheet);
170
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({
171
+ sheetName: 'Sheet1',
172
+ returnAll: true,
173
+ options: { rawData: true, fields: 'Name, Age' },
174
+ });
175
+ const context = (0, mocks_1.createMockContext)();
176
+ const result = await readRows_1.execute.call(mockFunctions, [], context);
177
+ (0, vitest_1.expect)(result[0].json).toEqual({
178
+ headers: ['Name', 'Age'],
179
+ data: [['John', 30]],
180
+ });
181
+ });
182
+ });
183
+ (0, vitest_1.describe)('edge cases', () => {
184
+ (0, vitest_1.it)('returns message when no data found', async () => {
185
+ const worksheet = (0, mocks_1.createMockWorksheet)({
186
+ headers: { 1: 'Name' },
187
+ rows: [],
188
+ });
189
+ const workbook = (0, mocks_1.createMockWorkbook)({ Sheet1: worksheet });
190
+ vitest_1.vi.mocked(api_1.loadWorkbook).mockResolvedValue(workbook);
191
+ vitest_1.vi.mocked(api_1.getWorksheet).mockReturnValue(worksheet);
192
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({
193
+ sheetName: 'Sheet1',
194
+ returnAll: true,
195
+ options: {},
196
+ });
197
+ const context = (0, mocks_1.createMockContext)();
198
+ const result = await readRows_1.execute.call(mockFunctions, [], context);
199
+ (0, vitest_1.expect)(result).toHaveLength(1);
200
+ (0, vitest_1.expect)(result[0].json).toEqual({ message: 'No data found in sheet' });
201
+ });
202
+ (0, vitest_1.it)('uses custom headerRow and startRow', async () => {
203
+ const worksheet = (0, mocks_1.createMockWorksheet)({
204
+ headers: { 1: 'Name', 2: 'Email' },
205
+ rows: [
206
+ { 1: 'Skip1', 2: 'skip1@test.com' },
207
+ { 1: 'Skip2', 2: 'skip2@test.com' },
208
+ { 1: 'John', 2: 'john@test.com' },
209
+ ],
210
+ });
211
+ worksheet.getRow = vitest_1.vi.fn((rowNum) => {
212
+ if (rowNum === 2) {
213
+ return {
214
+ eachCell: vitest_1.vi.fn((opts, cb) => {
215
+ cb({ value: 'Name' }, 1);
216
+ cb({ value: 'Email' }, 2);
217
+ }),
218
+ getCell: vitest_1.vi.fn((col) => ({ value: col === 1 ? 'Name' : 'Email' })),
219
+ };
220
+ }
221
+ if (rowNum === 4) {
222
+ return {
223
+ eachCell: vitest_1.vi.fn((opts, cb) => {
224
+ cb({ value: 'John' }, 1);
225
+ cb({ value: 'john@test.com' }, 2);
226
+ }),
227
+ getCell: vitest_1.vi.fn((col) => ({ value: col === 1 ? 'John' : 'john@test.com' })),
228
+ };
229
+ }
230
+ return {
231
+ eachCell: vitest_1.vi.fn(),
232
+ getCell: vitest_1.vi.fn(() => ({ value: null })),
233
+ };
234
+ });
235
+ worksheet.rowCount = 4;
236
+ const workbook = (0, mocks_1.createMockWorkbook)({ Sheet1: worksheet });
237
+ vitest_1.vi.mocked(api_1.loadWorkbook).mockResolvedValue(workbook);
238
+ vitest_1.vi.mocked(api_1.getWorksheet).mockReturnValue(worksheet);
239
+ const mockFunctions = (0, mocks_1.createMockExecuteFunctions)({
240
+ sheetName: 'Sheet1',
241
+ returnAll: true,
242
+ options: { headerRow: 2, startRow: 4 },
243
+ });
244
+ const context = (0, mocks_1.createMockContext)();
245
+ const result = await readRows_1.execute.call(mockFunctions, [], context);
246
+ (0, vitest_1.expect)(result).toHaveLength(1);
247
+ (0, vitest_1.expect)(result[0].json).toEqual({ Name: 'John', Email: 'john@test.com' });
248
+ });
249
+ });
250
+ });
251
+ //# sourceMappingURL=readRows.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readRows.test.js","sourceRoot":"","sources":["../../../../../nodes/SharePointExcel/actions/sheet/readRows.test.ts"],"names":[],"mappings":"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"}