@microsoft/power-apps 1.0.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 (275) hide show
  1. package/LICENSE +153 -0
  2. package/README.md +43 -0
  3. package/lib/__tests__/connectorDataOperation.spec.d.ts +5 -0
  4. package/lib/__tests__/connectorDataOperation.spec.d.ts.map +1 -0
  5. package/lib/__tests__/connectorDataOperation.spec.js +509 -0
  6. package/lib/__tests__/connectorDataOperation.spec.js.map +1 -0
  7. package/lib/__tests__/dataverseDataOperation.spec.d.ts +5 -0
  8. package/lib/__tests__/dataverseDataOperation.spec.d.ts.map +1 -0
  9. package/lib/__tests__/dataverseDataOperation.spec.js +349 -0
  10. package/lib/__tests__/dataverseDataOperation.spec.js.map +1 -0
  11. package/lib/__tests__/helpers/testHelpers.d.ts +27 -0
  12. package/lib/__tests__/helpers/testHelpers.d.ts.map +1 -0
  13. package/lib/__tests__/helpers/testHelpers.js +67 -0
  14. package/lib/__tests__/helpers/testHelpers.js.map +1 -0
  15. package/lib/__tests__/index.spec.d.ts +5 -0
  16. package/lib/__tests__/index.spec.d.ts.map +1 -0
  17. package/lib/__tests__/index.spec.js +10 -0
  18. package/lib/__tests__/index.spec.js.map +1 -0
  19. package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.d.ts +17 -0
  20. package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.d.ts.map +1 -0
  21. package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.js +35 -0
  22. package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.js.map +1 -0
  23. package/lib/__tests__/mocks/mockLog.d.ts +31 -0
  24. package/lib/__tests__/mocks/mockLog.d.ts.map +1 -0
  25. package/lib/__tests__/mocks/mockLog.js +53 -0
  26. package/lib/__tests__/mocks/mockLog.js.map +1 -0
  27. package/lib/__tests__/mocks/mockTeamsConnectorResponse.d.ts +76 -0
  28. package/lib/__tests__/mocks/mockTeamsConnectorResponse.d.ts.map +1 -0
  29. package/lib/__tests__/mocks/mockTeamsConnectorResponse.js +81 -0
  30. package/lib/__tests__/mocks/mockTeamsConnectorResponse.js.map +1 -0
  31. package/lib/__tests__/mocks/silenceConsole.d.ts +37 -0
  32. package/lib/__tests__/mocks/silenceConsole.d.ts.map +1 -0
  33. package/lib/__tests__/mocks/silenceConsole.js +58 -0
  34. package/lib/__tests__/mocks/silenceConsole.js.map +1 -0
  35. package/lib/__tests__/powerDataRuntimeInstance.test.d.ts +5 -0
  36. package/lib/__tests__/powerDataRuntimeInstance.test.d.ts.map +1 -0
  37. package/lib/__tests__/powerDataRuntimeInstance.test.js +179 -0
  38. package/lib/__tests__/powerDataRuntimeInstance.test.js.map +1 -0
  39. package/lib/__tests__/powerDataSourcesInfoProvider.test.d.ts +5 -0
  40. package/lib/__tests__/powerDataSourcesInfoProvider.test.d.ts.map +1 -0
  41. package/lib/__tests__/powerDataSourcesInfoProvider.test.js +153 -0
  42. package/lib/__tests__/powerDataSourcesInfoProvider.test.js.map +1 -0
  43. package/lib/__tests__/runtimeClientProvider.test.d.ts +5 -0
  44. package/lib/__tests__/runtimeClientProvider.test.d.ts.map +1 -0
  45. package/lib/__tests__/runtimeClientProvider.test.js +248 -0
  46. package/lib/__tests__/runtimeClientProvider.test.js.map +1 -0
  47. package/lib/__tests__/runtimeDataClient.spec.d.ts +2 -0
  48. package/lib/__tests__/runtimeDataClient.spec.d.ts.map +1 -0
  49. package/lib/__tests__/runtimeDataClient.spec.js +351 -0
  50. package/lib/__tests__/runtimeDataClient.spec.js.map +1 -0
  51. package/lib/__tests__/runtimeDataClient.test.d.ts +2 -0
  52. package/lib/__tests__/runtimeDataClient.test.d.ts.map +1 -0
  53. package/lib/__tests__/runtimeDataClient.test.js +351 -0
  54. package/lib/__tests__/runtimeDataClient.test.js.map +1 -0
  55. package/lib/__tests__/runtimeDataOperation.test.d.ts +5 -0
  56. package/lib/__tests__/runtimeDataOperation.test.d.ts.map +1 -0
  57. package/lib/__tests__/runtimeDataOperation.test.js +234 -0
  58. package/lib/__tests__/runtimeDataOperation.test.js.map +1 -0
  59. package/lib/__tests__/runtimeMetadataClient.test.d.ts +5 -0
  60. package/lib/__tests__/runtimeMetadataClient.test.d.ts.map +1 -0
  61. package/lib/__tests__/runtimeMetadataClient.test.js +271 -0
  62. package/lib/__tests__/runtimeMetadataClient.test.js.map +1 -0
  63. package/lib/__tests__/runtimeMetadataOperations.test.d.ts +5 -0
  64. package/lib/__tests__/runtimeMetadataOperations.test.d.ts.map +1 -0
  65. package/lib/__tests__/runtimeMetadataOperations.test.js +286 -0
  66. package/lib/__tests__/runtimeMetadataOperations.test.js.map +1 -0
  67. package/lib/__tests__/serviceSchemaModelSnapshot.test.d.ts +2 -0
  68. package/lib/__tests__/serviceSchemaModelSnapshot.test.d.ts.map +1 -0
  69. package/lib/__tests__/serviceSchemaModelSnapshot.test.js +98 -0
  70. package/lib/__tests__/serviceSchemaModelSnapshot.test.js.map +1 -0
  71. package/lib/__tests__/types.spec.d.ts +5 -0
  72. package/lib/__tests__/types.spec.d.ts.map +1 -0
  73. package/lib/__tests__/types.spec.js +104 -0
  74. package/lib/__tests__/types.spec.js.map +1 -0
  75. package/lib/__tests__/utils.test.d.ts +5 -0
  76. package/lib/__tests__/utils.test.d.ts.map +1 -0
  77. package/lib/__tests__/utils.test.js +33 -0
  78. package/lib/__tests__/utils.test.js.map +1 -0
  79. package/lib/app/Lifecycle.d.ts +9 -0
  80. package/lib/app/Lifecycle.d.ts.map +1 -0
  81. package/lib/app/Lifecycle.js +36 -0
  82. package/lib/app/Lifecycle.js.map +1 -0
  83. package/lib/app/index.d.ts +5 -0
  84. package/lib/app/index.d.ts.map +1 -0
  85. package/lib/app/index.js +5 -0
  86. package/lib/app/index.js.map +1 -0
  87. package/lib/data/Data.types.d.ts +20 -0
  88. package/lib/data/Data.types.d.ts.map +1 -0
  89. package/lib/data/Data.types.js +5 -0
  90. package/lib/data/Data.types.js.map +1 -0
  91. package/lib/data/index.d.ts +7 -0
  92. package/lib/data/index.d.ts.map +1 -0
  93. package/lib/data/index.js +5 -0
  94. package/lib/data/index.js.map +1 -0
  95. package/lib/data/powerAppsData.d.ts +8 -0
  96. package/lib/data/powerAppsData.d.ts.map +1 -0
  97. package/lib/data/powerAppsData.js +38 -0
  98. package/lib/data/powerAppsData.js.map +1 -0
  99. package/lib/index.d.ts +8 -0
  100. package/lib/index.d.ts.map +1 -0
  101. package/lib/index.js +8 -0
  102. package/lib/index.js.map +1 -0
  103. package/lib/internal/communication/CompatibleMessageReceiver.d.ts +12 -0
  104. package/lib/internal/communication/CompatibleMessageReceiver.d.ts.map +1 -0
  105. package/lib/internal/communication/CompatibleMessageReceiver.js +92 -0
  106. package/lib/internal/communication/CompatibleMessageReceiver.js.map +1 -0
  107. package/lib/internal/communication/IncompatibleMessageReceiver.d.ts +10 -0
  108. package/lib/internal/communication/IncompatibleMessageReceiver.d.ts.map +1 -0
  109. package/lib/internal/communication/IncompatibleMessageReceiver.js +13 -0
  110. package/lib/internal/communication/IncompatibleMessageReceiver.js.map +1 -0
  111. package/lib/internal/communication/MessageReceiver.Types.d.ts +18 -0
  112. package/lib/internal/communication/MessageReceiver.Types.d.ts.map +1 -0
  113. package/lib/internal/communication/MessageReceiver.Types.js +5 -0
  114. package/lib/internal/communication/MessageReceiver.Types.js.map +1 -0
  115. package/lib/internal/communication/SendMessage.d.ts +11 -0
  116. package/lib/internal/communication/SendMessage.d.ts.map +1 -0
  117. package/lib/internal/communication/SendMessage.js +32 -0
  118. package/lib/internal/communication/SendMessage.js.map +1 -0
  119. package/lib/internal/communication/SendMessageOperation.d.ts +15 -0
  120. package/lib/internal/communication/SendMessageOperation.d.ts.map +1 -0
  121. package/lib/internal/communication/SendMessageOperation.js +18 -0
  122. package/lib/internal/communication/SendMessageOperation.js.map +1 -0
  123. package/lib/internal/data/ConnectionUtils.d.ts +5 -0
  124. package/lib/internal/data/ConnectionUtils.d.ts.map +1 -0
  125. package/lib/internal/data/ConnectionUtils.js +20 -0
  126. package/lib/internal/data/ConnectionUtils.js.map +1 -0
  127. package/lib/internal/data/OperationExecutor.d.ts +18 -0
  128. package/lib/internal/data/OperationExecutor.d.ts.map +1 -0
  129. package/lib/internal/data/OperationExecutor.js +35 -0
  130. package/lib/internal/data/OperationExecutor.js.map +1 -0
  131. package/lib/internal/data/core/api/createRecord.d.ts +13 -0
  132. package/lib/internal/data/core/api/createRecord.d.ts.map +1 -0
  133. package/lib/internal/data/core/api/createRecord.js +15 -0
  134. package/lib/internal/data/core/api/createRecord.js.map +1 -0
  135. package/lib/internal/data/core/api/deleteRecord.d.ts +13 -0
  136. package/lib/internal/data/core/api/deleteRecord.d.ts.map +1 -0
  137. package/lib/internal/data/core/api/deleteRecord.js +15 -0
  138. package/lib/internal/data/core/api/deleteRecord.js.map +1 -0
  139. package/lib/internal/data/core/api/execute.d.ts +11 -0
  140. package/lib/internal/data/core/api/execute.d.ts.map +1 -0
  141. package/lib/internal/data/core/api/execute.js +13 -0
  142. package/lib/internal/data/core/api/execute.js.map +1 -0
  143. package/lib/internal/data/core/api/retrieveMultipleRecords.d.ts +13 -0
  144. package/lib/internal/data/core/api/retrieveMultipleRecords.d.ts.map +1 -0
  145. package/lib/internal/data/core/api/retrieveMultipleRecords.js +15 -0
  146. package/lib/internal/data/core/api/retrieveMultipleRecords.js.map +1 -0
  147. package/lib/internal/data/core/api/retrieveRecord.d.ts +13 -0
  148. package/lib/internal/data/core/api/retrieveRecord.d.ts.map +1 -0
  149. package/lib/internal/data/core/api/retrieveRecord.js +15 -0
  150. package/lib/internal/data/core/api/retrieveRecord.js.map +1 -0
  151. package/lib/internal/data/core/api/updateRecord.d.ts +14 -0
  152. package/lib/internal/data/core/api/updateRecord.d.ts.map +1 -0
  153. package/lib/internal/data/core/api/updateRecord.js +16 -0
  154. package/lib/internal/data/core/api/updateRecord.js.map +1 -0
  155. package/lib/internal/data/core/common/types.d.ts +230 -0
  156. package/lib/internal/data/core/common/types.d.ts.map +1 -0
  157. package/lib/internal/data/core/common/types.js +25 -0
  158. package/lib/internal/data/core/common/types.js.map +1 -0
  159. package/lib/internal/data/core/common/utils.d.ts +19 -0
  160. package/lib/internal/data/core/common/utils.d.ts.map +1 -0
  161. package/lib/internal/data/core/common/utils.js +47 -0
  162. package/lib/internal/data/core/common/utils.js.map +1 -0
  163. package/lib/internal/data/core/data/connectorDataOperation.d.ts +160 -0
  164. package/lib/internal/data/core/data/connectorDataOperation.d.ts.map +1 -0
  165. package/lib/internal/data/core/data/connectorDataOperation.js +500 -0
  166. package/lib/internal/data/core/data/connectorDataOperation.js.map +1 -0
  167. package/lib/internal/data/core/data/dataverseDataOperation.d.ts +164 -0
  168. package/lib/internal/data/core/data/dataverseDataOperation.d.ts.map +1 -0
  169. package/lib/internal/data/core/data/dataverseDataOperation.js +508 -0
  170. package/lib/internal/data/core/data/dataverseDataOperation.js.map +1 -0
  171. package/lib/internal/data/core/data/runtimeDataOperations.d.ts +93 -0
  172. package/lib/internal/data/core/data/runtimeDataOperations.d.ts.map +1 -0
  173. package/lib/internal/data/core/data/runtimeDataOperations.js +244 -0
  174. package/lib/internal/data/core/data/runtimeDataOperations.js.map +1 -0
  175. package/lib/internal/data/core/error/codes.d.ts +31 -0
  176. package/lib/internal/data/core/error/codes.d.ts.map +1 -0
  177. package/lib/internal/data/core/error/codes.js +39 -0
  178. package/lib/internal/data/core/error/codes.js.map +1 -0
  179. package/lib/internal/data/core/error/constants.d.ts +30 -0
  180. package/lib/internal/data/core/error/constants.d.ts.map +1 -0
  181. package/lib/internal/data/core/error/constants.js +33 -0
  182. package/lib/internal/data/core/error/constants.js.map +1 -0
  183. package/lib/internal/data/core/error/error.d.ts +8 -0
  184. package/lib/internal/data/core/error/error.d.ts.map +1 -0
  185. package/lib/internal/data/core/error/error.js +8 -0
  186. package/lib/internal/data/core/error/error.js.map +1 -0
  187. package/lib/internal/data/core/error/messages.d.ts +24 -0
  188. package/lib/internal/data/core/error/messages.d.ts.map +1 -0
  189. package/lib/internal/data/core/error/messages.js +55 -0
  190. package/lib/internal/data/core/error/messages.js.map +1 -0
  191. package/lib/internal/data/core/error/types.d.ts +30 -0
  192. package/lib/internal/data/core/error/types.d.ts.map +1 -0
  193. package/lib/internal/data/core/error/types.js +28 -0
  194. package/lib/internal/data/core/error/types.js.map +1 -0
  195. package/lib/internal/data/core/error/util.d.ts +24 -0
  196. package/lib/internal/data/core/error/util.d.ts.map +1 -0
  197. package/lib/internal/data/core/error/util.js +71 -0
  198. package/lib/internal/data/core/error/util.js.map +1 -0
  199. package/lib/internal/data/core/metadata/runtimeDataSourceService.d.ts +65 -0
  200. package/lib/internal/data/core/metadata/runtimeDataSourceService.d.ts.map +1 -0
  201. package/lib/internal/data/core/metadata/runtimeDataSourceService.js +101 -0
  202. package/lib/internal/data/core/metadata/runtimeDataSourceService.js.map +1 -0
  203. package/lib/internal/data/core/metadata/runtimeMetadataOperations.d.ts +17 -0
  204. package/lib/internal/data/core/metadata/runtimeMetadataOperations.d.ts.map +1 -0
  205. package/lib/internal/data/core/metadata/runtimeMetadataOperations.js +34 -0
  206. package/lib/internal/data/core/metadata/runtimeMetadataOperations.js.map +1 -0
  207. package/lib/internal/data/core/runtime/getRuntimeContext.d.ts +11 -0
  208. package/lib/internal/data/core/runtime/getRuntimeContext.d.ts.map +1 -0
  209. package/lib/internal/data/core/runtime/getRuntimeContext.js +16 -0
  210. package/lib/internal/data/core/runtime/getRuntimeContext.js.map +1 -0
  211. package/lib/internal/data/core/runtime/initializeRuntime.d.ts +13 -0
  212. package/lib/internal/data/core/runtime/initializeRuntime.d.ts.map +1 -0
  213. package/lib/internal/data/core/runtime/initializeRuntime.js +38 -0
  214. package/lib/internal/data/core/runtime/initializeRuntime.js.map +1 -0
  215. package/lib/internal/data/core/runtime/powerDataRuntime.d.ts +68 -0
  216. package/lib/internal/data/core/runtime/powerDataRuntime.d.ts.map +1 -0
  217. package/lib/internal/data/core/runtime/powerDataRuntime.js +116 -0
  218. package/lib/internal/data/core/runtime/powerDataRuntime.js.map +1 -0
  219. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.d.ts +20 -0
  220. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.d.ts.map +1 -0
  221. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.js +36 -0
  222. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.js.map +1 -0
  223. package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.d.ts +34 -0
  224. package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.d.ts.map +1 -0
  225. package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.js +45 -0
  226. package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.js.map +1 -0
  227. package/lib/internal/data/core/runtimeClient/runtimeClientProvider.d.ts +43 -0
  228. package/lib/internal/data/core/runtimeClient/runtimeClientProvider.d.ts.map +1 -0
  229. package/lib/internal/data/core/runtimeClient/runtimeClientProvider.js +87 -0
  230. package/lib/internal/data/core/runtimeClient/runtimeClientProvider.js.map +1 -0
  231. package/lib/internal/data/core/runtimeClient/runtimeDataClient.d.ts +112 -0
  232. package/lib/internal/data/core/runtimeClient/runtimeDataClient.d.ts.map +1 -0
  233. package/lib/internal/data/core/runtimeClient/runtimeDataClient.js +457 -0
  234. package/lib/internal/data/core/runtimeClient/runtimeDataClient.js.map +1 -0
  235. package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.d.ts +40 -0
  236. package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.d.ts.map +1 -0
  237. package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.js +94 -0
  238. package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.js.map +1 -0
  239. package/lib/internal/data/core/telemetry/log.d.ts +20 -0
  240. package/lib/internal/data/core/telemetry/log.d.ts.map +1 -0
  241. package/lib/internal/data/core/telemetry/log.js +85 -0
  242. package/lib/internal/data/core/telemetry/log.js.map +1 -0
  243. package/lib/internal/data/core/types/index.d.ts +138 -0
  244. package/lib/internal/data/core/types/index.d.ts.map +1 -0
  245. package/lib/internal/data/core/types/index.js +7 -0
  246. package/lib/internal/data/core/types/index.js.map +1 -0
  247. package/lib/internal/plugin/PluginCommon.d.ts +16 -0
  248. package/lib/internal/plugin/PluginCommon.d.ts.map +1 -0
  249. package/lib/internal/plugin/PluginCommon.js +114 -0
  250. package/lib/internal/plugin/PluginCommon.js.map +1 -0
  251. package/lib/internal/plugin/PluginMobile.d.ts +13 -0
  252. package/lib/internal/plugin/PluginMobile.d.ts.map +1 -0
  253. package/lib/internal/plugin/PluginMobile.js +109 -0
  254. package/lib/internal/plugin/PluginMobile.js.map +1 -0
  255. package/lib/telemetry/Logger.types.d.ts +8 -0
  256. package/lib/telemetry/Logger.types.d.ts.map +1 -0
  257. package/lib/telemetry/Logger.types.js +5 -0
  258. package/lib/telemetry/Logger.types.js.map +1 -0
  259. package/lib/telemetry/LoggerManager.d.ts +6 -0
  260. package/lib/telemetry/LoggerManager.d.ts.map +1 -0
  261. package/lib/telemetry/LoggerManager.js +28 -0
  262. package/lib/telemetry/LoggerManager.js.map +1 -0
  263. package/lib/telemetry/Metrics.types.d.ts +53 -0
  264. package/lib/telemetry/Metrics.types.d.ts.map +1 -0
  265. package/lib/telemetry/Metrics.types.js +5 -0
  266. package/lib/telemetry/Metrics.types.js.map +1 -0
  267. package/lib/telemetry/Performance.d.ts +5 -0
  268. package/lib/telemetry/Performance.d.ts.map +1 -0
  269. package/lib/telemetry/Performance.js +47 -0
  270. package/lib/telemetry/Performance.js.map +1 -0
  271. package/lib/telemetry/index.d.ts +5 -0
  272. package/lib/telemetry/index.d.ts.map +1 -0
  273. package/lib/telemetry/index.js +5 -0
  274. package/lib/telemetry/index.js.map +1 -0
  275. package/package.json +40 -0
@@ -0,0 +1,509 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import { ConnectorDataOperation } from '../internal/data/core/data/connectorDataOperation';
5
+ import { DataOperationErrorMessages, ErrorCodes, ErrorMessages } from '../internal/data/core/error/error';
6
+ import { getMockClientProvider, getMockConnectionsService, getMockDataClient, getMockMetadataClient, suppressConsoleErrorTelemetryLogger, } from './helpers/testHelpers';
7
+ import { expect } from '@jest/globals';
8
+ describe('ConnectorDataOperation', () => {
9
+ let clientProvider;
10
+ let connectionsService;
11
+ let dataClient;
12
+ let metadataClient;
13
+ let instance;
14
+ const tableName = 'TestTable';
15
+ const connectionReference = {
16
+ apiId: 'apiId',
17
+ runtimeUrl: 'https://runtime',
18
+ connectionName: 'connName',
19
+ datasetName: 'ds',
20
+ tableId: 'tid',
21
+ version: 'v1',
22
+ };
23
+ const connectionReferences = { [tableName]: connectionReference };
24
+ const dataSourceInfo = {
25
+ tableId: 'tid',
26
+ version: 'v1',
27
+ apis: {
28
+ op: {
29
+ parameters: [
30
+ {
31
+ name: 'userId',
32
+ in: 'header',
33
+ required: true,
34
+ type: 'string',
35
+ },
36
+ {
37
+ name: 'optionalHeader',
38
+ in: 'header',
39
+ required: false,
40
+ type: 'number',
41
+ },
42
+ ],
43
+ path: '/op',
44
+ },
45
+ },
46
+ };
47
+ beforeAll(() => {
48
+ suppressConsoleErrorTelemetryLogger();
49
+ });
50
+ beforeEach(() => {
51
+ dataClient = getMockDataClient();
52
+ metadataClient = getMockMetadataClient(connectionReferences);
53
+ clientProvider = getMockClientProvider(dataClient, metadataClient);
54
+ connectionsService = getMockConnectionsService(dataSourceInfo);
55
+ instance = new TestableConnectorDataOperation(clientProvider, connectionsService);
56
+ // Reset private cache
57
+ instance._connectionReferences = undefined;
58
+ instance._databaseReferences = undefined;
59
+ });
60
+ describe('CRUD Operations', () => {
61
+ it('should create a record', async () => {
62
+ const data = { foo: 'bar' };
63
+ const result = await instance.createRecordAsync(tableName, data);
64
+ expect(result.success).toBe(true);
65
+ expect(dataClient.createDataAsync).toHaveBeenCalledWith(expect.stringContaining('https://runtime'), connectionReference.apiId, tableName, data, expect.objectContaining({ operationName: 'connectorDataOperation.createRecordAsync' }));
66
+ });
67
+ it('should update a record', async () => {
68
+ const data = { foo: 'baz' };
69
+ const id = '1';
70
+ const result = await instance.updateRecordAsync(tableName, id, data);
71
+ expect(result.success).toBe(true);
72
+ expect(dataClient.updateDataAsync).toHaveBeenCalledWith(expect.stringContaining('https://runtime'), connectionReference.apiId, tableName, data, expect.objectContaining({ operationName: 'connectorDataOperation.updateRecordAsync' }));
73
+ });
74
+ it('should delete a record', async () => {
75
+ const id = '1';
76
+ const result = await instance.deleteRecordAsync(tableName, id);
77
+ expect(result.success).toBe(true);
78
+ expect(dataClient.deleteDataAsync).toHaveBeenCalledWith(expect.stringContaining('https://runtime'), connectionReference.apiId, tableName, expect.objectContaining({ operationName: 'connectorDataOperation.deleteRecordAsync' }));
79
+ });
80
+ it('should retrieve a record', async () => {
81
+ const id = '1';
82
+ const options = '?opt=1';
83
+ const result = await instance.retrieveRecordAsync(tableName, id, options);
84
+ expect(result.success).toBe(true);
85
+ expect(dataClient.retrieveDataAsync).toHaveBeenCalledWith(expect.stringContaining('https://runtime'), connectionReference.apiId, tableName, 'GET', undefined, expect.objectContaining({ operationName: 'connectorDataOperation.retrieveRecordAsync' }));
86
+ });
87
+ });
88
+ describe('Parameter Mapping', () => {
89
+ it('should populate header parameters from object type input parameters', async () => {
90
+ const parameters = { userId: '123', optionalHeader: 456 };
91
+ const result = await instance.executeAsync({
92
+ connectorOperation: {
93
+ tableName,
94
+ operationName: 'op',
95
+ parameters,
96
+ },
97
+ });
98
+ expect(result.success).toBe(true);
99
+ expect(dataClient.retrieveDataAsync).toHaveBeenCalledWith('https://runtime/op', 'apiId', 'TestTable', 'GET', { userId: '123', optionalHeader: 456 }, undefined, { isExecuteAsync: true, operationName: 'connectorDataOperation.op' });
100
+ });
101
+ it('should handle missing optional header parameters from object type input parameters', async () => {
102
+ const parameters = { userId: '123' };
103
+ const result = await instance.executeAsync({
104
+ connectorOperation: {
105
+ tableName,
106
+ operationName: 'op',
107
+ parameters,
108
+ },
109
+ });
110
+ expect(result.success).toBe(true);
111
+ expect(dataClient.retrieveDataAsync).toHaveBeenCalledWith('https://runtime/op', 'apiId', 'TestTable', 'GET', { userId: '123' }, undefined, { isExecuteAsync: true, operationName: 'connectorDataOperation.op' });
112
+ });
113
+ it('should handle header parameters from array type input parameters', async () => {
114
+ const result = await instance.executeAsync({
115
+ connectorOperation: {
116
+ tableName,
117
+ operationName: 'op',
118
+ parameters: ['123', 456],
119
+ },
120
+ });
121
+ expect(result.success).toBe(true);
122
+ expect(dataClient.retrieveDataAsync).toHaveBeenCalledWith('https://runtime/op', 'apiId', 'TestTable', 'GET', { userId: '123', optionalHeader: 456 }, undefined, { isExecuteAsync: true, operationName: 'connectorDataOperation.op' });
123
+ });
124
+ it('should handle missing connection reference', async () => {
125
+ instance._connectionReferences = {};
126
+ const result = await instance.createRecordAsync('UnknownTable', { foo: 'bar' });
127
+ expect(result.success).toBe(false);
128
+ expect(result.error).toBeInstanceOf(Error);
129
+ if (result.error) {
130
+ expect(result.error.message).toContain(ErrorMessages[ErrorCodes.ConnectionReferenceNotFound]);
131
+ }
132
+ });
133
+ });
134
+ describe('Error Handling', () => {
135
+ it('should throw if constructed with missing clientProvider', () => {
136
+ expect(() => new ConnectorDataOperation(undefined, connectionsService)).toThrow(ErrorMessages[ErrorCodes.ClientProviderNotAvailable]);
137
+ });
138
+ it('should throw if constructed with missing connectionsService', () => {
139
+ expect(() => new ConnectorDataOperation(clientProvider, undefined)).toThrow(ErrorMessages[ErrorCodes.DataSourceServiceNotAvailable]);
140
+ });
141
+ it('should handle error from data client', async () => {
142
+ dataClient.createDataAsync.mockRejectedValue(new Error('fail'));
143
+ const result = await instance.createRecordAsync(tableName, { foo: 'bar' });
144
+ expect(result.success).toBe(false);
145
+ expect(result.error).toBeInstanceOf(Error);
146
+ if (result.error) {
147
+ expect(result.error.message).toContain(DataOperationErrorMessages.CreateFailed);
148
+ }
149
+ });
150
+ });
151
+ describe('_buildOperationBodyParam', () => {
152
+ it('should map body parameters correctly, including normalized names and special "body" param', async () => {
153
+ // Arrange
154
+ const testInstance = new TestableConnectorDataOperation(clientProvider, connectionsService);
155
+ const testOperationName = 'customOp';
156
+ const testTableName = 'TestTable';
157
+ const apiParams = [
158
+ { name: 'connectionId', in: 'path', required: true },
159
+ { name: 'body', in: 'body', required: true },
160
+ { name: 'foo-bar', in: 'body', required: false },
161
+ { name: 'baz_param', in: 'body', required: false },
162
+ ];
163
+ const testDataSourceInfo = {
164
+ tableId: 'tid',
165
+ version: 'v1',
166
+ apis: {
167
+ [testOperationName]: { parameters: apiParams },
168
+ },
169
+ };
170
+ connectionsService.getDataSource.mockResolvedValue(testDataSourceInfo);
171
+ // The rawParams object uses both hyphens and underscores
172
+ const parameters = {
173
+ connectionId: '123',
174
+ body: { a: 1, b: 2 },
175
+ foo_bar: 42,
176
+ 'baz-param': 'hello',
177
+ };
178
+ const operation = {
179
+ connectorOperation: {
180
+ tableName: testTableName,
181
+ operationName: testOperationName,
182
+ parameters,
183
+ },
184
+ };
185
+ // Act
186
+ const result = await testInstance.buildOperationBodyParam(operation, testTableName);
187
+ // Assert
188
+ expect(JSON.parse(result)).toEqual({
189
+ a: 1,
190
+ b: 2,
191
+ });
192
+ });
193
+ });
194
+ describe('_getNormalizedParamValue', () => {
195
+ let testInstance;
196
+ beforeEach(() => {
197
+ testInstance = new TestableConnectorDataOperation(clientProvider, connectionsService);
198
+ });
199
+ function callGetNormalizedParamValue(obj, paramName) {
200
+ // @ts-expect-error: Accessing private method for testing
201
+ return testInstance._getNormalizedParamValue(obj, paramName);
202
+ }
203
+ it('returns value for exact match', () => {
204
+ const obj = { foo_bar: 123 };
205
+ expect(callGetNormalizedParamValue(obj, 'foo_bar')).toBe(123);
206
+ });
207
+ it('returns value for hyphen/underscore normalization', () => {
208
+ const obj = { 'foo-bar': 456 };
209
+ expect(callGetNormalizedParamValue(obj, 'foo_bar')).toBe(456);
210
+ expect(callGetNormalizedParamValue(obj, 'foo-bar')).toBe(456);
211
+ });
212
+ it('returns undefined if no match', () => {
213
+ const obj = { bar: 789 };
214
+ expect(callGetNormalizedParamValue(obj, 'baz')).toBeUndefined();
215
+ });
216
+ it('returns value for paramName with hyphens when object uses underscores', () => {
217
+ const obj = { foo_bar: 321 };
218
+ expect(callGetNormalizedParamValue(obj, 'foo-bar')).toBe(321);
219
+ });
220
+ it('returns value for case insensitive match with underscores', () => {
221
+ const obj = { FOO_BAR: 100 };
222
+ expect(callGetNormalizedParamValue(obj, 'foo_bar')).toBe(100);
223
+ expect(callGetNormalizedParamValue(obj, 'Foo_Bar')).toBe(100);
224
+ expect(callGetNormalizedParamValue(obj, 'FOO_BAR')).toBe(100);
225
+ });
226
+ it('returns value for case insensitive match with hyphens', () => {
227
+ const obj = { 'FOO-BAR': 200 };
228
+ expect(callGetNormalizedParamValue(obj, 'foo-bar')).toBe(200);
229
+ expect(callGetNormalizedParamValue(obj, 'Foo-Bar')).toBe(200);
230
+ expect(callGetNormalizedParamValue(obj, 'FOO-BAR')).toBe(200);
231
+ });
232
+ it('returns value for case insensitive match with mixed hyphen/underscore normalization', () => {
233
+ const obj = { 'User-ID': 300 };
234
+ expect(callGetNormalizedParamValue(obj, 'user_id')).toBe(300);
235
+ expect(callGetNormalizedParamValue(obj, 'USER_ID')).toBe(300);
236
+ expect(callGetNormalizedParamValue(obj, 'User_ID')).toBe(300);
237
+ });
238
+ it('returns value for case insensitive match when searching for mixed case param in lowercase object', () => {
239
+ const obj = { user_id: 400 };
240
+ expect(callGetNormalizedParamValue(obj, 'User-ID')).toBe(400);
241
+ expect(callGetNormalizedParamValue(obj, 'USER-ID')).toBe(400);
242
+ expect(callGetNormalizedParamValue(obj, 'User_ID')).toBe(400);
243
+ });
244
+ });
245
+ // Helper subclass to expose protected/private methods for testing
246
+ class TestableConnectorDataOperation extends ConnectorDataOperation {
247
+ buildStandardOperationUrl(operation, config, operationName, path) {
248
+ // @ts-expect-error: Accessing private method for testing
249
+ return this._buildStandardOperationUrl(operation, config, operationName, path);
250
+ }
251
+ buildOperationBodyParam(operation, testTableName) {
252
+ // @ts-expect-error: Accessing private method for testing
253
+ return this._buildOperationBodyParam(operation, testTableName);
254
+ }
255
+ }
256
+ describe('_buildStandardOperationUrl parameter mapping', () => {
257
+ let testInstance;
258
+ const testConfig = {
259
+ tableName: 'TestTable',
260
+ apiId: 'apiId',
261
+ runtimeUrl: 'https://runtime',
262
+ connectionName: 'connName',
263
+ datasetName: 'ds',
264
+ tableId: 'tid',
265
+ version: 'v1',
266
+ };
267
+ const testOperationName = 'op';
268
+ const testPath = '/op';
269
+ beforeEach(() => {
270
+ testInstance = new TestableConnectorDataOperation(clientProvider, connectionsService);
271
+ connectionsService.getDataSource.mockResolvedValue({
272
+ tableId: 'tid',
273
+ version: 'v1',
274
+ apis: {
275
+ [testOperationName]: {
276
+ parameters: [
277
+ { name: 'connectionId', in: 'path', required: true },
278
+ { name: 'foo-bar', in: 'query', required: false },
279
+ { name: 'baz_param', in: 'query', required: false },
280
+ ],
281
+ path: testPath,
282
+ },
283
+ },
284
+ });
285
+ });
286
+ it('maps string operationParams', async () => {
287
+ const operation = { connectorOperation: { parameters: 'abc', operationName: testOperationName } };
288
+ const url = await testInstance.buildStandardOperationUrl(operation, testConfig, testOperationName, testPath);
289
+ expect(url).toContain('abc');
290
+ });
291
+ it('maps object operationParams with normalization', async () => {
292
+ const operation = {
293
+ connectorOperation: {
294
+ parameters: { foo_bar: 1, 'baz-param': 2 },
295
+ operationName: testOperationName,
296
+ },
297
+ };
298
+ const url = await testInstance.buildStandardOperationUrl(operation, testConfig, testOperationName, testPath);
299
+ expect(url).toContain('foo-bar=1');
300
+ expect(url).toContain('baz_param=2');
301
+ });
302
+ });
303
+ describe('Connector header parameter handling', () => {
304
+ const operationName = 'testOp';
305
+ const baseApi = {
306
+ path: '/testOp',
307
+ parameters: [
308
+ { name: 'param1', in: 'header', required: true, type: 'string' },
309
+ { name: 'param2', in: 'header', required: false, type: 'number' },
310
+ { name: 'param3', in: 'header', required: false, type: 'boolean' },
311
+ { name: 'param4', in: 'header', required: false, type: 'object' },
312
+ { name: 'param5', in: 'header', required: false, type: 'array' },
313
+ ],
314
+ };
315
+ beforeEach(() => {
316
+ // Add the test operation to the dataSourceInfo mock
317
+ dataSourceInfo.apis[operationName] = baseApi;
318
+ });
319
+ it('should succeed when only header parameters are provided (no input)', async () => {
320
+ const result = await instance.executeAsync({
321
+ connectorOperation: {
322
+ tableName,
323
+ operationName,
324
+ },
325
+ });
326
+ expect(result.success).toBe(true);
327
+ expect(dataClient.retrieveDataAsync).toHaveBeenCalledWith('https://runtime/testOp', 'apiId', 'TestTable', 'GET', undefined, undefined, {
328
+ isExecuteAsync: true,
329
+ operationName: `connectorDataOperation.${operationName}`,
330
+ });
331
+ });
332
+ it('should succeed with required header parameter (string)', async () => {
333
+ const result = await instance.executeAsync({
334
+ connectorOperation: {
335
+ tableName,
336
+ operationName,
337
+ parameters: { param1: 'foo' },
338
+ },
339
+ });
340
+ expect(result.success).toBe(true);
341
+ expect(dataClient.retrieveDataAsync).toHaveBeenCalledWith('https://runtime/testOp', 'apiId', 'TestTable', 'GET', { param1: 'foo' }, undefined, {
342
+ isExecuteAsync: true,
343
+ operationName: `connectorDataOperation.${operationName}`,
344
+ });
345
+ });
346
+ it('should succeed with multiple header parameters (string, number, boolean)', async () => {
347
+ const result = await instance.executeAsync({
348
+ connectorOperation: {
349
+ tableName,
350
+ operationName,
351
+ parameters: { param1: 'foo', param2: 42, param3: true },
352
+ },
353
+ });
354
+ expect(result.success).toBe(true);
355
+ expect(dataClient.retrieveDataAsync).toHaveBeenCalledWith('https://runtime/testOp', 'apiId', 'TestTable', 'GET', { param1: 'foo', param2: 42, param3: true }, undefined, {
356
+ isExecuteAsync: true,
357
+ operationName: `connectorDataOperation.${operationName}`,
358
+ });
359
+ });
360
+ it('should succeed with object and array header parameters', async () => {
361
+ const obj = { a: 1 };
362
+ const arr = [1, 2, 3];
363
+ const result = await instance.executeAsync({
364
+ connectorOperation: {
365
+ tableName,
366
+ operationName,
367
+ parameters: { param1: 'foo', param4: obj, param5: arr },
368
+ },
369
+ });
370
+ expect(result.success).toBe(true);
371
+ // Get the actual call arguments
372
+ const callArgs = dataClient.retrieveDataAsync.mock.calls[0];
373
+ const headers = callArgs[4];
374
+ expect(headers.param1).toBe('foo');
375
+ expect(typeof headers.param4).toBe('object');
376
+ expect(headers.param4).toEqual(obj);
377
+ expect(Array.isArray(headers.param5)).toBe(true);
378
+ expect(headers.param5).toEqual(arr);
379
+ });
380
+ [
381
+ [
382
+ 'string',
383
+ { param1: 'foo' },
384
+ (headers) => expect(typeof headers.param1).toBe('string'),
385
+ ],
386
+ [
387
+ 'number',
388
+ { param2: 123 },
389
+ (headers) => expect(typeof headers.param2).toBe('number'),
390
+ ],
391
+ [
392
+ 'boolean',
393
+ { param3: true },
394
+ (headers) => expect(typeof headers.param3).toBe('boolean'),
395
+ ],
396
+ [
397
+ 'object',
398
+ { param4: { x: 1 } },
399
+ (headers) => expect(typeof headers.param4).toBe('object'),
400
+ ],
401
+ [
402
+ 'array',
403
+ { param5: [1, 2, 3] },
404
+ (headers) => expect(Array.isArray(headers.param5)).toBe(true),
405
+ ],
406
+ ].forEach(([type, params, typeCheck]) => {
407
+ it(`should succeed for header parameter of type: ${type}`, async () => {
408
+ const result = await instance.executeAsync({
409
+ connectorOperation: {
410
+ tableName,
411
+ operationName,
412
+ parameters: params,
413
+ },
414
+ });
415
+ expect(result.success).toBe(true);
416
+ const callArgs = dataClient.retrieveDataAsync.mock.calls[0];
417
+ const headers = callArgs[4];
418
+ Object.entries(params).forEach(([key, value]) => {
419
+ expect(headers[key]).toEqual(value);
420
+ });
421
+ typeCheck(headers);
422
+ });
423
+ });
424
+ });
425
+ describe('executeAsync additional scenarios', () => {
426
+ const operationName = 'outputTestOp';
427
+ // Use Record<string, unknown> for apis
428
+ const apis = dataSourceInfo.apis;
429
+ const outputApi = {
430
+ path: '/outputTestOp',
431
+ parameters: [
432
+ { name: 'paramA', in: 'header', required: true, type: 'string' },
433
+ { name: 'paramB', in: 'header', required: false, type: 'number' },
434
+ ],
435
+ responses: {
436
+ 200: {
437
+ description: 'Success',
438
+ schema: {
439
+ type: 'object',
440
+ properties: {
441
+ result: { type: 'string' },
442
+ value: { type: 'number' },
443
+ },
444
+ },
445
+ },
446
+ },
447
+ };
448
+ beforeEach(() => {
449
+ dataClient.retrieveDataAsync.mockResolvedValue({ success: true, data: { result: 'ok', value: 123 } });
450
+ apis[operationName] = outputApi;
451
+ });
452
+ it('should return output with correct structure and types', async () => {
453
+ const result = await instance.executeAsync({
454
+ connectorOperation: {
455
+ tableName,
456
+ operationName,
457
+ parameters: { paramA: 'foo', paramB: 42 },
458
+ },
459
+ });
460
+ expect(result.success).toBe(true);
461
+ expect(result.data).toEqual({ result: 'ok', value: 123 });
462
+ expect(typeof result.data.result).toBe('string');
463
+ expect(typeof result.data.value).toBe('number');
464
+ });
465
+ it('should work with parameter order (array input)', async () => {
466
+ const result = await instance.executeAsync({
467
+ connectorOperation: {
468
+ tableName,
469
+ operationName,
470
+ parameters: ['foo', 42],
471
+ },
472
+ });
473
+ expect(result.success).toBe(true);
474
+ expect(dataClient.retrieveDataAsync).toHaveBeenCalledWith('https://runtime/outputTestOp', 'apiId', 'TestTable', 'GET', { paramA: 'foo', paramB: 42 }, undefined, {
475
+ isExecuteAsync: true,
476
+ operationName: `connectorDataOperation.${operationName}`,
477
+ });
478
+ });
479
+ it('should handle no output (empty response)', async () => {
480
+ dataClient.retrieveDataAsync.mockResolvedValue({ success: true, data: undefined });
481
+ const result = await instance.executeAsync({
482
+ connectorOperation: {
483
+ tableName,
484
+ operationName,
485
+ parameters: { paramA: 'foo' },
486
+ },
487
+ });
488
+ expect(result.success).toBe(true);
489
+ expect(result.data).toBeUndefined();
490
+ });
491
+ it('should handle multiple output properties', async () => {
492
+ dataClient.retrieveDataAsync.mockResolvedValue({
493
+ success: true,
494
+ data: { result: 'done', value: 999, extra: true },
495
+ });
496
+ const result = await instance.executeAsync({
497
+ connectorOperation: {
498
+ tableName,
499
+ operationName,
500
+ parameters: { paramA: 'bar', paramB: 7 },
501
+ },
502
+ });
503
+ expect(result.success).toBe(true);
504
+ expect(result.data).toEqual({ result: 'done', value: 999, extra: true });
505
+ expect(typeof result.data.extra).toBe('boolean');
506
+ });
507
+ });
508
+ });
509
+ //# sourceMappingURL=connectorDataOperation.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectorDataOperation.spec.js","sourceRoot":"","sources":["../../src/__tests__/connectorDataOperation.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=dataverseDataOperation.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataverseDataOperation.spec.d.ts","sourceRoot":"","sources":["../../src/__tests__/dataverseDataOperation.spec.ts"],"names":[],"mappings":"AAAA;;GAEG"}