@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.
- package/LICENSE +153 -0
- package/README.md +43 -0
- package/lib/__tests__/connectorDataOperation.spec.d.ts +5 -0
- package/lib/__tests__/connectorDataOperation.spec.d.ts.map +1 -0
- package/lib/__tests__/connectorDataOperation.spec.js +509 -0
- package/lib/__tests__/connectorDataOperation.spec.js.map +1 -0
- package/lib/__tests__/dataverseDataOperation.spec.d.ts +5 -0
- package/lib/__tests__/dataverseDataOperation.spec.d.ts.map +1 -0
- package/lib/__tests__/dataverseDataOperation.spec.js +349 -0
- package/lib/__tests__/dataverseDataOperation.spec.js.map +1 -0
- package/lib/__tests__/helpers/testHelpers.d.ts +27 -0
- package/lib/__tests__/helpers/testHelpers.d.ts.map +1 -0
- package/lib/__tests__/helpers/testHelpers.js +67 -0
- package/lib/__tests__/helpers/testHelpers.js.map +1 -0
- package/lib/__tests__/index.spec.d.ts +5 -0
- package/lib/__tests__/index.spec.d.ts.map +1 -0
- package/lib/__tests__/index.spec.js +10 -0
- package/lib/__tests__/index.spec.js.map +1 -0
- package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.d.ts +17 -0
- package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.d.ts.map +1 -0
- package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.js +35 -0
- package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.js.map +1 -0
- package/lib/__tests__/mocks/mockLog.d.ts +31 -0
- package/lib/__tests__/mocks/mockLog.d.ts.map +1 -0
- package/lib/__tests__/mocks/mockLog.js +53 -0
- package/lib/__tests__/mocks/mockLog.js.map +1 -0
- package/lib/__tests__/mocks/mockTeamsConnectorResponse.d.ts +76 -0
- package/lib/__tests__/mocks/mockTeamsConnectorResponse.d.ts.map +1 -0
- package/lib/__tests__/mocks/mockTeamsConnectorResponse.js +81 -0
- package/lib/__tests__/mocks/mockTeamsConnectorResponse.js.map +1 -0
- package/lib/__tests__/mocks/silenceConsole.d.ts +37 -0
- package/lib/__tests__/mocks/silenceConsole.d.ts.map +1 -0
- package/lib/__tests__/mocks/silenceConsole.js +58 -0
- package/lib/__tests__/mocks/silenceConsole.js.map +1 -0
- package/lib/__tests__/powerDataRuntimeInstance.test.d.ts +5 -0
- package/lib/__tests__/powerDataRuntimeInstance.test.d.ts.map +1 -0
- package/lib/__tests__/powerDataRuntimeInstance.test.js +179 -0
- package/lib/__tests__/powerDataRuntimeInstance.test.js.map +1 -0
- package/lib/__tests__/powerDataSourcesInfoProvider.test.d.ts +5 -0
- package/lib/__tests__/powerDataSourcesInfoProvider.test.d.ts.map +1 -0
- package/lib/__tests__/powerDataSourcesInfoProvider.test.js +153 -0
- package/lib/__tests__/powerDataSourcesInfoProvider.test.js.map +1 -0
- package/lib/__tests__/runtimeClientProvider.test.d.ts +5 -0
- package/lib/__tests__/runtimeClientProvider.test.d.ts.map +1 -0
- package/lib/__tests__/runtimeClientProvider.test.js +248 -0
- package/lib/__tests__/runtimeClientProvider.test.js.map +1 -0
- package/lib/__tests__/runtimeDataClient.spec.d.ts +2 -0
- package/lib/__tests__/runtimeDataClient.spec.d.ts.map +1 -0
- package/lib/__tests__/runtimeDataClient.spec.js +351 -0
- package/lib/__tests__/runtimeDataClient.spec.js.map +1 -0
- package/lib/__tests__/runtimeDataClient.test.d.ts +2 -0
- package/lib/__tests__/runtimeDataClient.test.d.ts.map +1 -0
- package/lib/__tests__/runtimeDataClient.test.js +351 -0
- package/lib/__tests__/runtimeDataClient.test.js.map +1 -0
- package/lib/__tests__/runtimeDataOperation.test.d.ts +5 -0
- package/lib/__tests__/runtimeDataOperation.test.d.ts.map +1 -0
- package/lib/__tests__/runtimeDataOperation.test.js +234 -0
- package/lib/__tests__/runtimeDataOperation.test.js.map +1 -0
- package/lib/__tests__/runtimeMetadataClient.test.d.ts +5 -0
- package/lib/__tests__/runtimeMetadataClient.test.d.ts.map +1 -0
- package/lib/__tests__/runtimeMetadataClient.test.js +271 -0
- package/lib/__tests__/runtimeMetadataClient.test.js.map +1 -0
- package/lib/__tests__/runtimeMetadataOperations.test.d.ts +5 -0
- package/lib/__tests__/runtimeMetadataOperations.test.d.ts.map +1 -0
- package/lib/__tests__/runtimeMetadataOperations.test.js +286 -0
- package/lib/__tests__/runtimeMetadataOperations.test.js.map +1 -0
- package/lib/__tests__/serviceSchemaModelSnapshot.test.d.ts +2 -0
- package/lib/__tests__/serviceSchemaModelSnapshot.test.d.ts.map +1 -0
- package/lib/__tests__/serviceSchemaModelSnapshot.test.js +98 -0
- package/lib/__tests__/serviceSchemaModelSnapshot.test.js.map +1 -0
- package/lib/__tests__/types.spec.d.ts +5 -0
- package/lib/__tests__/types.spec.d.ts.map +1 -0
- package/lib/__tests__/types.spec.js +104 -0
- package/lib/__tests__/types.spec.js.map +1 -0
- package/lib/__tests__/utils.test.d.ts +5 -0
- package/lib/__tests__/utils.test.d.ts.map +1 -0
- package/lib/__tests__/utils.test.js +33 -0
- package/lib/__tests__/utils.test.js.map +1 -0
- package/lib/app/Lifecycle.d.ts +9 -0
- package/lib/app/Lifecycle.d.ts.map +1 -0
- package/lib/app/Lifecycle.js +36 -0
- package/lib/app/Lifecycle.js.map +1 -0
- package/lib/app/index.d.ts +5 -0
- package/lib/app/index.d.ts.map +1 -0
- package/lib/app/index.js +5 -0
- package/lib/app/index.js.map +1 -0
- package/lib/data/Data.types.d.ts +20 -0
- package/lib/data/Data.types.d.ts.map +1 -0
- package/lib/data/Data.types.js +5 -0
- package/lib/data/Data.types.js.map +1 -0
- package/lib/data/index.d.ts +7 -0
- package/lib/data/index.d.ts.map +1 -0
- package/lib/data/index.js +5 -0
- package/lib/data/index.js.map +1 -0
- package/lib/data/powerAppsData.d.ts +8 -0
- package/lib/data/powerAppsData.d.ts.map +1 -0
- package/lib/data/powerAppsData.js +38 -0
- package/lib/data/powerAppsData.js.map +1 -0
- package/lib/index.d.ts +8 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +8 -0
- package/lib/index.js.map +1 -0
- package/lib/internal/communication/CompatibleMessageReceiver.d.ts +12 -0
- package/lib/internal/communication/CompatibleMessageReceiver.d.ts.map +1 -0
- package/lib/internal/communication/CompatibleMessageReceiver.js +92 -0
- package/lib/internal/communication/CompatibleMessageReceiver.js.map +1 -0
- package/lib/internal/communication/IncompatibleMessageReceiver.d.ts +10 -0
- package/lib/internal/communication/IncompatibleMessageReceiver.d.ts.map +1 -0
- package/lib/internal/communication/IncompatibleMessageReceiver.js +13 -0
- package/lib/internal/communication/IncompatibleMessageReceiver.js.map +1 -0
- package/lib/internal/communication/MessageReceiver.Types.d.ts +18 -0
- package/lib/internal/communication/MessageReceiver.Types.d.ts.map +1 -0
- package/lib/internal/communication/MessageReceiver.Types.js +5 -0
- package/lib/internal/communication/MessageReceiver.Types.js.map +1 -0
- package/lib/internal/communication/SendMessage.d.ts +11 -0
- package/lib/internal/communication/SendMessage.d.ts.map +1 -0
- package/lib/internal/communication/SendMessage.js +32 -0
- package/lib/internal/communication/SendMessage.js.map +1 -0
- package/lib/internal/communication/SendMessageOperation.d.ts +15 -0
- package/lib/internal/communication/SendMessageOperation.d.ts.map +1 -0
- package/lib/internal/communication/SendMessageOperation.js +18 -0
- package/lib/internal/communication/SendMessageOperation.js.map +1 -0
- package/lib/internal/data/ConnectionUtils.d.ts +5 -0
- package/lib/internal/data/ConnectionUtils.d.ts.map +1 -0
- package/lib/internal/data/ConnectionUtils.js +20 -0
- package/lib/internal/data/ConnectionUtils.js.map +1 -0
- package/lib/internal/data/OperationExecutor.d.ts +18 -0
- package/lib/internal/data/OperationExecutor.d.ts.map +1 -0
- package/lib/internal/data/OperationExecutor.js +35 -0
- package/lib/internal/data/OperationExecutor.js.map +1 -0
- package/lib/internal/data/core/api/createRecord.d.ts +13 -0
- package/lib/internal/data/core/api/createRecord.d.ts.map +1 -0
- package/lib/internal/data/core/api/createRecord.js +15 -0
- package/lib/internal/data/core/api/createRecord.js.map +1 -0
- package/lib/internal/data/core/api/deleteRecord.d.ts +13 -0
- package/lib/internal/data/core/api/deleteRecord.d.ts.map +1 -0
- package/lib/internal/data/core/api/deleteRecord.js +15 -0
- package/lib/internal/data/core/api/deleteRecord.js.map +1 -0
- package/lib/internal/data/core/api/execute.d.ts +11 -0
- package/lib/internal/data/core/api/execute.d.ts.map +1 -0
- package/lib/internal/data/core/api/execute.js +13 -0
- package/lib/internal/data/core/api/execute.js.map +1 -0
- package/lib/internal/data/core/api/retrieveMultipleRecords.d.ts +13 -0
- package/lib/internal/data/core/api/retrieveMultipleRecords.d.ts.map +1 -0
- package/lib/internal/data/core/api/retrieveMultipleRecords.js +15 -0
- package/lib/internal/data/core/api/retrieveMultipleRecords.js.map +1 -0
- package/lib/internal/data/core/api/retrieveRecord.d.ts +13 -0
- package/lib/internal/data/core/api/retrieveRecord.d.ts.map +1 -0
- package/lib/internal/data/core/api/retrieveRecord.js +15 -0
- package/lib/internal/data/core/api/retrieveRecord.js.map +1 -0
- package/lib/internal/data/core/api/updateRecord.d.ts +14 -0
- package/lib/internal/data/core/api/updateRecord.d.ts.map +1 -0
- package/lib/internal/data/core/api/updateRecord.js +16 -0
- package/lib/internal/data/core/api/updateRecord.js.map +1 -0
- package/lib/internal/data/core/common/types.d.ts +230 -0
- package/lib/internal/data/core/common/types.d.ts.map +1 -0
- package/lib/internal/data/core/common/types.js +25 -0
- package/lib/internal/data/core/common/types.js.map +1 -0
- package/lib/internal/data/core/common/utils.d.ts +19 -0
- package/lib/internal/data/core/common/utils.d.ts.map +1 -0
- package/lib/internal/data/core/common/utils.js +47 -0
- package/lib/internal/data/core/common/utils.js.map +1 -0
- package/lib/internal/data/core/data/connectorDataOperation.d.ts +160 -0
- package/lib/internal/data/core/data/connectorDataOperation.d.ts.map +1 -0
- package/lib/internal/data/core/data/connectorDataOperation.js +500 -0
- package/lib/internal/data/core/data/connectorDataOperation.js.map +1 -0
- package/lib/internal/data/core/data/dataverseDataOperation.d.ts +164 -0
- package/lib/internal/data/core/data/dataverseDataOperation.d.ts.map +1 -0
- package/lib/internal/data/core/data/dataverseDataOperation.js +508 -0
- package/lib/internal/data/core/data/dataverseDataOperation.js.map +1 -0
- package/lib/internal/data/core/data/runtimeDataOperations.d.ts +93 -0
- package/lib/internal/data/core/data/runtimeDataOperations.d.ts.map +1 -0
- package/lib/internal/data/core/data/runtimeDataOperations.js +244 -0
- package/lib/internal/data/core/data/runtimeDataOperations.js.map +1 -0
- package/lib/internal/data/core/error/codes.d.ts +31 -0
- package/lib/internal/data/core/error/codes.d.ts.map +1 -0
- package/lib/internal/data/core/error/codes.js +39 -0
- package/lib/internal/data/core/error/codes.js.map +1 -0
- package/lib/internal/data/core/error/constants.d.ts +30 -0
- package/lib/internal/data/core/error/constants.d.ts.map +1 -0
- package/lib/internal/data/core/error/constants.js +33 -0
- package/lib/internal/data/core/error/constants.js.map +1 -0
- package/lib/internal/data/core/error/error.d.ts +8 -0
- package/lib/internal/data/core/error/error.d.ts.map +1 -0
- package/lib/internal/data/core/error/error.js +8 -0
- package/lib/internal/data/core/error/error.js.map +1 -0
- package/lib/internal/data/core/error/messages.d.ts +24 -0
- package/lib/internal/data/core/error/messages.d.ts.map +1 -0
- package/lib/internal/data/core/error/messages.js +55 -0
- package/lib/internal/data/core/error/messages.js.map +1 -0
- package/lib/internal/data/core/error/types.d.ts +30 -0
- package/lib/internal/data/core/error/types.d.ts.map +1 -0
- package/lib/internal/data/core/error/types.js +28 -0
- package/lib/internal/data/core/error/types.js.map +1 -0
- package/lib/internal/data/core/error/util.d.ts +24 -0
- package/lib/internal/data/core/error/util.d.ts.map +1 -0
- package/lib/internal/data/core/error/util.js +71 -0
- package/lib/internal/data/core/error/util.js.map +1 -0
- package/lib/internal/data/core/metadata/runtimeDataSourceService.d.ts +65 -0
- package/lib/internal/data/core/metadata/runtimeDataSourceService.d.ts.map +1 -0
- package/lib/internal/data/core/metadata/runtimeDataSourceService.js +101 -0
- package/lib/internal/data/core/metadata/runtimeDataSourceService.js.map +1 -0
- package/lib/internal/data/core/metadata/runtimeMetadataOperations.d.ts +17 -0
- package/lib/internal/data/core/metadata/runtimeMetadataOperations.d.ts.map +1 -0
- package/lib/internal/data/core/metadata/runtimeMetadataOperations.js +34 -0
- package/lib/internal/data/core/metadata/runtimeMetadataOperations.js.map +1 -0
- package/lib/internal/data/core/runtime/getRuntimeContext.d.ts +11 -0
- package/lib/internal/data/core/runtime/getRuntimeContext.d.ts.map +1 -0
- package/lib/internal/data/core/runtime/getRuntimeContext.js +16 -0
- package/lib/internal/data/core/runtime/getRuntimeContext.js.map +1 -0
- package/lib/internal/data/core/runtime/initializeRuntime.d.ts +13 -0
- package/lib/internal/data/core/runtime/initializeRuntime.d.ts.map +1 -0
- package/lib/internal/data/core/runtime/initializeRuntime.js +38 -0
- package/lib/internal/data/core/runtime/initializeRuntime.js.map +1 -0
- package/lib/internal/data/core/runtime/powerDataRuntime.d.ts +68 -0
- package/lib/internal/data/core/runtime/powerDataRuntime.d.ts.map +1 -0
- package/lib/internal/data/core/runtime/powerDataRuntime.js +116 -0
- package/lib/internal/data/core/runtime/powerDataRuntime.js.map +1 -0
- package/lib/internal/data/core/runtime/powerDataRuntimeInstance.d.ts +20 -0
- package/lib/internal/data/core/runtime/powerDataRuntimeInstance.d.ts.map +1 -0
- package/lib/internal/data/core/runtime/powerDataRuntimeInstance.js +36 -0
- package/lib/internal/data/core/runtime/powerDataRuntimeInstance.js.map +1 -0
- package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.d.ts +34 -0
- package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.d.ts.map +1 -0
- package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.js +45 -0
- package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.js.map +1 -0
- package/lib/internal/data/core/runtimeClient/runtimeClientProvider.d.ts +43 -0
- package/lib/internal/data/core/runtimeClient/runtimeClientProvider.d.ts.map +1 -0
- package/lib/internal/data/core/runtimeClient/runtimeClientProvider.js +87 -0
- package/lib/internal/data/core/runtimeClient/runtimeClientProvider.js.map +1 -0
- package/lib/internal/data/core/runtimeClient/runtimeDataClient.d.ts +112 -0
- package/lib/internal/data/core/runtimeClient/runtimeDataClient.d.ts.map +1 -0
- package/lib/internal/data/core/runtimeClient/runtimeDataClient.js +457 -0
- package/lib/internal/data/core/runtimeClient/runtimeDataClient.js.map +1 -0
- package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.d.ts +40 -0
- package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.d.ts.map +1 -0
- package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.js +94 -0
- package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.js.map +1 -0
- package/lib/internal/data/core/telemetry/log.d.ts +20 -0
- package/lib/internal/data/core/telemetry/log.d.ts.map +1 -0
- package/lib/internal/data/core/telemetry/log.js +85 -0
- package/lib/internal/data/core/telemetry/log.js.map +1 -0
- package/lib/internal/data/core/types/index.d.ts +138 -0
- package/lib/internal/data/core/types/index.d.ts.map +1 -0
- package/lib/internal/data/core/types/index.js +7 -0
- package/lib/internal/data/core/types/index.js.map +1 -0
- package/lib/internal/plugin/PluginCommon.d.ts +16 -0
- package/lib/internal/plugin/PluginCommon.d.ts.map +1 -0
- package/lib/internal/plugin/PluginCommon.js +114 -0
- package/lib/internal/plugin/PluginCommon.js.map +1 -0
- package/lib/internal/plugin/PluginMobile.d.ts +13 -0
- package/lib/internal/plugin/PluginMobile.d.ts.map +1 -0
- package/lib/internal/plugin/PluginMobile.js +109 -0
- package/lib/internal/plugin/PluginMobile.js.map +1 -0
- package/lib/telemetry/Logger.types.d.ts +8 -0
- package/lib/telemetry/Logger.types.d.ts.map +1 -0
- package/lib/telemetry/Logger.types.js +5 -0
- package/lib/telemetry/Logger.types.js.map +1 -0
- package/lib/telemetry/LoggerManager.d.ts +6 -0
- package/lib/telemetry/LoggerManager.d.ts.map +1 -0
- package/lib/telemetry/LoggerManager.js +28 -0
- package/lib/telemetry/LoggerManager.js.map +1 -0
- package/lib/telemetry/Metrics.types.d.ts +53 -0
- package/lib/telemetry/Metrics.types.d.ts.map +1 -0
- package/lib/telemetry/Metrics.types.js +5 -0
- package/lib/telemetry/Metrics.types.js.map +1 -0
- package/lib/telemetry/Performance.d.ts +5 -0
- package/lib/telemetry/Performance.d.ts.map +1 -0
- package/lib/telemetry/Performance.js +47 -0
- package/lib/telemetry/Performance.js.map +1 -0
- package/lib/telemetry/index.d.ts +5 -0
- package/lib/telemetry/index.d.ts.map +1 -0
- package/lib/telemetry/index.js +5 -0
- package/lib/telemetry/index.js.map +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1,271 @@
|
|
|
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 { RuntimeMetadataClient } from '../internal/data/core/runtimeClient/runtimeMetadataClient';
|
|
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
|
+
// return value for action :loadAppConnectionsAsync_v2 run through PowerOperationExecutor
|
|
13
|
+
const mockAppDataSourceConfigs = {
|
|
14
|
+
success: true,
|
|
15
|
+
data: {
|
|
16
|
+
datasource1: {
|
|
17
|
+
apiId: 'someApiId_dataSource1',
|
|
18
|
+
connectionName: '01234567-8901-2345-6789-012345678901',
|
|
19
|
+
runtimeUrl: 'https://contosso.org/1',
|
|
20
|
+
error: undefined,
|
|
21
|
+
datasetName: undefined,
|
|
22
|
+
},
|
|
23
|
+
datasource2: {
|
|
24
|
+
apiId: 'someApiId_dataSource2',
|
|
25
|
+
connectionName: '09876543-2109-8765-4321-098765432109',
|
|
26
|
+
runtimeUrl: 'https://contosso.org/2',
|
|
27
|
+
error: undefined,
|
|
28
|
+
datasetName: undefined,
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
// return value for action :getAppCdsDataSourceConfigsAsync run through PowerOperationExecutor
|
|
33
|
+
const mockCdsAppDataSourceConfigs = {
|
|
34
|
+
success: true,
|
|
35
|
+
data: {
|
|
36
|
+
datasource1: {
|
|
37
|
+
runtimeUrl: 'https://contosso.org/1',
|
|
38
|
+
entitySetName: 'someEntitySetName1',
|
|
39
|
+
logicalName: 'someLogicalName1',
|
|
40
|
+
},
|
|
41
|
+
datasource2: {
|
|
42
|
+
runtimeUrl: 'https://contosso.org/2',
|
|
43
|
+
entitySetName: 'someEntitySetName2',
|
|
44
|
+
logicalName: 'someLogicalName2',
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
describe('RuntimeMetadataClient', () => {
|
|
49
|
+
let mockPowerOperationExecutor;
|
|
50
|
+
// Console silencing setup - silence all console output for this test file
|
|
51
|
+
let consoleMocks;
|
|
52
|
+
beforeEach(() => {
|
|
53
|
+
mockPowerOperationExecutor = {
|
|
54
|
+
execute: jest.fn(),
|
|
55
|
+
};
|
|
56
|
+
consoleMocks = silenceConsole();
|
|
57
|
+
});
|
|
58
|
+
afterEach(() => {
|
|
59
|
+
jest.clearAllMocks();
|
|
60
|
+
consoleMocks.restore();
|
|
61
|
+
});
|
|
62
|
+
describe('createInstanceAsync - Static Factory Method', () => {
|
|
63
|
+
it('should create instance successfully with valid executor', async () => {
|
|
64
|
+
const instance = await RuntimeMetadataClient.createInstanceAsync(mockPowerOperationExecutor);
|
|
65
|
+
expect(instance).toBeInstanceOf(RuntimeMetadataClient);
|
|
66
|
+
});
|
|
67
|
+
it('should handle null/undefined executor', async () => {
|
|
68
|
+
await expect(RuntimeMetadataClient.createInstanceAsync(null)).resolves.toBeInstanceOf(RuntimeMetadataClient);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
describe('getAppConnectionConfigsAsync - Happy Path', () => {
|
|
72
|
+
it('should return connection configurations successfully', async () => {
|
|
73
|
+
mockPowerOperationExecutor.execute.mockResolvedValue(mockAppDataSourceConfigs);
|
|
74
|
+
const instance = await RuntimeMetadataClient.createInstanceAsync(mockPowerOperationExecutor);
|
|
75
|
+
const result = await instance.getAppConnectionConfigsAsync();
|
|
76
|
+
expect(mockPowerOperationExecutor.execute).toHaveBeenCalledWith('AppPowerAppsClientPlugin', 'loadAppConnectionsAsync_v2', []);
|
|
77
|
+
expect(result).toEqual(mockAppDataSourceConfigs);
|
|
78
|
+
});
|
|
79
|
+
it('should transform response keys to lowercase', async () => {
|
|
80
|
+
const mockConnectionConfigResponse = {
|
|
81
|
+
success: true,
|
|
82
|
+
data: {
|
|
83
|
+
DataSource1: {
|
|
84
|
+
apiId: 'someApiId_dataSource1',
|
|
85
|
+
connectionName: '01234567-8901-2345-6789-012345678901',
|
|
86
|
+
runtimeUrl: 'https://contosso.org/1',
|
|
87
|
+
error: undefined,
|
|
88
|
+
datasetName: undefined,
|
|
89
|
+
},
|
|
90
|
+
DATASOURCe2: {
|
|
91
|
+
apiId: 'someApiId_dataSource2',
|
|
92
|
+
connectionName: '09876543-2109-8765-4321-098765432109',
|
|
93
|
+
runtimeUrl: 'https://contosso.org/2',
|
|
94
|
+
error: undefined,
|
|
95
|
+
datasetName: undefined,
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
mockPowerOperationExecutor.execute.mockResolvedValue(mockConnectionConfigResponse);
|
|
100
|
+
const instance = await RuntimeMetadataClient.createInstanceAsync(mockPowerOperationExecutor);
|
|
101
|
+
const result = await instance.getAppConnectionConfigsAsync();
|
|
102
|
+
// Verify all keys are converted to lowercase in result
|
|
103
|
+
expect(result.data).toHaveProperty('datasource1');
|
|
104
|
+
expect(result.data).toHaveProperty('datasource2');
|
|
105
|
+
expect(result.data).not.toHaveProperty('DataSource1');
|
|
106
|
+
expect(result.data).not.toHaveProperty('DATASOURCe2');
|
|
107
|
+
// Verify the transformed data structure
|
|
108
|
+
expect(result.data.datasource1).toEqual({
|
|
109
|
+
apiId: 'someApiId_dataSource1',
|
|
110
|
+
connectionName: '01234567-8901-2345-6789-012345678901',
|
|
111
|
+
runtimeUrl: 'https://contosso.org/1',
|
|
112
|
+
error: undefined,
|
|
113
|
+
datasetName: undefined,
|
|
114
|
+
});
|
|
115
|
+
expect(result.data.datasource2).toEqual({
|
|
116
|
+
apiId: 'someApiId_dataSource2',
|
|
117
|
+
connectionName: '09876543-2109-8765-4321-098765432109',
|
|
118
|
+
runtimeUrl: 'https://contosso.org/2',
|
|
119
|
+
error: undefined,
|
|
120
|
+
datasetName: undefined,
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
it('should handle empty connection configurations', async () => {
|
|
124
|
+
const mockConnectionConfigResponse = {
|
|
125
|
+
success: true,
|
|
126
|
+
data: {},
|
|
127
|
+
};
|
|
128
|
+
mockPowerOperationExecutor.execute.mockResolvedValue(mockConnectionConfigResponse);
|
|
129
|
+
const instance = await RuntimeMetadataClient.createInstanceAsync(mockPowerOperationExecutor);
|
|
130
|
+
const result = await instance.getAppConnectionConfigsAsync();
|
|
131
|
+
// Verify all keys are converted to lowercase in result
|
|
132
|
+
expect(result.success).toBe(true);
|
|
133
|
+
expect(result.data).toEqual({});
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
describe('getAppConnectionConfigsAsync - Error Handling', () => {
|
|
137
|
+
it('should throw PowerDataRuntimeError when executor fails', async () => {
|
|
138
|
+
mockPowerOperationExecutor.execute.mockRejectedValue(new Error('Executor failed'));
|
|
139
|
+
const instance = await RuntimeMetadataClient.createInstanceAsync(mockPowerOperationExecutor);
|
|
140
|
+
await expect(instance.getAppConnectionConfigsAsync()).rejects.toThrow(PowerDataRuntimeError);
|
|
141
|
+
});
|
|
142
|
+
it('should handle executor returning invalid response format', async () => {
|
|
143
|
+
mockPowerOperationExecutor.execute.mockResolvedValue({}); // Empty object simulating invalid response
|
|
144
|
+
const instance = await RuntimeMetadataClient.createInstanceAsync(mockPowerOperationExecutor);
|
|
145
|
+
await expect(instance.getAppConnectionConfigsAsync()).rejects.toThrow(expect.objectContaining({
|
|
146
|
+
code: ErrorCodes.ConnectionConfigFetchFailed,
|
|
147
|
+
}));
|
|
148
|
+
});
|
|
149
|
+
it('should handle executor throwing synchronous errors', async () => {
|
|
150
|
+
mockPowerOperationExecutor.execute.mockImplementation(() => {
|
|
151
|
+
throw new Error('Synchronous error');
|
|
152
|
+
});
|
|
153
|
+
const instance = await RuntimeMetadataClient.createInstanceAsync(mockPowerOperationExecutor);
|
|
154
|
+
await expect(instance.getAppConnectionConfigsAsync()).rejects.toThrow(expect.objectContaining({
|
|
155
|
+
code: ErrorCodes.ConnectionConfigFetchFailed,
|
|
156
|
+
}));
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
describe('getAppDataSourceConfigsAsync - Happy Path', () => {
|
|
160
|
+
it('should return data source configurations successfully', async () => {
|
|
161
|
+
mockPowerOperationExecutor.execute.mockResolvedValue(mockCdsAppDataSourceConfigs);
|
|
162
|
+
const instance = await RuntimeMetadataClient.createInstanceAsync(mockPowerOperationExecutor);
|
|
163
|
+
const result = await instance.getAppDataSourceConfigsAsync();
|
|
164
|
+
expect(mockPowerOperationExecutor.execute).toHaveBeenCalledWith('AppPowerAppsClientPlugin', 'getAppCdsDataSourceConfigsAsync', []);
|
|
165
|
+
expect(result).toEqual(mockCdsAppDataSourceConfigs);
|
|
166
|
+
});
|
|
167
|
+
it('should transform response keys to lowercase', async () => {
|
|
168
|
+
const mockDataSourceConfigResponse = {
|
|
169
|
+
success: true,
|
|
170
|
+
data: {
|
|
171
|
+
DataSource1: {
|
|
172
|
+
runtimeUrl: 'https://contosso.org/1',
|
|
173
|
+
entitySetName: 'someEntitySetName1',
|
|
174
|
+
logicalName: 'someLogicalName1',
|
|
175
|
+
},
|
|
176
|
+
DATASOURCe2: {
|
|
177
|
+
runtimeUrl: 'https://contosso.org/2',
|
|
178
|
+
entitySetName: 'someEntitySetName2',
|
|
179
|
+
logicalName: 'someLogicalName2',
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
mockPowerOperationExecutor.execute.mockResolvedValue(mockDataSourceConfigResponse);
|
|
184
|
+
const instance = await RuntimeMetadataClient.createInstanceAsync(mockPowerOperationExecutor);
|
|
185
|
+
const result = await instance.getAppDataSourceConfigsAsync();
|
|
186
|
+
expect(result.data).toHaveProperty('datasource1');
|
|
187
|
+
expect(result.data).toHaveProperty('datasource2');
|
|
188
|
+
expect(result.data).not.toHaveProperty('DataSource1');
|
|
189
|
+
expect(result.data).not.toHaveProperty('DATASOURCe2');
|
|
190
|
+
expect(result.data.datasource1).toEqual({
|
|
191
|
+
runtimeUrl: 'https://contosso.org/1',
|
|
192
|
+
entitySetName: 'someEntitySetName1',
|
|
193
|
+
logicalName: 'someLogicalName1',
|
|
194
|
+
});
|
|
195
|
+
expect(result.data.datasource2).toEqual({
|
|
196
|
+
runtimeUrl: 'https://contosso.org/2',
|
|
197
|
+
entitySetName: 'someEntitySetName2',
|
|
198
|
+
logicalName: 'someLogicalName2',
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
it('should handle empty data source configurations', async () => {
|
|
202
|
+
const mockDataSourceConfigResponse = {
|
|
203
|
+
success: true,
|
|
204
|
+
data: {},
|
|
205
|
+
};
|
|
206
|
+
mockPowerOperationExecutor.execute.mockResolvedValue(mockDataSourceConfigResponse);
|
|
207
|
+
const instance = await RuntimeMetadataClient.createInstanceAsync(mockPowerOperationExecutor);
|
|
208
|
+
const result = await instance.getAppDataSourceConfigsAsync();
|
|
209
|
+
expect(result.success).toBe(true);
|
|
210
|
+
expect(result.data).toEqual({});
|
|
211
|
+
});
|
|
212
|
+
});
|
|
213
|
+
describe('getAppDataSourceConfigsAsync - Error Handling', () => {
|
|
214
|
+
it('should throw PowerDataRuntimeError when executor fails', async () => {
|
|
215
|
+
mockPowerOperationExecutor.execute.mockRejectedValue(new Error('Executor failed'));
|
|
216
|
+
const instance = await RuntimeMetadataClient.createInstanceAsync(mockPowerOperationExecutor);
|
|
217
|
+
await expect(instance.getAppDataSourceConfigsAsync()).rejects.toThrow(PowerDataRuntimeError);
|
|
218
|
+
});
|
|
219
|
+
it('should handle executor returning invalid response format', async () => {
|
|
220
|
+
mockPowerOperationExecutor.execute.mockResolvedValue({}); // Empty object simulating invalid response
|
|
221
|
+
const instance = await RuntimeMetadataClient.createInstanceAsync(mockPowerOperationExecutor);
|
|
222
|
+
await expect(instance.getAppDataSourceConfigsAsync()).rejects.toThrow(expect.objectContaining({
|
|
223
|
+
code: ErrorCodes.DataSourceConfigFetchFailed,
|
|
224
|
+
}));
|
|
225
|
+
});
|
|
226
|
+
it('should handle executor throwing synchronous errors', async () => {
|
|
227
|
+
mockPowerOperationExecutor.execute.mockImplementation(() => {
|
|
228
|
+
throw new Error('Synchronous error');
|
|
229
|
+
});
|
|
230
|
+
const instance = await RuntimeMetadataClient.createInstanceAsync(mockPowerOperationExecutor);
|
|
231
|
+
await expect(instance.getAppDataSourceConfigsAsync()).rejects.toThrow(expect.objectContaining({
|
|
232
|
+
code: ErrorCodes.DataSourceConfigFetchFailed,
|
|
233
|
+
}));
|
|
234
|
+
});
|
|
235
|
+
});
|
|
236
|
+
describe('Integration Scenarios', () => {
|
|
237
|
+
it('should handle multiple concurrent requests', async () => {
|
|
238
|
+
mockPowerOperationExecutor.execute.mockResolvedValue(mockCdsAppDataSourceConfigs);
|
|
239
|
+
const instance = await RuntimeMetadataClient.createInstanceAsync(mockPowerOperationExecutor);
|
|
240
|
+
const promises = [
|
|
241
|
+
instance.getAppDataSourceConfigsAsync(),
|
|
242
|
+
instance.getAppDataSourceConfigsAsync(),
|
|
243
|
+
instance.getAppDataSourceConfigsAsync(),
|
|
244
|
+
];
|
|
245
|
+
await expect(Promise.all(promises)).resolves.toEqual([
|
|
246
|
+
expect.objectContaining({ success: true }),
|
|
247
|
+
expect.objectContaining({ success: true }),
|
|
248
|
+
expect.objectContaining({ success: true }),
|
|
249
|
+
]);
|
|
250
|
+
});
|
|
251
|
+
it('should maintain consistent behavior across multiple calls', async () => {
|
|
252
|
+
mockPowerOperationExecutor.execute.mockResolvedValue(mockCdsAppDataSourceConfigs);
|
|
253
|
+
const instance = await RuntimeMetadataClient.createInstanceAsync(mockPowerOperationExecutor);
|
|
254
|
+
const firstCall = await instance.getAppDataSourceConfigsAsync();
|
|
255
|
+
const secondCall = await instance.getAppDataSourceConfigsAsync();
|
|
256
|
+
const thirdCall = await instance.getAppDataSourceConfigsAsync();
|
|
257
|
+
expect(firstCall).toEqual(secondCall);
|
|
258
|
+
expect(secondCall).toEqual(thirdCall);
|
|
259
|
+
expect(firstCall.success).toBe(true);
|
|
260
|
+
expect(secondCall.success).toBe(true);
|
|
261
|
+
expect(thirdCall.success).toBe(true);
|
|
262
|
+
expect(firstCall.data).toEqual(mockCdsAppDataSourceConfigs.data);
|
|
263
|
+
expect(secondCall.data).toEqual(mockCdsAppDataSourceConfigs.data);
|
|
264
|
+
expect(thirdCall.data).toEqual(mockCdsAppDataSourceConfigs.data);
|
|
265
|
+
// Verify no state pollution between calls
|
|
266
|
+
expect(mockPowerOperationExecutor.execute).toHaveBeenCalledTimes(3);
|
|
267
|
+
});
|
|
268
|
+
});
|
|
269
|
+
});
|
|
270
|
+
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
271
|
+
//# sourceMappingURL=runtimeMetadataClient.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeMetadataClient.test.js","sourceRoot":"","sources":["../../src/__tests__/runtimeMetadataClient.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeMetadataOperations.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/runtimeMetadataOperations.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import { RuntimeMetadataOperations } from '../internal/data/core/metadata/runtimeMetadataOperations';
|
|
5
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
6
|
+
// Mock the client provider and metadata client
|
|
7
|
+
const mockMetadataClient = {
|
|
8
|
+
getAppConnectionConfigsAsync: jest.fn(),
|
|
9
|
+
getAppDataSourceConfigsAsync: jest.fn(),
|
|
10
|
+
};
|
|
11
|
+
const mockClientProvider = {
|
|
12
|
+
getMetadataClientAsync: jest.fn().mockResolvedValue(mockMetadataClient),
|
|
13
|
+
};
|
|
14
|
+
describe('RuntimeMetadataOperations', () => {
|
|
15
|
+
let runtimeMetadataOperations;
|
|
16
|
+
beforeEach(() => {
|
|
17
|
+
// Reset all mocks before each test
|
|
18
|
+
jest.clearAllMocks();
|
|
19
|
+
// Reset the client provider mock to its default behavior
|
|
20
|
+
mockClientProvider.getMetadataClientAsync.mockResolvedValue(mockMetadataClient);
|
|
21
|
+
// Create fresh instance for each test
|
|
22
|
+
runtimeMetadataOperations = new RuntimeMetadataOperations(mockClientProvider);
|
|
23
|
+
});
|
|
24
|
+
describe('constructor', () => {
|
|
25
|
+
it('should initialize with client provider', () => {
|
|
26
|
+
// Test: Should initialize with client provider
|
|
27
|
+
// - Verify instance is created successfully
|
|
28
|
+
// - Verify client provider is stored correctly
|
|
29
|
+
expect(runtimeMetadataOperations).toBeInstanceOf(RuntimeMetadataOperations);
|
|
30
|
+
expect(runtimeMetadataOperations).toBeDefined();
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
describe('getConnections', () => {
|
|
34
|
+
describe('successful scenarios', () => {
|
|
35
|
+
it('should return connections when client call succeeds', async () => {
|
|
36
|
+
// Test: Should return connections when client call succeeds
|
|
37
|
+
// - Mock successful response from getAppConnectionConfigsAsync
|
|
38
|
+
// - Verify correct IOperationResult structure is returned
|
|
39
|
+
// - Verify data is wrapped in array format
|
|
40
|
+
// - Verify success flag is true
|
|
41
|
+
const mockConnectionData = { id: 'conn1', name: 'Test Connection' };
|
|
42
|
+
mockMetadataClient.getAppConnectionConfigsAsync.mockResolvedValue({
|
|
43
|
+
success: true,
|
|
44
|
+
data: mockConnectionData,
|
|
45
|
+
error: undefined,
|
|
46
|
+
});
|
|
47
|
+
const result = await runtimeMetadataOperations.getConnections();
|
|
48
|
+
expect(result.success).toBe(true);
|
|
49
|
+
expect(result.data).toEqual([mockConnectionData]);
|
|
50
|
+
expect(result.error).toBeUndefined();
|
|
51
|
+
expect(mockMetadataClient.getAppConnectionConfigsAsync).toHaveBeenCalledWith(undefined);
|
|
52
|
+
});
|
|
53
|
+
it('should handle empty data response', async () => {
|
|
54
|
+
// Test: Should handle empty data response
|
|
55
|
+
// - Mock response with undefined/null data
|
|
56
|
+
// - Verify empty array is returned
|
|
57
|
+
// - Verify success flag matches client response
|
|
58
|
+
mockMetadataClient.getAppConnectionConfigsAsync.mockResolvedValue({
|
|
59
|
+
success: true,
|
|
60
|
+
data: undefined,
|
|
61
|
+
error: undefined,
|
|
62
|
+
});
|
|
63
|
+
const result = await runtimeMetadataOperations.getConnections();
|
|
64
|
+
expect(result.success).toBe(true);
|
|
65
|
+
expect(result.data).toEqual([]);
|
|
66
|
+
expect(result.error).toBeUndefined();
|
|
67
|
+
});
|
|
68
|
+
it('should pass operation context to client', async () => {
|
|
69
|
+
// Test: Should pass operation context to client
|
|
70
|
+
// - Provide mock IOperationContext
|
|
71
|
+
// - Verify context is passed through to getAppConnectionConfigsAsync
|
|
72
|
+
const mockContext = { correlationId: 'test-correlation-id' };
|
|
73
|
+
mockMetadataClient.getAppConnectionConfigsAsync.mockResolvedValue({
|
|
74
|
+
success: true,
|
|
75
|
+
data: null,
|
|
76
|
+
error: undefined,
|
|
77
|
+
});
|
|
78
|
+
await runtimeMetadataOperations.getConnections(mockContext);
|
|
79
|
+
expect(mockMetadataClient.getAppConnectionConfigsAsync).toHaveBeenCalledWith(mockContext);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
describe('error scenarios', () => {
|
|
83
|
+
it('should handle client call failure', async () => {
|
|
84
|
+
// Test: Should handle client call failure
|
|
85
|
+
// - Mock failed response from getAppConnectionConfigsAsync
|
|
86
|
+
// - Verify error is propagated in result
|
|
87
|
+
// - Verify success flag is false
|
|
88
|
+
// - Verify data is empty array
|
|
89
|
+
const mockError = new Error('Client call failed');
|
|
90
|
+
mockMetadataClient.getAppConnectionConfigsAsync.mockResolvedValue({
|
|
91
|
+
success: false,
|
|
92
|
+
data: undefined,
|
|
93
|
+
error: mockError,
|
|
94
|
+
});
|
|
95
|
+
const result = await runtimeMetadataOperations.getConnections();
|
|
96
|
+
expect(result.success).toBe(false);
|
|
97
|
+
expect(result.data).toEqual([]);
|
|
98
|
+
expect(result.error).toBe(mockError);
|
|
99
|
+
});
|
|
100
|
+
it('should handle client provider failure', async () => {
|
|
101
|
+
// Test: Should handle client provider failure
|
|
102
|
+
// - Mock getMetadataClientAsync to throw/reject
|
|
103
|
+
// - Verify error handling behavior
|
|
104
|
+
const mockError = new Error('Client provider failed');
|
|
105
|
+
mockClientProvider.getMetadataClientAsync.mockRejectedValue(mockError);
|
|
106
|
+
await expect(runtimeMetadataOperations.getConnections()).rejects.toThrow('Client provider failed');
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
describe('getConnectionApis', () => {
|
|
111
|
+
describe('successful scenarios', () => {
|
|
112
|
+
it('should return connection APIs when client call succeeds', async () => {
|
|
113
|
+
// Test: Should return connection APIs when client call succeeds
|
|
114
|
+
// - Mock successful response from getAppDataSourceConfigsAsync
|
|
115
|
+
// - Verify correct IOperationResult structure is returned
|
|
116
|
+
// - Verify data is cast to IConnectionApi and wrapped in array
|
|
117
|
+
// - Verify success flag is true
|
|
118
|
+
const mockApiData = { id: 'api1', name: 'Test API', operations: [] };
|
|
119
|
+
mockMetadataClient.getAppDataSourceConfigsAsync.mockResolvedValue({
|
|
120
|
+
success: true,
|
|
121
|
+
data: mockApiData,
|
|
122
|
+
error: undefined,
|
|
123
|
+
});
|
|
124
|
+
const result = await runtimeMetadataOperations.getConnectionApis('test-connection-id');
|
|
125
|
+
expect(result.success).toBe(true);
|
|
126
|
+
expect(result.data).toEqual([mockApiData]);
|
|
127
|
+
expect(result.error).toBeUndefined();
|
|
128
|
+
expect(mockMetadataClient.getAppDataSourceConfigsAsync).toHaveBeenCalledWith(undefined);
|
|
129
|
+
});
|
|
130
|
+
it('should handle empty data response', async () => {
|
|
131
|
+
// Test: Should handle empty data response
|
|
132
|
+
// - Mock response with undefined/null data
|
|
133
|
+
// - Verify empty array is returned
|
|
134
|
+
// - Verify success flag matches client response
|
|
135
|
+
mockMetadataClient.getAppDataSourceConfigsAsync.mockResolvedValue({
|
|
136
|
+
success: true,
|
|
137
|
+
data: undefined,
|
|
138
|
+
error: undefined,
|
|
139
|
+
});
|
|
140
|
+
const result = await runtimeMetadataOperations.getConnectionApis('test-connection-id');
|
|
141
|
+
expect(result.success).toBe(true);
|
|
142
|
+
expect(result.data).toEqual([]);
|
|
143
|
+
expect(result.error).toBeUndefined();
|
|
144
|
+
});
|
|
145
|
+
it('should pass operation context to client', async () => {
|
|
146
|
+
// Test: Should pass operation context to client
|
|
147
|
+
// - Provide mock IOperationContext
|
|
148
|
+
// - Verify context is passed through to getAppDataSourceConfigsAsync
|
|
149
|
+
const mockContext = { correlationId: 'test-correlation-id' };
|
|
150
|
+
mockMetadataClient.getAppDataSourceConfigsAsync.mockResolvedValue({
|
|
151
|
+
success: true,
|
|
152
|
+
data: null,
|
|
153
|
+
error: undefined,
|
|
154
|
+
});
|
|
155
|
+
await runtimeMetadataOperations.getConnectionApis('test-connection-id', mockContext);
|
|
156
|
+
expect(mockMetadataClient.getAppDataSourceConfigsAsync).toHaveBeenCalledWith(mockContext);
|
|
157
|
+
});
|
|
158
|
+
it('should accept connection ID parameter', async () => {
|
|
159
|
+
// Test: Should accept connection ID parameter
|
|
160
|
+
// - Verify method accepts connectionId parameter
|
|
161
|
+
// - Note: Current implementation doesn't use connectionId (potential improvement area)
|
|
162
|
+
mockMetadataClient.getAppDataSourceConfigsAsync.mockResolvedValue({
|
|
163
|
+
success: true,
|
|
164
|
+
data: null,
|
|
165
|
+
error: undefined,
|
|
166
|
+
});
|
|
167
|
+
const connectionId = 'specific-connection-id';
|
|
168
|
+
await runtimeMetadataOperations.getConnectionApis(connectionId);
|
|
169
|
+
// Note: Current implementation doesn't use connectionId - this is documented as potential improvement
|
|
170
|
+
expect(mockMetadataClient.getAppDataSourceConfigsAsync).toHaveBeenCalled();
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
describe('error scenarios', () => {
|
|
174
|
+
it('should handle client call failure', async () => {
|
|
175
|
+
// Test: Should handle client call failure
|
|
176
|
+
// - Mock failed response from getAppDataSourceConfigsAsync
|
|
177
|
+
// - Verify error is propagated in result
|
|
178
|
+
// - Verify success flag is false
|
|
179
|
+
// - Verify data is empty array
|
|
180
|
+
const mockError = new Error('Client call failed');
|
|
181
|
+
mockMetadataClient.getAppDataSourceConfigsAsync.mockResolvedValue({
|
|
182
|
+
success: false,
|
|
183
|
+
data: undefined,
|
|
184
|
+
error: mockError,
|
|
185
|
+
});
|
|
186
|
+
const result = await runtimeMetadataOperations.getConnectionApis('test-connection-id');
|
|
187
|
+
expect(result.success).toBe(false);
|
|
188
|
+
expect(result.data).toEqual([]);
|
|
189
|
+
expect(result.error).toBe(mockError);
|
|
190
|
+
});
|
|
191
|
+
it('should handle client provider failure', async () => {
|
|
192
|
+
// Test: Should handle client provider failure
|
|
193
|
+
// - Mock getMetadataClientAsync to throw/reject
|
|
194
|
+
// - Verify error handling behavior
|
|
195
|
+
const mockError = new Error('Client provider failed');
|
|
196
|
+
mockClientProvider.getMetadataClientAsync.mockRejectedValue(mockError);
|
|
197
|
+
await expect(runtimeMetadataOperations.getConnectionApis('test-connection-id')).rejects.toThrow('Client provider failed');
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
describe('edge cases', () => {
|
|
201
|
+
it('should handle null connectionId', async () => {
|
|
202
|
+
// Test: Should handle null/undefined connectionId
|
|
203
|
+
// - Pass null or undefined as connectionId
|
|
204
|
+
// - Verify method doesn't crash (though parameter is unused)
|
|
205
|
+
mockMetadataClient.getAppDataSourceConfigsAsync.mockResolvedValue({
|
|
206
|
+
success: true,
|
|
207
|
+
data: null,
|
|
208
|
+
error: undefined,
|
|
209
|
+
});
|
|
210
|
+
const result = await runtimeMetadataOperations.getConnectionApis(null);
|
|
211
|
+
expect(result.success).toBe(true);
|
|
212
|
+
expect(result.data).toEqual([]);
|
|
213
|
+
});
|
|
214
|
+
it('should handle undefined connectionId', async () => {
|
|
215
|
+
// Test: Should handle null/undefined connectionId
|
|
216
|
+
// - Pass null or undefined as connectionId
|
|
217
|
+
// - Verify method doesn't crash (though parameter is unused)
|
|
218
|
+
mockMetadataClient.getAppDataSourceConfigsAsync.mockResolvedValue({
|
|
219
|
+
success: true,
|
|
220
|
+
data: null,
|
|
221
|
+
error: undefined,
|
|
222
|
+
});
|
|
223
|
+
const result = await runtimeMetadataOperations.getConnectionApis(undefined);
|
|
224
|
+
expect(result.success).toBe(true);
|
|
225
|
+
expect(result.data).toEqual([]);
|
|
226
|
+
});
|
|
227
|
+
it('should handle empty string connectionId', async () => {
|
|
228
|
+
// Test: Should handle empty string connectionId
|
|
229
|
+
// - Pass empty string as connectionId
|
|
230
|
+
// - Verify method behavior
|
|
231
|
+
mockMetadataClient.getAppDataSourceConfigsAsync.mockResolvedValue({
|
|
232
|
+
success: true,
|
|
233
|
+
data: null,
|
|
234
|
+
error: undefined,
|
|
235
|
+
});
|
|
236
|
+
const result = await runtimeMetadataOperations.getConnectionApis('');
|
|
237
|
+
expect(result.success).toBe(true);
|
|
238
|
+
expect(result.data).toEqual([]);
|
|
239
|
+
});
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
describe('integration scenarios', () => {
|
|
243
|
+
it('should handle multiple sequential calls', async () => {
|
|
244
|
+
// Test: Should handle multiple sequential calls
|
|
245
|
+
// - Call both getConnections and getConnectionApis
|
|
246
|
+
// - Verify client provider is reused correctly
|
|
247
|
+
// - Verify each call gets fresh client instance
|
|
248
|
+
mockMetadataClient.getAppConnectionConfigsAsync.mockResolvedValue({
|
|
249
|
+
success: true,
|
|
250
|
+
data: { id: 'conn1' },
|
|
251
|
+
error: undefined,
|
|
252
|
+
});
|
|
253
|
+
mockMetadataClient.getAppDataSourceConfigsAsync.mockResolvedValue({
|
|
254
|
+
success: true,
|
|
255
|
+
data: { id: 'api1' },
|
|
256
|
+
error: undefined,
|
|
257
|
+
});
|
|
258
|
+
const connectionsResult = await runtimeMetadataOperations.getConnections();
|
|
259
|
+
const apisResult = await runtimeMetadataOperations.getConnectionApis('test-id');
|
|
260
|
+
expect(connectionsResult.success).toBe(true);
|
|
261
|
+
expect(apisResult.success).toBe(true);
|
|
262
|
+
expect(mockClientProvider.getMetadataClientAsync).toHaveBeenCalledTimes(2);
|
|
263
|
+
});
|
|
264
|
+
it('should handle concurrent calls', async () => {
|
|
265
|
+
// Test: Should handle concurrent calls
|
|
266
|
+
// - Make multiple simultaneous calls to same method
|
|
267
|
+
// - Verify thread safety and proper mock behavior
|
|
268
|
+
mockMetadataClient.getAppConnectionConfigsAsync.mockResolvedValue({
|
|
269
|
+
success: true,
|
|
270
|
+
data: { id: 'conn1' },
|
|
271
|
+
error: undefined,
|
|
272
|
+
});
|
|
273
|
+
const promise1 = runtimeMetadataOperations.getConnections();
|
|
274
|
+
const promise2 = runtimeMetadataOperations.getConnections();
|
|
275
|
+
const promise3 = runtimeMetadataOperations.getConnections();
|
|
276
|
+
const results = await Promise.all([promise1, promise2, promise3]);
|
|
277
|
+
results.forEach((result) => {
|
|
278
|
+
expect(result.success).toBe(true);
|
|
279
|
+
expect(result.data).toEqual([{ id: 'conn1' }]);
|
|
280
|
+
});
|
|
281
|
+
expect(mockClientProvider.getMetadataClientAsync).toHaveBeenCalledTimes(3);
|
|
282
|
+
});
|
|
283
|
+
});
|
|
284
|
+
});
|
|
285
|
+
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
286
|
+
//# sourceMappingURL=runtimeMetadataOperations.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeMetadataOperations.test.js","sourceRoot":"","sources":["../../src/__tests__/runtimeMetadataOperations.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serviceSchemaModelSnapshot.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/serviceSchemaModelSnapshot.test.ts"],"names":[],"mappings":""}
|