@microsoft/power-apps 0.3.1

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 (291) hide show
  1. package/LICENSE +153 -0
  2. package/README.md +63 -0
  3. package/lib/__tests__/connectorDataOperationExecutor.spec.d.ts +5 -0
  4. package/lib/__tests__/connectorDataOperationExecutor.spec.d.ts.map +1 -0
  5. package/lib/__tests__/connectorDataOperationExecutor.spec.js +509 -0
  6. package/lib/__tests__/connectorDataOperationExecutor.spec.js.map +1 -0
  7. package/lib/__tests__/dataverseDataOperationExecutor.spec.d.ts +5 -0
  8. package/lib/__tests__/dataverseDataOperationExecutor.spec.d.ts.map +1 -0
  9. package/lib/__tests__/dataverseDataOperationExecutor.spec.js +349 -0
  10. package/lib/__tests__/dataverseDataOperationExecutor.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__/mockDataOperationExecutor.spec.d.ts +5 -0
  20. package/lib/__tests__/mockDataOperationExecutor.spec.d.ts.map +1 -0
  21. package/lib/__tests__/mockDataOperationExecutor.spec.js +51 -0
  22. package/lib/__tests__/mockDataOperationExecutor.spec.js.map +1 -0
  23. package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.d.ts +17 -0
  24. package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.d.ts.map +1 -0
  25. package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.js +35 -0
  26. package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.js.map +1 -0
  27. package/lib/__tests__/mocks/mockLog.d.ts +31 -0
  28. package/lib/__tests__/mocks/mockLog.d.ts.map +1 -0
  29. package/lib/__tests__/mocks/mockLog.js +53 -0
  30. package/lib/__tests__/mocks/mockLog.js.map +1 -0
  31. package/lib/__tests__/mocks/mockTeamsConnectorResponse.d.ts +76 -0
  32. package/lib/__tests__/mocks/mockTeamsConnectorResponse.d.ts.map +1 -0
  33. package/lib/__tests__/mocks/mockTeamsConnectorResponse.js +81 -0
  34. package/lib/__tests__/mocks/mockTeamsConnectorResponse.js.map +1 -0
  35. package/lib/__tests__/mocks/silenceConsole.d.ts +37 -0
  36. package/lib/__tests__/mocks/silenceConsole.d.ts.map +1 -0
  37. package/lib/__tests__/mocks/silenceConsole.js +58 -0
  38. package/lib/__tests__/mocks/silenceConsole.js.map +1 -0
  39. package/lib/__tests__/powerDataRuntimeInstance.test.d.ts +5 -0
  40. package/lib/__tests__/powerDataRuntimeInstance.test.d.ts.map +1 -0
  41. package/lib/__tests__/powerDataRuntimeInstance.test.js +179 -0
  42. package/lib/__tests__/powerDataRuntimeInstance.test.js.map +1 -0
  43. package/lib/__tests__/powerDataSourcesInfoProvider.test.d.ts +5 -0
  44. package/lib/__tests__/powerDataSourcesInfoProvider.test.d.ts.map +1 -0
  45. package/lib/__tests__/powerDataSourcesInfoProvider.test.js +153 -0
  46. package/lib/__tests__/powerDataSourcesInfoProvider.test.js.map +1 -0
  47. package/lib/__tests__/runtimeClientProvider.test.d.ts +5 -0
  48. package/lib/__tests__/runtimeClientProvider.test.d.ts.map +1 -0
  49. package/lib/__tests__/runtimeClientProvider.test.js +248 -0
  50. package/lib/__tests__/runtimeClientProvider.test.js.map +1 -0
  51. package/lib/__tests__/runtimeDataClient.spec.d.ts +2 -0
  52. package/lib/__tests__/runtimeDataClient.spec.d.ts.map +1 -0
  53. package/lib/__tests__/runtimeDataClient.spec.js +351 -0
  54. package/lib/__tests__/runtimeDataClient.spec.js.map +1 -0
  55. package/lib/__tests__/runtimeDataClient.test.d.ts +2 -0
  56. package/lib/__tests__/runtimeDataClient.test.d.ts.map +1 -0
  57. package/lib/__tests__/runtimeDataClient.test.js +351 -0
  58. package/lib/__tests__/runtimeDataClient.test.js.map +1 -0
  59. package/lib/__tests__/runtimeDataOperation.test.d.ts +5 -0
  60. package/lib/__tests__/runtimeDataOperation.test.d.ts.map +1 -0
  61. package/lib/__tests__/runtimeDataOperation.test.js +234 -0
  62. package/lib/__tests__/runtimeDataOperation.test.js.map +1 -0
  63. package/lib/__tests__/runtimeMetadataClient.test.d.ts +5 -0
  64. package/lib/__tests__/runtimeMetadataClient.test.d.ts.map +1 -0
  65. package/lib/__tests__/runtimeMetadataClient.test.js +271 -0
  66. package/lib/__tests__/runtimeMetadataClient.test.js.map +1 -0
  67. package/lib/__tests__/runtimeMetadataOperations.test.d.ts +5 -0
  68. package/lib/__tests__/runtimeMetadataOperations.test.d.ts.map +1 -0
  69. package/lib/__tests__/runtimeMetadataOperations.test.js +286 -0
  70. package/lib/__tests__/runtimeMetadataOperations.test.js.map +1 -0
  71. package/lib/__tests__/serviceSchemaModelSnapshot.test.d.ts +2 -0
  72. package/lib/__tests__/serviceSchemaModelSnapshot.test.d.ts.map +1 -0
  73. package/lib/__tests__/serviceSchemaModelSnapshot.test.js +98 -0
  74. package/lib/__tests__/serviceSchemaModelSnapshot.test.js.map +1 -0
  75. package/lib/__tests__/types.spec.d.ts +5 -0
  76. package/lib/__tests__/types.spec.d.ts.map +1 -0
  77. package/lib/__tests__/types.spec.js +104 -0
  78. package/lib/__tests__/types.spec.js.map +1 -0
  79. package/lib/__tests__/utils.test.d.ts +5 -0
  80. package/lib/__tests__/utils.test.d.ts.map +1 -0
  81. package/lib/__tests__/utils.test.js +33 -0
  82. package/lib/__tests__/utils.test.js.map +1 -0
  83. package/lib/app/Lifecycle.d.ts +14 -0
  84. package/lib/app/Lifecycle.d.ts.map +1 -0
  85. package/lib/app/Lifecycle.js +37 -0
  86. package/lib/app/Lifecycle.js.map +1 -0
  87. package/lib/app/index.d.ts +5 -0
  88. package/lib/app/index.d.ts.map +1 -0
  89. package/lib/app/index.js +5 -0
  90. package/lib/app/index.js.map +1 -0
  91. package/lib/data/Data.types.d.ts +20 -0
  92. package/lib/data/Data.types.d.ts.map +1 -0
  93. package/lib/data/Data.types.js +5 -0
  94. package/lib/data/Data.types.js.map +1 -0
  95. package/lib/data/executors/index.d.ts +6 -0
  96. package/lib/data/executors/index.d.ts.map +1 -0
  97. package/lib/data/executors/index.js +5 -0
  98. package/lib/data/executors/index.js.map +1 -0
  99. package/lib/data/index.d.ts +7 -0
  100. package/lib/data/index.d.ts.map +1 -0
  101. package/lib/data/index.js +5 -0
  102. package/lib/data/index.js.map +1 -0
  103. package/lib/data/powerAppsData.d.ts +10 -0
  104. package/lib/data/powerAppsData.d.ts.map +1 -0
  105. package/lib/data/powerAppsData.js +43 -0
  106. package/lib/data/powerAppsData.js.map +1 -0
  107. package/lib/index.d.ts +8 -0
  108. package/lib/index.d.ts.map +1 -0
  109. package/lib/index.js +8 -0
  110. package/lib/index.js.map +1 -0
  111. package/lib/internal/communication/CompatibleMessageReceiver.d.ts +12 -0
  112. package/lib/internal/communication/CompatibleMessageReceiver.d.ts.map +1 -0
  113. package/lib/internal/communication/CompatibleMessageReceiver.js +92 -0
  114. package/lib/internal/communication/CompatibleMessageReceiver.js.map +1 -0
  115. package/lib/internal/communication/IncompatibleMessageReceiver.d.ts +10 -0
  116. package/lib/internal/communication/IncompatibleMessageReceiver.d.ts.map +1 -0
  117. package/lib/internal/communication/IncompatibleMessageReceiver.js +13 -0
  118. package/lib/internal/communication/IncompatibleMessageReceiver.js.map +1 -0
  119. package/lib/internal/communication/MessageReceiver.Types.d.ts +18 -0
  120. package/lib/internal/communication/MessageReceiver.Types.d.ts.map +1 -0
  121. package/lib/internal/communication/MessageReceiver.Types.js +5 -0
  122. package/lib/internal/communication/MessageReceiver.Types.js.map +1 -0
  123. package/lib/internal/communication/SendMessage.d.ts +11 -0
  124. package/lib/internal/communication/SendMessage.d.ts.map +1 -0
  125. package/lib/internal/communication/SendMessage.js +32 -0
  126. package/lib/internal/communication/SendMessage.js.map +1 -0
  127. package/lib/internal/communication/SendMessageOperation.d.ts +15 -0
  128. package/lib/internal/communication/SendMessageOperation.d.ts.map +1 -0
  129. package/lib/internal/communication/SendMessageOperation.js +18 -0
  130. package/lib/internal/communication/SendMessageOperation.js.map +1 -0
  131. package/lib/internal/data/ConnectionUtils.d.ts +5 -0
  132. package/lib/internal/data/ConnectionUtils.d.ts.map +1 -0
  133. package/lib/internal/data/ConnectionUtils.js +20 -0
  134. package/lib/internal/data/ConnectionUtils.js.map +1 -0
  135. package/lib/internal/data/OperationExecutor.d.ts +18 -0
  136. package/lib/internal/data/OperationExecutor.d.ts.map +1 -0
  137. package/lib/internal/data/OperationExecutor.js +35 -0
  138. package/lib/internal/data/OperationExecutor.js.map +1 -0
  139. package/lib/internal/data/core/api/createRecord.d.ts +13 -0
  140. package/lib/internal/data/core/api/createRecord.d.ts.map +1 -0
  141. package/lib/internal/data/core/api/createRecord.js +15 -0
  142. package/lib/internal/data/core/api/createRecord.js.map +1 -0
  143. package/lib/internal/data/core/api/deleteRecord.d.ts +13 -0
  144. package/lib/internal/data/core/api/deleteRecord.d.ts.map +1 -0
  145. package/lib/internal/data/core/api/deleteRecord.js +15 -0
  146. package/lib/internal/data/core/api/deleteRecord.js.map +1 -0
  147. package/lib/internal/data/core/api/execute.d.ts +11 -0
  148. package/lib/internal/data/core/api/execute.d.ts.map +1 -0
  149. package/lib/internal/data/core/api/execute.js +13 -0
  150. package/lib/internal/data/core/api/execute.js.map +1 -0
  151. package/lib/internal/data/core/api/retrieveMultipleRecords.d.ts +13 -0
  152. package/lib/internal/data/core/api/retrieveMultipleRecords.d.ts.map +1 -0
  153. package/lib/internal/data/core/api/retrieveMultipleRecords.js +15 -0
  154. package/lib/internal/data/core/api/retrieveMultipleRecords.js.map +1 -0
  155. package/lib/internal/data/core/api/retrieveRecord.d.ts +13 -0
  156. package/lib/internal/data/core/api/retrieveRecord.d.ts.map +1 -0
  157. package/lib/internal/data/core/api/retrieveRecord.js +15 -0
  158. package/lib/internal/data/core/api/retrieveRecord.js.map +1 -0
  159. package/lib/internal/data/core/api/updateRecord.d.ts +14 -0
  160. package/lib/internal/data/core/api/updateRecord.d.ts.map +1 -0
  161. package/lib/internal/data/core/api/updateRecord.js +16 -0
  162. package/lib/internal/data/core/api/updateRecord.js.map +1 -0
  163. package/lib/internal/data/core/common/types.d.ts +230 -0
  164. package/lib/internal/data/core/common/types.d.ts.map +1 -0
  165. package/lib/internal/data/core/common/types.js +25 -0
  166. package/lib/internal/data/core/common/types.js.map +1 -0
  167. package/lib/internal/data/core/common/utils.d.ts +19 -0
  168. package/lib/internal/data/core/common/utils.d.ts.map +1 -0
  169. package/lib/internal/data/core/common/utils.js +47 -0
  170. package/lib/internal/data/core/common/utils.js.map +1 -0
  171. package/lib/internal/data/core/data/defaultOperationOrchestrator.d.ts +93 -0
  172. package/lib/internal/data/core/data/defaultOperationOrchestrator.d.ts.map +1 -0
  173. package/lib/internal/data/core/data/defaultOperationOrchestrator.js +249 -0
  174. package/lib/internal/data/core/data/defaultOperationOrchestrator.js.map +1 -0
  175. package/lib/internal/data/core/data/executors/connectorDataOperationExecutor.d.ts +160 -0
  176. package/lib/internal/data/core/data/executors/connectorDataOperationExecutor.d.ts.map +1 -0
  177. package/lib/internal/data/core/data/executors/connectorDataOperationExecutor.js +500 -0
  178. package/lib/internal/data/core/data/executors/connectorDataOperationExecutor.js.map +1 -0
  179. package/lib/internal/data/core/data/executors/dataverseDataOperationExecutor.d.ts +164 -0
  180. package/lib/internal/data/core/data/executors/dataverseDataOperationExecutor.d.ts.map +1 -0
  181. package/lib/internal/data/core/data/executors/dataverseDataOperationExecutor.js +508 -0
  182. package/lib/internal/data/core/data/executors/dataverseDataOperationExecutor.js.map +1 -0
  183. package/lib/internal/data/core/data/executors/index.d.ts +5 -0
  184. package/lib/internal/data/core/data/executors/index.d.ts.map +1 -0
  185. package/lib/internal/data/core/data/executors/index.js +5 -0
  186. package/lib/internal/data/core/data/executors/index.js.map +1 -0
  187. package/lib/internal/data/core/data/executors/mockDataOperationExecutor.d.ts +21 -0
  188. package/lib/internal/data/core/data/executors/mockDataOperationExecutor.d.ts.map +1 -0
  189. package/lib/internal/data/core/data/executors/mockDataOperationExecutor.js +75 -0
  190. package/lib/internal/data/core/data/executors/mockDataOperationExecutor.js.map +1 -0
  191. package/lib/internal/data/core/error/codes.d.ts +31 -0
  192. package/lib/internal/data/core/error/codes.d.ts.map +1 -0
  193. package/lib/internal/data/core/error/codes.js +39 -0
  194. package/lib/internal/data/core/error/codes.js.map +1 -0
  195. package/lib/internal/data/core/error/constants.d.ts +30 -0
  196. package/lib/internal/data/core/error/constants.d.ts.map +1 -0
  197. package/lib/internal/data/core/error/constants.js +33 -0
  198. package/lib/internal/data/core/error/constants.js.map +1 -0
  199. package/lib/internal/data/core/error/error.d.ts +8 -0
  200. package/lib/internal/data/core/error/error.d.ts.map +1 -0
  201. package/lib/internal/data/core/error/error.js +8 -0
  202. package/lib/internal/data/core/error/error.js.map +1 -0
  203. package/lib/internal/data/core/error/messages.d.ts +24 -0
  204. package/lib/internal/data/core/error/messages.d.ts.map +1 -0
  205. package/lib/internal/data/core/error/messages.js +55 -0
  206. package/lib/internal/data/core/error/messages.js.map +1 -0
  207. package/lib/internal/data/core/error/types.d.ts +30 -0
  208. package/lib/internal/data/core/error/types.d.ts.map +1 -0
  209. package/lib/internal/data/core/error/types.js +28 -0
  210. package/lib/internal/data/core/error/types.js.map +1 -0
  211. package/lib/internal/data/core/error/util.d.ts +24 -0
  212. package/lib/internal/data/core/error/util.d.ts.map +1 -0
  213. package/lib/internal/data/core/error/util.js +71 -0
  214. package/lib/internal/data/core/error/util.js.map +1 -0
  215. package/lib/internal/data/core/metadata/runtimeDataSourceService.d.ts +65 -0
  216. package/lib/internal/data/core/metadata/runtimeDataSourceService.d.ts.map +1 -0
  217. package/lib/internal/data/core/metadata/runtimeDataSourceService.js +101 -0
  218. package/lib/internal/data/core/metadata/runtimeDataSourceService.js.map +1 -0
  219. package/lib/internal/data/core/metadata/runtimeMetadataOperations.d.ts +17 -0
  220. package/lib/internal/data/core/metadata/runtimeMetadataOperations.d.ts.map +1 -0
  221. package/lib/internal/data/core/metadata/runtimeMetadataOperations.js +34 -0
  222. package/lib/internal/data/core/metadata/runtimeMetadataOperations.js.map +1 -0
  223. package/lib/internal/data/core/runtime/getRuntimeContext.d.ts +11 -0
  224. package/lib/internal/data/core/runtime/getRuntimeContext.d.ts.map +1 -0
  225. package/lib/internal/data/core/runtime/getRuntimeContext.js +16 -0
  226. package/lib/internal/data/core/runtime/getRuntimeContext.js.map +1 -0
  227. package/lib/internal/data/core/runtime/initializeRuntime.d.ts +13 -0
  228. package/lib/internal/data/core/runtime/initializeRuntime.d.ts.map +1 -0
  229. package/lib/internal/data/core/runtime/initializeRuntime.js +38 -0
  230. package/lib/internal/data/core/runtime/initializeRuntime.js.map +1 -0
  231. package/lib/internal/data/core/runtime/powerDataRuntime.d.ts +68 -0
  232. package/lib/internal/data/core/runtime/powerDataRuntime.d.ts.map +1 -0
  233. package/lib/internal/data/core/runtime/powerDataRuntime.js +116 -0
  234. package/lib/internal/data/core/runtime/powerDataRuntime.js.map +1 -0
  235. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.d.ts +20 -0
  236. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.d.ts.map +1 -0
  237. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.js +36 -0
  238. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.js.map +1 -0
  239. package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.d.ts +34 -0
  240. package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.d.ts.map +1 -0
  241. package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.js +45 -0
  242. package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.js.map +1 -0
  243. package/lib/internal/data/core/runtimeClient/runtimeClientProvider.d.ts +43 -0
  244. package/lib/internal/data/core/runtimeClient/runtimeClientProvider.d.ts.map +1 -0
  245. package/lib/internal/data/core/runtimeClient/runtimeClientProvider.js +87 -0
  246. package/lib/internal/data/core/runtimeClient/runtimeClientProvider.js.map +1 -0
  247. package/lib/internal/data/core/runtimeClient/runtimeDataClient.d.ts +112 -0
  248. package/lib/internal/data/core/runtimeClient/runtimeDataClient.d.ts.map +1 -0
  249. package/lib/internal/data/core/runtimeClient/runtimeDataClient.js +457 -0
  250. package/lib/internal/data/core/runtimeClient/runtimeDataClient.js.map +1 -0
  251. package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.d.ts +40 -0
  252. package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.d.ts.map +1 -0
  253. package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.js +94 -0
  254. package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.js.map +1 -0
  255. package/lib/internal/data/core/telemetry/log.d.ts +20 -0
  256. package/lib/internal/data/core/telemetry/log.d.ts.map +1 -0
  257. package/lib/internal/data/core/telemetry/log.js +85 -0
  258. package/lib/internal/data/core/telemetry/log.js.map +1 -0
  259. package/lib/internal/data/core/types/index.d.ts +164 -0
  260. package/lib/internal/data/core/types/index.d.ts.map +1 -0
  261. package/lib/internal/data/core/types/index.js +7 -0
  262. package/lib/internal/data/core/types/index.js.map +1 -0
  263. package/lib/internal/plugin/PluginCommon.d.ts +16 -0
  264. package/lib/internal/plugin/PluginCommon.d.ts.map +1 -0
  265. package/lib/internal/plugin/PluginCommon.js +116 -0
  266. package/lib/internal/plugin/PluginCommon.js.map +1 -0
  267. package/lib/internal/plugin/PluginMobile.d.ts +13 -0
  268. package/lib/internal/plugin/PluginMobile.d.ts.map +1 -0
  269. package/lib/internal/plugin/PluginMobile.js +109 -0
  270. package/lib/internal/plugin/PluginMobile.js.map +1 -0
  271. package/lib/telemetry/Logger.types.d.ts +8 -0
  272. package/lib/telemetry/Logger.types.d.ts.map +1 -0
  273. package/lib/telemetry/Logger.types.js +5 -0
  274. package/lib/telemetry/Logger.types.js.map +1 -0
  275. package/lib/telemetry/LoggerManager.d.ts +6 -0
  276. package/lib/telemetry/LoggerManager.d.ts.map +1 -0
  277. package/lib/telemetry/LoggerManager.js +28 -0
  278. package/lib/telemetry/LoggerManager.js.map +1 -0
  279. package/lib/telemetry/Metrics.types.d.ts +53 -0
  280. package/lib/telemetry/Metrics.types.d.ts.map +1 -0
  281. package/lib/telemetry/Metrics.types.js +5 -0
  282. package/lib/telemetry/Metrics.types.js.map +1 -0
  283. package/lib/telemetry/Performance.d.ts +5 -0
  284. package/lib/telemetry/Performance.d.ts.map +1 -0
  285. package/lib/telemetry/Performance.js +47 -0
  286. package/lib/telemetry/Performance.js.map +1 -0
  287. package/lib/telemetry/index.d.ts +5 -0
  288. package/lib/telemetry/index.d.ts.map +1 -0
  289. package/lib/telemetry/index.js +5 -0
  290. package/lib/telemetry/index.js.map +1 -0
  291. package/package.json +44 -0
@@ -0,0 +1,153 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import { afterEach, beforeEach, describe, it, jest } from '@jest/globals';
5
+ import { ErrorCodes, PowerDataRuntimeError } from '../internal/data/core/error/error';
6
+ import PowerDataSourcesInfoProvider from '../internal/data/core/runtime/powerDataSourcesInfoProvider';
7
+ import { mockSilentLogger } from './mocks/mockLog';
8
+ import { silenceConsole } from './mocks/silenceConsole';
9
+ /* eslint-disable @typescript-eslint/no-explicit-any */
10
+ // Mock the telemetry log module to avoid actual logging during tests
11
+ jest.mock('../internal/data/core/telemetry/log', () => mockSilentLogger);
12
+ describe('PowerDataSourcesInfoProvider', () => {
13
+ // Console silencing setup - silence all console output for this test file
14
+ // In this test we expect PowerDataRuntimeError to be thrown, but Log has not been initialized yet
15
+ // so we silence console output to avoid cluttering test results
16
+ let consoleMocks;
17
+ beforeEach(() => {
18
+ // Reset singleton instance to ensure test isolation
19
+ PowerDataSourcesInfoProvider.instance = null;
20
+ // Silence console output for cleaner test runs
21
+ consoleMocks = silenceConsole();
22
+ });
23
+ afterEach(() => {
24
+ jest.clearAllMocks();
25
+ // Reset singleton instance for clean state
26
+ PowerDataSourcesInfoProvider.instance = null;
27
+ // Restore console methods
28
+ consoleMocks.restore();
29
+ });
30
+ // Test fixtures and mocks
31
+ const mockDataSourcesInfo = {
32
+ abc: {
33
+ tableId: '123',
34
+ version: '1.0.0',
35
+ primaryKey: 'testKey',
36
+ dataSourceType: 'testType',
37
+ apis: {
38
+ createRecord: {
39
+ method: 'POST',
40
+ path: '/api/create',
41
+ parameters: [
42
+ {
43
+ name: 'record',
44
+ type: 'object',
45
+ required: true,
46
+ in: 'body',
47
+ },
48
+ ],
49
+ },
50
+ },
51
+ },
52
+ };
53
+ const secondMockDataSourcesInfo = {
54
+ def: {
55
+ tableId: '456',
56
+ version: '2.0.0',
57
+ primaryKey: 'testKey2',
58
+ dataSourceType: 'testType2',
59
+ apis: {
60
+ createRecord: {
61
+ method: 'POST',
62
+ path: '/api/update',
63
+ parameters: [
64
+ {
65
+ name: 'record',
66
+ type: 'object',
67
+ required: true,
68
+ in: 'body',
69
+ },
70
+ ],
71
+ },
72
+ },
73
+ },
74
+ };
75
+ describe('getInstance - Singleton Pattern', () => {
76
+ it('should create instance when called first time with dataSourcesInfo', async () => {
77
+ const instance = PowerDataSourcesInfoProvider.getInstance(mockDataSourcesInfo);
78
+ expect(instance).toBeInstanceOf(PowerDataSourcesInfoProvider);
79
+ await expect(instance.getDataSourcesInfo()).resolves.toEqual(mockDataSourcesInfo);
80
+ });
81
+ it('should return same instance on subsequent calls without dataSourcesInfo', () => {
82
+ const instance = PowerDataSourcesInfoProvider.getInstance(mockDataSourcesInfo);
83
+ const sameInstance = PowerDataSourcesInfoProvider.getInstance();
84
+ expect(sameInstance).toBe(instance);
85
+ });
86
+ it('should return same instance on subsequent calls with different dataSourcesInfo', async () => {
87
+ const instance = PowerDataSourcesInfoProvider.getInstance(mockDataSourcesInfo);
88
+ const instance2 = PowerDataSourcesInfoProvider.getInstance(secondMockDataSourcesInfo);
89
+ expect(instance2).toBe(instance);
90
+ await expect(instance.getDataSourcesInfo()).resolves.toEqual(mockDataSourcesInfo);
91
+ await expect(instance2.getDataSourcesInfo()).resolves.toEqual(mockDataSourcesInfo);
92
+ });
93
+ });
94
+ describe('getInstance - Error Handling', () => {
95
+ it('should throw PowerDataRuntimeError when called without dataSourcesInfo and no instance exists', () => {
96
+ expect(() => PowerDataSourcesInfoProvider.getInstance()).toThrow(PowerDataRuntimeError);
97
+ expect(() => PowerDataSourcesInfoProvider.getInstance()).toThrowError(expect.objectContaining({
98
+ code: ErrorCodes.DataSourcesInfoNotFound,
99
+ }));
100
+ });
101
+ it('should throw PowerDataRuntimeError when called with undefined dataSourcesInfo and no instance exists', () => {
102
+ expect(() => PowerDataSourcesInfoProvider.getInstance(undefined)).toThrow(PowerDataRuntimeError);
103
+ expect(() => PowerDataSourcesInfoProvider.getInstance(undefined)).toThrowError(expect.objectContaining({
104
+ code: ErrorCodes.DataSourcesInfoNotFound,
105
+ }));
106
+ });
107
+ it('should throw PowerDataRuntimeError when called with null dataSourcesInfo and no instance exists', () => {
108
+ expect(() => PowerDataSourcesInfoProvider.getInstance(null)).toThrow(PowerDataRuntimeError);
109
+ expect(() => PowerDataSourcesInfoProvider.getInstance(null)).toThrowError(expect.objectContaining({
110
+ code: ErrorCodes.DataSourcesInfoNotFound,
111
+ }));
112
+ });
113
+ });
114
+ describe('getDataSourcesInfo - Happy Path', () => {
115
+ it('should return the data sources info provided during initialization', async () => {
116
+ const instance = PowerDataSourcesInfoProvider.getInstance(mockDataSourcesInfo);
117
+ expect(await instance.getDataSourcesInfo()).toEqual(mockDataSourcesInfo);
118
+ });
119
+ it('should return consistent data sources info across multiple calls', async () => {
120
+ const instance = PowerDataSourcesInfoProvider.getInstance(mockDataSourcesInfo);
121
+ const firstCall = await instance.getDataSourcesInfo();
122
+ const secondCall = await instance.getDataSourcesInfo();
123
+ const thirdCall = await instance.getDataSourcesInfo();
124
+ expect(firstCall).toBe(secondCall);
125
+ expect(secondCall).toBe(thirdCall);
126
+ });
127
+ });
128
+ describe('Singleton State Management', () => {
129
+ it('should maintain singleton instance across different test scenarios', () => {
130
+ const instance1 = PowerDataSourcesInfoProvider.getInstance(mockDataSourcesInfo);
131
+ const instance2 = PowerDataSourcesInfoProvider.getInstance();
132
+ expect(instance2).toBe(instance1);
133
+ });
134
+ it('should preserve data sources info throughout instance lifecycle', async () => {
135
+ const instance = PowerDataSourcesInfoProvider.getInstance(mockDataSourcesInfo);
136
+ const originalData = await instance.getDataSourcesInfo();
137
+ await instance.getDataSourcesInfo();
138
+ await instance.getDataSourcesInfo();
139
+ const finalData = await instance.getDataSourcesInfo();
140
+ expect(finalData).toBe(originalData);
141
+ expect(finalData).toEqual(mockDataSourcesInfo);
142
+ });
143
+ it('should handle concurrent getDataSourcesInfo calls correctly', async () => {
144
+ const instance = PowerDataSourcesInfoProvider.getInstance(mockDataSourcesInfo);
145
+ const promises = Array.from({ length: 10 }, () => instance.getDataSourcesInfo());
146
+ const results = await Promise.all(promises);
147
+ expect(results.every((result) => result === results[0])).toBe(true);
148
+ expect(results[0]).toEqual(mockDataSourcesInfo);
149
+ });
150
+ });
151
+ });
152
+ /* eslint-enable @typescript-eslint/no-explicit-any */
153
+ //# sourceMappingURL=powerDataSourcesInfoProvider.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powerDataSourcesInfoProvider.test.js","sourceRoot":"","sources":["../../src/__tests__/powerDataSourcesInfoProvider.test.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=runtimeClientProvider.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtimeClientProvider.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/runtimeClientProvider.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,248 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import { afterEach, beforeEach, describe, it, jest } from '@jest/globals';
5
+ import { PowerDataRuntimeError } from '../internal/data/core/error/error';
6
+ import { RuntimeClientProvider } from '../internal/data/core/runtimeClient/runtimeClientProvider';
7
+ import { RuntimeDataClient } from '../internal/data/core/runtimeClient/runtimeDataClient';
8
+ import { RuntimeMetadataClient } from '../internal/data/core/runtimeClient/runtimeMetadataClient';
9
+ import { mockSilentLogger } from './mocks/mockLog';
10
+ import { silenceConsole } from './mocks/silenceConsole';
11
+ // Mock the runtime client modules to control their behavior in tests
12
+ jest.mock('../internal/data/core/runtimeClient/runtimeDataClient');
13
+ jest.mock('../internal/data/core/runtimeClient/runtimeMetadataClient');
14
+ // Mock the telemetry log module to avoid actual logging during tests
15
+ jest.mock('../internal/data/core/telemetry/log', () => mockSilentLogger);
16
+ describe('RuntimeClientProvider', () => {
17
+ // Test fixtures and mocks
18
+ let runtimeClientProvider;
19
+ let mockPowerOperationExecutor;
20
+ let mockDataClient;
21
+ let mockMetadataClient;
22
+ // Spies for static factory methods
23
+ let createDataClientSpy;
24
+ let createMetadataClientSpy;
25
+ // Console silencing setup - silence all console output for this test file
26
+ let consoleMocks;
27
+ // Setup before each test
28
+ beforeEach(() => {
29
+ // Create mocked power operation executor
30
+ mockPowerOperationExecutor = {
31
+ execute: jest.fn(),
32
+ };
33
+ // Create mocked runtime clients
34
+ mockDataClient = {
35
+ createDataAsync: jest.fn(),
36
+ updateDataAsync: jest.fn(),
37
+ deleteDataAsync: jest.fn(),
38
+ retrieveDataAsync: jest.fn(),
39
+ };
40
+ mockMetadataClient = {
41
+ getAppConnectionConfigsAsync: jest.fn(),
42
+ getAppDataSourceConfigsAsync: jest.fn(),
43
+ };
44
+ // Setup spies for static factory methods
45
+ createDataClientSpy = jest
46
+ .spyOn(RuntimeDataClient, 'createInstanceAsync')
47
+ .mockResolvedValue(mockDataClient);
48
+ createMetadataClientSpy = jest
49
+ .spyOn(RuntimeMetadataClient, 'createInstanceAsync')
50
+ .mockResolvedValue(mockMetadataClient);
51
+ // Create fresh instance for each test
52
+ runtimeClientProvider = new RuntimeClientProvider(mockPowerOperationExecutor);
53
+ consoleMocks = silenceConsole();
54
+ });
55
+ // Cleanup after each test
56
+ afterEach(() => {
57
+ jest.clearAllMocks();
58
+ createDataClientSpy.mockRestore();
59
+ createMetadataClientSpy.mockRestore();
60
+ consoleMocks.restore();
61
+ });
62
+ describe('Constructor', () => {
63
+ it('should initialize with provided power operation executor', async () => {
64
+ runtimeClientProvider = new RuntimeClientProvider(mockPowerOperationExecutor);
65
+ // Verify clients are not initialized until requested
66
+ expect(createDataClientSpy).toHaveBeenCalledTimes(0);
67
+ expect(createMetadataClientSpy).toHaveBeenCalledTimes(0);
68
+ });
69
+ });
70
+ describe('getDataClientAsync - Happy Path', () => {
71
+ it('should initialize data client only when getDataClientAsync is called the first time', async () => {
72
+ expect(createDataClientSpy).toHaveBeenCalledTimes(0);
73
+ await runtimeClientProvider.getDataClientAsync();
74
+ expect(createDataClientSpy).toHaveBeenCalledTimes(1);
75
+ });
76
+ it('should return cached data client on subsequent calls', async () => {
77
+ const client1 = await runtimeClientProvider.getDataClientAsync();
78
+ const client2 = await runtimeClientProvider.getDataClientAsync();
79
+ expect(client1).toBe(client2);
80
+ });
81
+ });
82
+ describe('getDataClientAsync - Error Handling', () => {
83
+ it('should throw DataClientInitFailed when createInstanceAsync fails with error', async () => {
84
+ createDataClientSpy.mockRejectedValue(new Error('Initialization failed'));
85
+ await expect(runtimeClientProvider.getDataClientAsync()).rejects.toThrow(PowerDataRuntimeError);
86
+ await expect(runtimeClientProvider.getDataClientAsync()).rejects.toThrow(expect.objectContaining({
87
+ name: 'PowerDataRuntimeError',
88
+ message: 'Failed to initialize PowerDataClient: Initialization failed',
89
+ }));
90
+ });
91
+ it('should throw when createInstanceAsync throwing synchronous errors', async () => {
92
+ // TODO: Test synchronous error handling
93
+ createDataClientSpy.mockImplementation(() => {
94
+ throw new Error('Synchronous error');
95
+ });
96
+ await expect(runtimeClientProvider.getDataClientAsync()).rejects.toThrow(PowerDataRuntimeError);
97
+ await expect(runtimeClientProvider.getDataClientAsync()).rejects.toThrow(expect.objectContaining({
98
+ name: 'PowerDataRuntimeError',
99
+ message: 'Failed to initialize PowerDataClient: Synchronous error',
100
+ }));
101
+ });
102
+ it('should throw DataClientNotInitialized when createInstanceAsync returns undefined', async () => {
103
+ createDataClientSpy.mockResolvedValue(undefined);
104
+ await expect(runtimeClientProvider.getDataClientAsync()).rejects.toThrow(PowerDataRuntimeError);
105
+ await expect(runtimeClientProvider.getDataClientAsync()).rejects.toThrow(expect.objectContaining({
106
+ name: 'PowerDataRuntimeError',
107
+ message: 'Failed to initialize PowerDataClient: PowerDataClient is not initialized',
108
+ }));
109
+ });
110
+ it('should throw DataClientNotInitialized when createInstanceAsync returns null', async () => {
111
+ createDataClientSpy.mockResolvedValue(null);
112
+ await expect(runtimeClientProvider.getDataClientAsync()).rejects.toThrow(PowerDataRuntimeError);
113
+ await expect(runtimeClientProvider.getDataClientAsync()).rejects.toThrow(expect.objectContaining({
114
+ name: 'PowerDataRuntimeError',
115
+ message: 'Failed to initialize PowerDataClient: PowerDataClient is not initialized',
116
+ }));
117
+ });
118
+ it('should handle async rejections and convert to PowerDataRuntimeError', async () => {
119
+ createDataClientSpy.mockImplementation(() => {
120
+ return Promise.reject(new Error('Async error'));
121
+ });
122
+ await expect(runtimeClientProvider.getDataClientAsync()).rejects.toThrow(PowerDataRuntimeError);
123
+ await expect(runtimeClientProvider.getDataClientAsync()).rejects.toThrow(expect.objectContaining({
124
+ name: 'PowerDataRuntimeError',
125
+ message: 'Failed to initialize PowerDataClient: Async error',
126
+ }));
127
+ });
128
+ });
129
+ describe('getMetadataClientAsync - Happy Path', () => {
130
+ it('should initialize metadata client only when getMetadataClientAsync is called the first time', async () => {
131
+ // TODO: Test that initialization doesn't happen until requested
132
+ expect(createMetadataClientSpy).toHaveBeenCalledTimes(0);
133
+ await runtimeClientProvider.getMetadataClientAsync();
134
+ expect(createMetadataClientSpy).toHaveBeenCalledTimes(1);
135
+ expect(createMetadataClientSpy).toHaveBeenCalledWith(mockPowerOperationExecutor);
136
+ });
137
+ it('should return cached metadata client on subsequent calls', async () => {
138
+ // TODO: Test lazy initialization caching behavior
139
+ const client1 = await runtimeClientProvider.getMetadataClientAsync();
140
+ const client2 = await runtimeClientProvider.getMetadataClientAsync();
141
+ expect(client1).toBe(client2);
142
+ });
143
+ });
144
+ describe('getMetadataClientAsync - Error Handling', () => {
145
+ it('should throw MetadataClientInitFailed when createInstanceAsync fails with error', async () => {
146
+ createMetadataClientSpy.mockRejectedValue(new Error('Initialization failed'));
147
+ await expect(runtimeClientProvider.getMetadataClientAsync()).rejects.toThrow(PowerDataRuntimeError);
148
+ await expect(runtimeClientProvider.getMetadataClientAsync()).rejects.toThrow(expect.objectContaining({
149
+ name: 'PowerDataRuntimeError',
150
+ message: 'Failed to initialize PowerMetadataClient: Initialization failed',
151
+ }));
152
+ });
153
+ it('should throw when createInstanceAsync throwing synchronous errors', async () => {
154
+ // TODO: Test synchronous error handling
155
+ createMetadataClientSpy.mockImplementation(() => {
156
+ throw new Error('Synchronous error');
157
+ });
158
+ await expect(runtimeClientProvider.getMetadataClientAsync()).rejects.toThrow(PowerDataRuntimeError);
159
+ await expect(runtimeClientProvider.getMetadataClientAsync()).rejects.toThrow(expect.objectContaining({
160
+ name: 'PowerDataRuntimeError',
161
+ message: 'Failed to initialize PowerMetadataClient: Synchronous error',
162
+ }));
163
+ });
164
+ it('should throw MetadataClientNotInitialized when createInstanceAsync returns undefined', async () => {
165
+ createMetadataClientSpy.mockResolvedValue(undefined);
166
+ await expect(runtimeClientProvider.getMetadataClientAsync()).rejects.toThrow(PowerDataRuntimeError);
167
+ await expect(runtimeClientProvider.getMetadataClientAsync()).rejects.toThrow(expect.objectContaining({
168
+ name: 'PowerDataRuntimeError',
169
+ message: 'Failed to initialize PowerMetadataClient: PowerMetadataClient is not initialized',
170
+ }));
171
+ });
172
+ it('should throw MetadataClientNotInitialized when createInstanceAsync returns null', async () => {
173
+ createMetadataClientSpy.mockResolvedValue(null);
174
+ await expect(runtimeClientProvider.getMetadataClientAsync()).rejects.toThrow(PowerDataRuntimeError);
175
+ await expect(runtimeClientProvider.getMetadataClientAsync()).rejects.toThrow(expect.objectContaining({
176
+ name: 'PowerDataRuntimeError',
177
+ message: 'Failed to initialize PowerMetadataClient: PowerMetadataClient is not initialized',
178
+ }));
179
+ });
180
+ it('should handle async rejections and convert to PowerDataRuntimeError', async () => {
181
+ createMetadataClientSpy.mockImplementation(() => {
182
+ return Promise.reject(new Error('Async error'));
183
+ });
184
+ await expect(runtimeClientProvider.getMetadataClientAsync()).rejects.toThrow(PowerDataRuntimeError);
185
+ await expect(runtimeClientProvider.getMetadataClientAsync()).rejects.toThrow(expect.objectContaining({
186
+ name: 'PowerDataRuntimeError',
187
+ message: 'Failed to initialize PowerMetadataClient: Async error',
188
+ }));
189
+ });
190
+ });
191
+ describe('reset() Method', () => {
192
+ it('should reset both clients to undefined', async () => {
193
+ // Initialize clients first
194
+ await runtimeClientProvider.getDataClientAsync();
195
+ await runtimeClientProvider.getMetadataClientAsync();
196
+ // Verify clients were created
197
+ expect(createDataClientSpy).toHaveBeenCalledTimes(1);
198
+ expect(createMetadataClientSpy).toHaveBeenCalledTimes(1);
199
+ // Reset the clients
200
+ runtimeClientProvider.reset();
201
+ // Verify that calling the getters again will create new instances
202
+ await runtimeClientProvider.getDataClientAsync();
203
+ await runtimeClientProvider.getMetadataClientAsync();
204
+ expect(createDataClientSpy).toHaveBeenCalledTimes(2);
205
+ expect(createMetadataClientSpy).toHaveBeenCalledTimes(2);
206
+ });
207
+ it('should allow re-initialization after reset', async () => {
208
+ // Initialize clients first
209
+ await runtimeClientProvider.getDataClientAsync();
210
+ await runtimeClientProvider.getMetadataClientAsync();
211
+ // Reset the clients
212
+ runtimeClientProvider.reset();
213
+ // Re-initialize clients
214
+ const newDataClient = await runtimeClientProvider.getDataClientAsync();
215
+ const newMetadataClient = await runtimeClientProvider.getMetadataClientAsync();
216
+ // Verify new instances are created
217
+ expect(newDataClient).toBeDefined();
218
+ expect(newMetadataClient).toBeDefined();
219
+ expect(createDataClientSpy).toHaveBeenCalledTimes(2);
220
+ expect(createMetadataClientSpy).toHaveBeenCalledTimes(2);
221
+ });
222
+ it('should reset even if clients were never initialized', () => {
223
+ // Verify clients are not initialized initially
224
+ expect(createDataClientSpy).toHaveBeenCalledTimes(0);
225
+ expect(createMetadataClientSpy).toHaveBeenCalledTimes(0);
226
+ // Reset the clients without prior initialization
227
+ runtimeClientProvider.reset();
228
+ // Verify reset doesn't cause any issues
229
+ expect(createDataClientSpy).toHaveBeenCalledTimes(0);
230
+ expect(createMetadataClientSpy).toHaveBeenCalledTimes(0);
231
+ });
232
+ });
233
+ describe('Concurrent Access Patterns', () => {
234
+ it('should handle concurrent calls to getDataClientAsync correctly', async () => {
235
+ // TODO: Test thread-safety and race conditions
236
+ const promises = Array.from({ length: 10 }, () => runtimeClientProvider.getDataClientAsync());
237
+ const results = await Promise.all(promises);
238
+ expect(results.every((client) => client === results[0])).toBe(true);
239
+ });
240
+ it('should handle concurrent calls to getMetadataClientAsync correctly', async () => {
241
+ // TODO: Test thread-safety and race conditions
242
+ const promises = Array.from({ length: 10 }, () => runtimeClientProvider.getMetadataClientAsync());
243
+ const results = await Promise.all(promises);
244
+ expect(results.every((client) => client === results[0])).toBe(true);
245
+ });
246
+ });
247
+ });
248
+ //# sourceMappingURL=runtimeClientProvider.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtimeClientProvider.test.js","sourceRoot":"","sources":["../../src/__tests__/runtimeClientProvider.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=runtimeDataClient.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtimeDataClient.spec.d.ts","sourceRoot":"","sources":["../../src/__tests__/runtimeDataClient.spec.ts"],"names":[],"mappings":""}