@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,53 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ /* eslint-disable @typescript-eslint/no-explicit-any */
5
+ /* eslint-disable no-console */
6
+ export const createMockLogModule = (options = {}) => {
7
+ const { silent = true } = options;
8
+ return {
9
+ Log: {
10
+ createInstance: jest.fn((...args) => { }),
11
+ resetInstance: jest.fn((...args) => {
12
+ if (!silent) {
13
+ console.log('[MockLog.resetInstance]', ...args);
14
+ }
15
+ }),
16
+ trackEvent: jest.fn((...args) => {
17
+ if (!silent) {
18
+ console.log('ℹ️ [MockLog.trackEvent]', ...args);
19
+ }
20
+ }),
21
+ trackException: jest.fn((...args) => {
22
+ if (!silent) {
23
+ console.log('🛑 [MockLog.trackException]', ...args);
24
+ }
25
+ }),
26
+ trackMetric: jest.fn((...args) => {
27
+ if (!silent) {
28
+ console.log('📊 [MockLog.trackMetric]', ...args);
29
+ }
30
+ }),
31
+ startScenario: jest.fn((...args) => {
32
+ if (!silent) {
33
+ console.log('🟢 [MockLog.startScenario]', ...args);
34
+ }
35
+ }),
36
+ endScenario: jest.fn((...args) => {
37
+ if (!silent) {
38
+ console.log('🏁 [MockLog.endScenario]', ...args);
39
+ }
40
+ }),
41
+ setDefaultProperties: jest.fn((...args) => {
42
+ if (!silent) {
43
+ console.log('[MockLog.setDefaultProperties]', ...args);
44
+ }
45
+ }),
46
+ },
47
+ };
48
+ };
49
+ // Default export (silent)
50
+ export const mockSilentLogger = createMockLogModule({ silent: true });
51
+ /* eslint-enable @typescript-eslint/no-explicit-any */
52
+ /* eslint-enable no-console */
53
+ //# sourceMappingURL=mockLog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockLog.js","sourceRoot":"","sources":["../../../src/__tests__/mocks/mockLog.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,uDAAuD;AACvD,+BAA+B;AAC/B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAgC,EAAE,EAAE,EAAE;IACxE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAElC,OAAO;QACL,GAAG,EAAE;YACH,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE,GAAE,CAAC,CAAC;YAC/C,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE;gBACxC,IAAI,CAAC,MAAM,EAAE;oBACX,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,GAAG,IAAI,CAAC,CAAC;iBACjD;YACH,CAAC,CAAC;YACF,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE;gBACrC,IAAI,CAAC,MAAM,EAAE;oBACX,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,GAAG,IAAI,CAAC,CAAC;iBACjD;YACH,CAAC,CAAC;YACF,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE;gBACzC,IAAI,CAAC,MAAM,EAAE;oBACX,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,GAAG,IAAI,CAAC,CAAC;iBACrD;YACH,CAAC,CAAC;YACF,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE;gBACtC,IAAI,CAAC,MAAM,EAAE;oBACX,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,GAAG,IAAI,CAAC,CAAC;iBAClD;YACH,CAAC,CAAC;YACF,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE;gBACxC,IAAI,CAAC,MAAM,EAAE;oBACX,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,GAAG,IAAI,CAAC,CAAC;iBACpD;YACH,CAAC,CAAC;YACF,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE;gBACtC,IAAI,CAAC,MAAM,EAAE;oBACX,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,GAAG,IAAI,CAAC,CAAC;iBAClD;YACH,CAAC,CAAC;YACF,oBAAoB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE;gBAC/C,IAAI,CAAC,MAAM,EAAE;oBACX,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,GAAG,IAAI,CAAC,CAAC;iBACxD;YACH,CAAC,CAAC;SACH;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,0BAA0B;AAC1B,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAEtE,sDAAsD;AACtD,8BAA8B"}
@@ -0,0 +1,76 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ export declare const mockMSTeamsResponse: {
5
+ success: boolean;
6
+ data: (ArrayBuffer | {
7
+ status: number;
8
+ headers: {
9
+ 'client-request-id': string;
10
+ 'content-encoding': string;
11
+ 'Content-Type': string;
12
+ Date: string;
13
+ 'odata-version': string;
14
+ 'Request-Id': string;
15
+ 'strict-transport-security': string;
16
+ 'timing-allow-origin': string;
17
+ vary: string;
18
+ 'x-ms-ags-diagnostic': string;
19
+ 'x-ms-apihub-cached-response': string;
20
+ 'x-ms-apihub-obo': string;
21
+ 'x-ms-au-caller-id': string;
22
+ 'x-ms-au-creator-id': string;
23
+ 'x-ms-client-app-id': string;
24
+ 'x-ms-client-environment-id': string;
25
+ 'x-ms-client-object-id': string;
26
+ 'x-ms-client-region': string;
27
+ 'x-ms-client-session-id': string;
28
+ 'x-ms-client-tenant-id': string;
29
+ 'x-ms-dlp-ef': string;
30
+ 'x-ms-dlp-gu': string;
31
+ 'x-ms-dlp-re': string;
32
+ 'x-ms-environment-id': string;
33
+ 'x-ms-flavor': string;
34
+ 'x-ms-mip-sl': string;
35
+ 'x-ms-tenant-id': string;
36
+ 'x-ms-user-agent': string;
37
+ };
38
+ responseType: string;
39
+ duration: number;
40
+ responseSize: number;
41
+ performanceInformation: {
42
+ startTime: number;
43
+ name: string;
44
+ redirectStart: number;
45
+ redirectEnd: number;
46
+ fetchStart: number;
47
+ domainLookupStart: number;
48
+ domainLookupEnd: number;
49
+ connectStart: number;
50
+ connectEnd: number;
51
+ secureConnectionStart: number;
52
+ requestStart: number;
53
+ responseStart: number;
54
+ responseEnd: number;
55
+ transferSize: number;
56
+ nextHopProtocol: string;
57
+ };
58
+ sendHttpPipelinePerf: {
59
+ sendHttpPipelinePerfTimestamps: {
60
+ SendHttpCore: {
61
+ pipelineStart: number;
62
+ responseReceived: number;
63
+ pipelineEnd: number;
64
+ };
65
+ AppHttpClientPluginHandler: {
66
+ pipelineStart: number;
67
+ responseReceived: number;
68
+ pipelineEnd: number;
69
+ };
70
+ };
71
+ transferSize: number;
72
+ clientRequestId: string;
73
+ };
74
+ })[];
75
+ };
76
+ //# sourceMappingURL=mockTeamsConnectorResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockTeamsConnectorResponse.d.ts","sourceRoot":"","sources":["../../../src/__tests__/mocks/mockTeamsConnectorResponse.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6E/B,CAAC"}
@@ -0,0 +1,81 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import { createMockArrayBuffer } from '../helpers/testHelpers';
5
+ export const mockMSTeamsResponse = {
6
+ success: true,
7
+ data: [
8
+ {
9
+ status: 200,
10
+ headers: {
11
+ 'client-request-id': 'bde8ffa9-e010-413a-bd9d-f0d96039f85b',
12
+ 'content-encoding': 'gzip',
13
+ 'Content-Type': 'application/json',
14
+ Date: 'Wed, 16 Jul 2025 17:10:23 GMT',
15
+ 'odata-version': '4.0',
16
+ 'Request-Id': 'bde8ffa9-e010-413a-bd9d-f0d96039f85b',
17
+ 'strict-transport-security': 'max-age=31536000',
18
+ 'timing-allow-origin': '*',
19
+ vary: 'Accept-Encoding',
20
+ 'x-ms-ags-diagnostic': '{"ServerInfo":{"DataCenter":"West US","Slice":"E","Ring":"4","ScaleUnit":"002","RoleInstance":"BY3PEPF00065EB2"}}',
21
+ 'x-ms-apihub-cached-response': 'true',
22
+ 'x-ms-apihub-obo': 'true',
23
+ 'x-ms-au-caller-id': 'e98928f0-2439-437d-9f0b-682b55a23053',
24
+ 'x-ms-au-creator-id': 'e98928f0-2439-437d-9f0b-682b55a23053',
25
+ 'x-ms-client-app-id': '/providers/Microsoft.PowerApps/apps/6e00c3f9-584a-44f7-a5a2-8d2c067ce2ed',
26
+ 'x-ms-client-environment-id': '/providers/Microsoft.PowerApps/environments/c9d64763-3dab-ed97-882b-f9347209b74c',
27
+ 'x-ms-client-object-id': 'e98928f0-2439-437d-9f0b-682b55a23053',
28
+ 'x-ms-client-region': 'tip1',
29
+ 'x-ms-client-session-id': '145ea95f-6a2c-40d5-acaf-ad0b8309712b',
30
+ 'x-ms-client-tenant-id': '91bee3d9-0c15-4f17-8624-c92bb8b36ead',
31
+ 'x-ms-dlp-ef': '-|-/-|-|-',
32
+ 'x-ms-dlp-gu': 'true|False',
33
+ 'x-ms-dlp-re': '-|-',
34
+ 'x-ms-environment-id': 'c9d64763-3dab-ed97-882b-f9347209b74c',
35
+ 'x-ms-flavor': 'Dogfood',
36
+ 'x-ms-mip-sl': '-|-|-|-',
37
+ 'x-ms-tenant-id': '91bee3d9-0c15-4f17-8624-c92bb8b36ead',
38
+ 'x-ms-user-agent': 'PowerApps/3.25072.2 (Web Player; AppName=6e00c3f9-584a-44f7-a5a2-8d2c067ce2ed)',
39
+ },
40
+ responseType: 'arraybuffer',
41
+ duration: 505.0999999642372,
42
+ responseSize: 4076,
43
+ performanceInformation: {
44
+ startTime: 58736090.80000001,
45
+ name: 'https://c9d64763-3dab-ed97-882b-f9347209b74c.09.common.tip1002.azure-apihub.net/invoke',
46
+ redirectStart: 0,
47
+ redirectEnd: 0,
48
+ fetchStart: 58736091.30000001,
49
+ domainLookupStart: 58736091.30000001,
50
+ domainLookupEnd: 58736091.30000001,
51
+ connectStart: 58736091.30000001,
52
+ connectEnd: 58736091.30000001,
53
+ secureConnectionStart: 58736091.30000001,
54
+ requestStart: 58736093.69999999,
55
+ responseStart: 58736590.100000024,
56
+ responseEnd: 58736591,
57
+ transferSize: 1116,
58
+ nextHopProtocol: 'h2',
59
+ },
60
+ sendHttpPipelinePerf: {
61
+ sendHttpPipelinePerfTimestamps: {
62
+ SendHttpCore: {
63
+ pipelineStart: 1752685823250,
64
+ responseReceived: 1752685823754,
65
+ pipelineEnd: 1752685823754,
66
+ },
67
+ AppHttpClientPluginHandler: {
68
+ pipelineStart: 1752685823249,
69
+ responseReceived: 1752685823756,
70
+ pipelineEnd: 1752685823756,
71
+ },
72
+ },
73
+ transferSize: 1116,
74
+ clientRequestId: 'fed77962-9d56-4057-8367-7809cf316139',
75
+ },
76
+ },
77
+ // Convert JSON object to ArrayBuffer to simulate actual HTTP response
78
+ createMockArrayBuffer({ randomKey: 'mockMSTeamsResponseData' }),
79
+ ],
80
+ };
81
+ //# sourceMappingURL=mockTeamsConnectorResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockTeamsConnectorResponse.js","sourceRoot":"","sources":["../../../src/__tests__/mocks/mockTeamsConnectorResponse.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,OAAO,EAAE,IAAI;IACb,IAAI,EAAE;QACJ;YACE,MAAM,EAAE,GAAG;YACX,OAAO,EAAE;gBACP,mBAAmB,EAAE,sCAAsC;gBAC3D,kBAAkB,EAAE,MAAM;gBAC1B,cAAc,EAAE,kBAAkB;gBAClC,IAAI,EAAE,+BAA+B;gBACrC,eAAe,EAAE,KAAK;gBACtB,YAAY,EAAE,sCAAsC;gBACpD,2BAA2B,EAAE,kBAAkB;gBAC/C,qBAAqB,EAAE,GAAG;gBAC1B,IAAI,EAAE,iBAAiB;gBACvB,qBAAqB,EACnB,mHAAmH;gBACrH,6BAA6B,EAAE,MAAM;gBACrC,iBAAiB,EAAE,MAAM;gBACzB,mBAAmB,EAAE,sCAAsC;gBAC3D,oBAAoB,EAAE,sCAAsC;gBAC5D,oBAAoB,EAAE,0EAA0E;gBAChG,4BAA4B,EAC1B,kFAAkF;gBACpF,uBAAuB,EAAE,sCAAsC;gBAC/D,oBAAoB,EAAE,MAAM;gBAC5B,wBAAwB,EAAE,sCAAsC;gBAChE,uBAAuB,EAAE,sCAAsC;gBAC/D,aAAa,EAAE,WAAW;gBAC1B,aAAa,EAAE,YAAY;gBAC3B,aAAa,EAAE,KAAK;gBACpB,qBAAqB,EAAE,sCAAsC;gBAC7D,aAAa,EAAE,SAAS;gBACxB,aAAa,EAAE,SAAS;gBACxB,gBAAgB,EAAE,sCAAsC;gBACxD,iBAAiB,EAAE,gFAAgF;aACpG;YACD,YAAY,EAAE,aAAa;YAC3B,QAAQ,EAAE,iBAAiB;YAC3B,YAAY,EAAE,IAAI;YAClB,sBAAsB,EAAE;gBACtB,SAAS,EAAE,iBAAiB;gBAC5B,IAAI,EAAE,wFAAwF;gBAC9F,aAAa,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,UAAU,EAAE,iBAAiB;gBAC7B,iBAAiB,EAAE,iBAAiB;gBACpC,eAAe,EAAE,iBAAiB;gBAClC,YAAY,EAAE,iBAAiB;gBAC/B,UAAU,EAAE,iBAAiB;gBAC7B,qBAAqB,EAAE,iBAAiB;gBACxC,YAAY,EAAE,iBAAiB;gBAC/B,aAAa,EAAE,kBAAkB;gBACjC,WAAW,EAAE,QAAQ;gBACrB,YAAY,EAAE,IAAI;gBAClB,eAAe,EAAE,IAAI;aACtB;YACD,oBAAoB,EAAE;gBACpB,8BAA8B,EAAE;oBAC9B,YAAY,EAAE;wBACZ,aAAa,EAAE,aAAa;wBAC5B,gBAAgB,EAAE,aAAa;wBAC/B,WAAW,EAAE,aAAa;qBAC3B;oBACD,0BAA0B,EAAE;wBAC1B,aAAa,EAAE,aAAa;wBAC5B,gBAAgB,EAAE,aAAa;wBAC/B,WAAW,EAAE,aAAa;qBAC3B;iBACF;gBACD,YAAY,EAAE,IAAI;gBAClB,eAAe,EAAE,sCAAsC;aACxD;SACF;QACD,sEAAsE;QACtE,qBAAqB,CAAC,EAAE,SAAS,EAAE,yBAAyB,EAAE,CAAC;KAChE;CACF,CAAC"}
@@ -0,0 +1,37 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ /// <reference types="jest" />
5
+ /**
6
+ * Utility for silencing console output in specific test files
7
+ */
8
+ export interface ConsoleMocks {
9
+ log: jest.MockedFunction<typeof console.log>;
10
+ error: jest.MockedFunction<typeof console.error>;
11
+ warn: jest.MockedFunction<typeof console.warn>;
12
+ info: jest.MockedFunction<typeof console.info>;
13
+ }
14
+ export interface OriginalConsoleMethods {
15
+ log: typeof console.log;
16
+ error: typeof console.error;
17
+ warn: typeof console.warn;
18
+ info: typeof console.info;
19
+ }
20
+ /**
21
+ * Silences console output for the current test file
22
+ * Call this in beforeEach or beforeAll
23
+ */
24
+ export declare function silenceConsole(): {
25
+ mocks: ConsoleMocks;
26
+ restore: () => void;
27
+ };
28
+ /**
29
+ * Higher-order function that silences console for specific methods only
30
+ * example usage:
31
+ * const { mocks, restore } = silenceSpecificConsole(['error', 'warn']);
32
+ */
33
+ export declare function silenceSpecificConsole(methods: Array<'log' | 'error' | 'warn' | 'info'>): {
34
+ mocks: Partial<ConsoleMocks>;
35
+ restore: () => void;
36
+ };
37
+ //# sourceMappingURL=silenceConsole.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"silenceConsole.d.ts","sourceRoot":"","sources":["../../../src/__tests__/mocks/silenceConsole.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAIH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC;IACxB,KAAK,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC;IAC5B,IAAI,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CA6BA;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,GAAG;IACzF,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAmBA"}
@@ -0,0 +1,58 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ /**
5
+ * Silences console output for the current test file
6
+ * Call this in beforeEach or beforeAll
7
+ */
8
+ export function silenceConsole() {
9
+ const original = {
10
+ log: console.log,
11
+ error: console.error,
12
+ warn: console.warn,
13
+ info: console.info,
14
+ };
15
+ const mocks = {
16
+ log: jest.fn(),
17
+ error: jest.fn(),
18
+ warn: jest.fn(),
19
+ info: jest.fn(),
20
+ };
21
+ // Replace console methods with mocks
22
+ console.log = mocks.log;
23
+ console.error = mocks.error;
24
+ console.warn = mocks.warn;
25
+ console.info = mocks.info;
26
+ const restore = () => {
27
+ console.log = original.log;
28
+ console.error = original.error;
29
+ console.warn = original.warn;
30
+ console.info = original.info;
31
+ };
32
+ return { mocks, restore };
33
+ }
34
+ /**
35
+ * Higher-order function that silences console for specific methods only
36
+ * example usage:
37
+ * const { mocks, restore } = silenceSpecificConsole(['error', 'warn']);
38
+ */
39
+ export function silenceSpecificConsole(methods) {
40
+ const original = {};
41
+ const mocks = {};
42
+ methods.forEach((method) => {
43
+ original[method] = console[method];
44
+ mocks[method] = jest.fn();
45
+ console[method] = mocks[method];
46
+ });
47
+ const restore = () => {
48
+ methods.forEach((method) => {
49
+ if (original[method]) {
50
+ console[method] = original[method];
51
+ }
52
+ });
53
+ };
54
+ return { mocks, restore };
55
+ }
56
+ /* eslint-enable no-console */
57
+ /* eslint-enable @typescript-eslint/no-explicit-any */
58
+ //# sourceMappingURL=silenceConsole.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"silenceConsole.js","sourceRoot":"","sources":["../../../src/__tests__/mocks/silenceConsole.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqBH;;;GAGG;AACH,MAAM,UAAU,cAAc;IAI5B,MAAM,QAAQ,GAA2B;QACvC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC;IAEF,MAAM,KAAK,GAAiB;QAC1B,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;QACd,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;KAChB,CAAC;IAEF,qCAAqC;IACrC,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACxB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC5B,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IAC1B,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IAE1B,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;QAC3B,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC/B,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC7B,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC/B,CAAC,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAiD;IAItF,MAAM,QAAQ,GAAoC,EAAE,CAAC;IACrD,MAAM,KAAK,GAA0B,EAAE,CAAC;IAExC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACzB,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,OAAe,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACzB,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACnB,OAAe,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;aAC7C;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAED,8BAA8B;AAC9B,sDAAsD"}
@@ -0,0 +1,5 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=powerDataRuntimeInstance.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powerDataRuntimeInstance.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/powerDataRuntimeInstance.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,179 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import { afterEach, beforeEach, describe, it, jest } from '@jest/globals';
5
+ import { getPowerDataRuntime, resetPowerDataRuntimeInstance, } from '../internal/data/core/runtime/powerDataRuntimeInstance';
6
+ import { Log } from '../internal/data/core/telemetry/log';
7
+ // Mock Log.resetInstance
8
+ jest.mock('../internal/data/core/telemetry/log', () => ({
9
+ Log: {
10
+ resetInstance: jest.fn(),
11
+ },
12
+ }));
13
+ jest.mock('../internal/data/core/runtime/powerDataRuntime', () => {
14
+ return {
15
+ PowerDataRuntime: jest.fn().mockImplementation(() => {
16
+ return {
17
+ _clientProvider: {},
18
+ _dataSourceService: {},
19
+ _xrm: {},
20
+ _isInitialized: true,
21
+ };
22
+ }),
23
+ };
24
+ });
25
+ describe('powerDataRuntimeInstance', () => {
26
+ let mockPowerDataSourcesInfoProvider;
27
+ let mockPowerOperationExecutor;
28
+ let mockXrmContext;
29
+ beforeEach(() => {
30
+ // Setup mock objects before each test
31
+ mockPowerDataSourcesInfoProvider = {
32
+ getDataSourcesInfo: jest.fn(),
33
+ };
34
+ mockPowerOperationExecutor = {
35
+ execute: jest
36
+ .fn()
37
+ .mockImplementation(() => Promise.resolve({ success: true, data: null })),
38
+ };
39
+ // Configure mock return values after creation
40
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
+ mockPowerDataSourcesInfoProvider.getDataSourcesInfo.mockResolvedValue({});
42
+ mockXrmContext = {
43
+ context: {
44
+ getClientUrl: jest.fn().mockReturnValue('https://test.dynamics.com'),
45
+ getVersion: jest.fn().mockReturnValue('9.0'),
46
+ },
47
+ WebApi: {
48
+ createRecord: jest.fn(),
49
+ updateRecord: jest.fn(),
50
+ deleteRecord: jest.fn(),
51
+ retrieveRecord: jest.fn(),
52
+ retrieveMultipleRecords: jest.fn(),
53
+ execute: jest.fn(),
54
+ },
55
+ };
56
+ jest.clearAllMocks();
57
+ });
58
+ afterEach(() => {
59
+ // Reset singleton instance to ensure test isolation
60
+ resetPowerDataRuntimeInstance();
61
+ jest.clearAllMocks();
62
+ });
63
+ describe('getPowerDataRuntime', () => {
64
+ describe('when called for the first time', () => {
65
+ it('should create a new PowerDataRuntime instance with required parameters', () => {
66
+ // Test that a new instance is created when none exists
67
+ // Verify PowerDataRuntime constructor is called with correct parameters
68
+ // Assert that the returned instance is the created one
69
+ const result = getPowerDataRuntime(mockPowerDataSourcesInfoProvider, mockPowerOperationExecutor, mockXrmContext);
70
+ expect(result).toBeDefined();
71
+ });
72
+ it('should create instance with default xrm context when xrm parameter is not provided', () => {
73
+ // Test that default xrm context ({ WebApi: {} }) is used when xrm is undefined
74
+ // Verify PowerDataRuntime constructor receives default xrm object
75
+ const result = getPowerDataRuntime(mockPowerDataSourcesInfoProvider, mockPowerOperationExecutor);
76
+ expect(result).toBeDefined();
77
+ });
78
+ });
79
+ describe('when called multiple times', () => {
80
+ it('should return the same singleton instance on subsequent calls', () => {
81
+ // Test singleton behavior - same instance returned on multiple calls
82
+ // Verify PowerDataRuntime constructor is only called once
83
+ // Assert that both calls return the same instance reference
84
+ const firstCall = getPowerDataRuntime(mockPowerDataSourcesInfoProvider, mockPowerOperationExecutor);
85
+ const secondCall = getPowerDataRuntime(mockPowerDataSourcesInfoProvider, mockPowerOperationExecutor);
86
+ expect(firstCall).toBe(secondCall);
87
+ });
88
+ it('should ignore different parameters on subsequent calls and return existing instance', () => {
89
+ // Test that passing different parameters on second call doesn't create new instance
90
+ // Verify that the original instance is returned regardless of new parameters
91
+ const firstCall = getPowerDataRuntime(mockPowerDataSourcesInfoProvider, mockPowerOperationExecutor);
92
+ const differentProvider = {
93
+ getDataSourcesInfo: jest.fn().mockImplementation(() => Promise.resolve({ different: true })),
94
+ };
95
+ const secondCall = getPowerDataRuntime(differentProvider, mockPowerOperationExecutor, mockXrmContext);
96
+ expect(firstCall).toBe(secondCall);
97
+ });
98
+ });
99
+ describe('parameter validation', () => {
100
+ it('should handle null powerDataSourcesInfoProvider parameter', () => {
101
+ // Test behavior when powerDataSourcesInfoProvider is null
102
+ // Verify appropriate handling or error throwing
103
+ expect(() => {
104
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
105
+ getPowerDataRuntime(null, mockPowerOperationExecutor);
106
+ }).not.toThrow();
107
+ });
108
+ it('should handle null powerOperationExecutor parameter', () => {
109
+ // Test behavior when powerOperationExecutor is null
110
+ // Verify appropriate handling or error throwing
111
+ expect(() => {
112
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
113
+ getPowerDataRuntime(mockPowerDataSourcesInfoProvider, null);
114
+ }).not.toThrow();
115
+ });
116
+ });
117
+ });
118
+ describe('resetPowerDataRuntimeInstance', () => {
119
+ it('should reset the Log instance', () => {
120
+ // Test that Log.resetInstance() is called when resetting
121
+ // Verify Log singleton is also reset for clean state
122
+ const mockLogReset = jest.spyOn(Log, 'resetInstance');
123
+ resetPowerDataRuntimeInstance();
124
+ expect(mockLogReset).toHaveBeenCalledTimes(1);
125
+ mockLogReset.mockRestore();
126
+ });
127
+ it('should allow creating new instance after reset', () => {
128
+ // Test complete reset workflow
129
+ // Create instance -> reset -> create new instance
130
+ // Verify new instance is different from the original
131
+ const firstInstance = getPowerDataRuntime(mockPowerDataSourcesInfoProvider, mockPowerOperationExecutor);
132
+ resetPowerDataRuntimeInstance();
133
+ const secondInstance = getPowerDataRuntime(mockPowerDataSourcesInfoProvider, mockPowerOperationExecutor);
134
+ expect(firstInstance).not.toBe(secondInstance);
135
+ });
136
+ });
137
+ describe('integration scenarios', () => {
138
+ it('should handle multiple reset and create cycles', () => {
139
+ // Test multiple cycles of create -> reset -> create
140
+ // Verify each cycle produces clean instances
141
+ const instances = [];
142
+ for (let i = 0; i < 3; i++) {
143
+ const instance = getPowerDataRuntime(mockPowerDataSourcesInfoProvider, mockPowerOperationExecutor);
144
+ instances.push(instance);
145
+ resetPowerDataRuntimeInstance();
146
+ }
147
+ // Verify all instances are different
148
+ expect(instances[0]).not.toBe(instances[1]);
149
+ expect(instances[1]).not.toBe(instances[2]);
150
+ expect(instances[0]).not.toBe(instances[2]);
151
+ });
152
+ it('should maintain singleton behavior across async operations', async () => {
153
+ // Test singleton behavior in concurrent/async scenarios
154
+ // Verify thread safety and consistency
155
+ const promises = Array.from({ length: 5 }, () => Promise.resolve().then(() => getPowerDataRuntime(mockPowerDataSourcesInfoProvider, mockPowerOperationExecutor)));
156
+ const instances = await Promise.all(promises);
157
+ // All instances should be the same reference
158
+ instances.forEach((instance, index) => {
159
+ if (index > 0) {
160
+ expect(instance).toBe(instances[0]);
161
+ }
162
+ });
163
+ });
164
+ });
165
+ describe('error handling', () => {
166
+ it('should handle Log.resetInstance throwing an error during reset', () => {
167
+ // Test behavior when Log.resetInstance fails
168
+ // Verify error handling and partial reset scenarios
169
+ const mockLogReset = jest.spyOn(Log, 'resetInstance').mockImplementation(() => {
170
+ throw new Error('Log reset failed');
171
+ });
172
+ expect(() => {
173
+ resetPowerDataRuntimeInstance();
174
+ }).toThrow('Log reset failed');
175
+ mockLogReset.mockRestore();
176
+ });
177
+ });
178
+ });
179
+ //# sourceMappingURL=powerDataRuntimeInstance.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powerDataRuntimeInstance.test.js","sourceRoot":"","sources":["../../src/__tests__/powerDataRuntimeInstance.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=powerDataSourcesInfoProvider.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powerDataSourcesInfoProvider.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/powerDataSourcesInfoProvider.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}