@microsoft/power-apps 1.0.0 → 1.0.3
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/README.md +6 -32
- package/lib/__tests__/DefaultPowerAppsBridge.test.d.ts +5 -0
- package/lib/__tests__/DefaultPowerAppsBridge.test.d.ts.map +1 -0
- package/lib/__tests__/DefaultPowerAppsBridge.test.js +173 -0
- package/lib/__tests__/DefaultPowerAppsBridge.test.js.map +1 -0
- package/lib/__tests__/connectorDataOperationExecutor.spec.d.ts +5 -0
- package/lib/__tests__/connectorDataOperationExecutor.spec.d.ts.map +1 -0
- package/lib/__tests__/{connectorDataOperation.spec.js → connectorDataOperationExecutor.spec.js} +99 -15
- package/lib/__tests__/connectorDataOperationExecutor.spec.js.map +1 -0
- package/lib/__tests__/dataverseDataOperationExecutor.spec.d.ts +5 -0
- package/lib/__tests__/dataverseDataOperationExecutor.spec.d.ts.map +1 -0
- package/lib/__tests__/{dataverseDataOperation.spec.js → dataverseDataOperationExecutor.spec.js} +28 -70
- package/lib/__tests__/dataverseDataOperationExecutor.spec.js.map +1 -0
- package/lib/__tests__/{dataverseDataOperation.spec.d.ts → mockDataOperationExecutor.spec.d.ts} +1 -1
- package/lib/__tests__/mockDataOperationExecutor.spec.d.ts.map +1 -0
- package/lib/__tests__/mockDataOperationExecutor.spec.js +51 -0
- package/lib/__tests__/mockDataOperationExecutor.spec.js.map +1 -0
- package/lib/__tests__/powerDataRuntimeInstance.test.js +2 -17
- package/lib/__tests__/powerDataRuntimeInstance.test.js.map +1 -1
- package/lib/__tests__/runtimeDataClient.spec.js +20 -0
- package/lib/__tests__/runtimeDataClient.spec.js.map +1 -1
- package/lib/__tests__/runtimeDataOperation.test.js +42 -41
- package/lib/__tests__/runtimeDataOperation.test.js.map +1 -1
- package/lib/app/App.Types.d.ts +28 -0
- package/lib/app/App.Types.d.ts.map +1 -0
- package/lib/{__tests__/connectorDataOperation.spec.d.ts → app/App.Types.js} +1 -1
- package/lib/app/App.Types.js.map +1 -0
- package/lib/app/Config.d.ts +6 -0
- package/lib/app/Config.d.ts.map +1 -0
- package/lib/app/Config.js +10 -0
- package/lib/app/Config.js.map +1 -0
- package/lib/app/ContextProvider.d.ts +6 -0
- package/lib/app/ContextProvider.d.ts.map +1 -0
- package/lib/app/ContextProvider.js +13 -0
- package/lib/app/ContextProvider.js.map +1 -0
- package/lib/app/index.d.ts +3 -1
- package/lib/app/index.d.ts.map +1 -1
- package/lib/app/index.js +2 -1
- package/lib/app/index.js.map +1 -1
- package/lib/data/executors/index.d.ts +6 -0
- package/lib/data/executors/index.d.ts.map +1 -0
- package/lib/data/executors/index.js +5 -0
- package/lib/data/executors/index.js.map +1 -0
- package/lib/data/metadata/dataverse/index.d.ts +6 -0
- package/lib/data/metadata/dataverse/index.d.ts.map +1 -0
- package/lib/data/metadata/dataverse/index.js +5 -0
- package/lib/data/metadata/dataverse/index.js.map +1 -0
- package/lib/data/powerAppsData.d.ts +3 -1
- package/lib/data/powerAppsData.d.ts.map +1 -1
- package/lib/data/powerAppsData.js +6 -5
- package/lib/data/powerAppsData.js.map +1 -1
- package/lib/internal/data/ConnectionUtils.js +1 -1
- package/lib/internal/data/ConnectionUtils.js.map +1 -1
- package/lib/internal/data/OperationExecutor.js +1 -1
- package/lib/internal/data/OperationExecutor.js.map +1 -1
- package/lib/internal/data/core/api/createRecord.d.ts.map +1 -1
- package/lib/internal/data/core/api/createRecord.js +1 -1
- package/lib/internal/data/core/api/createRecord.js.map +1 -1
- package/lib/internal/data/core/api/deleteRecord.js +1 -1
- package/lib/internal/data/core/api/deleteRecord.js.map +1 -1
- package/lib/internal/data/core/api/execute.js +1 -1
- package/lib/internal/data/core/api/execute.js.map +1 -1
- package/lib/internal/data/core/api/retrieveMultipleRecords.d.ts.map +1 -1
- package/lib/internal/data/core/api/retrieveMultipleRecords.js +1 -1
- package/lib/internal/data/core/api/retrieveMultipleRecords.js.map +1 -1
- package/lib/internal/data/core/api/retrieveRecord.d.ts.map +1 -1
- package/lib/internal/data/core/api/retrieveRecord.js +1 -1
- package/lib/internal/data/core/api/retrieveRecord.js.map +1 -1
- package/lib/internal/data/core/api/updateRecord.d.ts.map +1 -1
- package/lib/internal/data/core/api/updateRecord.js +1 -1
- package/lib/internal/data/core/api/updateRecord.js.map +1 -1
- package/lib/internal/data/core/common/types.d.ts +3 -10
- package/lib/internal/data/core/common/types.d.ts.map +1 -1
- package/lib/internal/data/core/common/types.js.map +1 -1
- package/lib/internal/data/core/data/{runtimeDataOperations.d.ts → defaultOperationOrchestrator.d.ts} +6 -12
- package/lib/internal/data/core/data/defaultOperationOrchestrator.d.ts.map +1 -0
- package/lib/internal/data/core/data/{runtimeDataOperations.js → defaultOperationOrchestrator.js} +14 -43
- package/lib/internal/data/core/data/defaultOperationOrchestrator.js.map +1 -0
- package/lib/internal/data/core/data/executors/__tests__/dataverseDataOperationExecutor.test.d.ts +5 -0
- package/lib/internal/data/core/data/executors/__tests__/dataverseDataOperationExecutor.test.d.ts.map +1 -0
- package/lib/internal/data/core/data/executors/__tests__/dataverseDataOperationExecutor.test.js +116 -0
- package/lib/internal/data/core/data/executors/__tests__/dataverseDataOperationExecutor.test.js.map +1 -0
- package/lib/internal/data/core/data/{connectorDataOperation.d.ts → executors/connectorDataOperationExecutor.d.ts} +22 -7
- package/lib/internal/data/core/data/executors/connectorDataOperationExecutor.d.ts.map +1 -0
- package/lib/internal/data/core/data/{connectorDataOperation.js → executors/connectorDataOperationExecutor.js} +66 -30
- package/lib/internal/data/core/data/executors/connectorDataOperationExecutor.js.map +1 -0
- package/lib/internal/data/core/data/{dataverseDataOperation.d.ts → executors/dataverseDataOperationExecutor.d.ts} +19 -27
- package/lib/internal/data/core/data/executors/dataverseDataOperationExecutor.d.ts.map +1 -0
- package/lib/internal/data/core/data/executors/dataverseDataOperationExecutor.js +458 -0
- package/lib/internal/data/core/data/executors/dataverseDataOperationExecutor.js.map +1 -0
- package/lib/internal/data/core/data/executors/index.d.ts +5 -0
- package/lib/internal/data/core/data/executors/index.d.ts.map +1 -0
- package/lib/internal/data/core/data/executors/index.js +5 -0
- package/lib/internal/data/core/data/executors/index.js.map +1 -0
- package/lib/internal/data/core/data/executors/mockDataOperationExecutor.d.ts +21 -0
- package/lib/internal/data/core/data/executors/mockDataOperationExecutor.d.ts.map +1 -0
- package/lib/internal/data/core/data/executors/mockDataOperationExecutor.js +75 -0
- package/lib/internal/data/core/data/executors/mockDataOperationExecutor.js.map +1 -0
- package/lib/internal/data/core/data/executors/shared/stringQueryOptions.d.ts +11 -0
- package/lib/internal/data/core/data/executors/shared/stringQueryOptions.d.ts.map +1 -0
- package/lib/internal/data/core/data/executors/shared/stringQueryOptions.js +38 -0
- package/lib/internal/data/core/data/executors/shared/stringQueryOptions.js.map +1 -0
- package/lib/internal/data/core/metadata/runtimeDataSourceService.d.ts.map +1 -1
- package/lib/internal/data/core/metadata/runtimeDataSourceService.js +2 -1
- package/lib/internal/data/core/metadata/runtimeDataSourceService.js.map +1 -1
- package/lib/internal/data/core/runtime/getRuntimeContext.d.ts +3 -2
- package/lib/internal/data/core/runtime/getRuntimeContext.d.ts.map +1 -1
- package/lib/internal/data/core/runtime/getRuntimeContext.js +16 -3
- package/lib/internal/data/core/runtime/getRuntimeContext.js.map +1 -1
- package/lib/internal/data/core/runtime/powerDataRuntime.d.ts +3 -11
- package/lib/internal/data/core/runtime/powerDataRuntime.d.ts.map +1 -1
- package/lib/internal/data/core/runtime/powerDataRuntime.js +6 -19
- package/lib/internal/data/core/runtime/powerDataRuntime.js.map +1 -1
- package/lib/internal/data/core/runtime/powerDataRuntimeInstance.d.ts +2 -3
- package/lib/internal/data/core/runtime/powerDataRuntimeInstance.d.ts.map +1 -1
- package/lib/internal/data/core/runtime/powerDataRuntimeInstance.js +1 -3
- package/lib/internal/data/core/runtime/powerDataRuntimeInstance.js.map +1 -1
- package/lib/internal/data/core/runtimeClient/runtimeDataClient.d.ts.map +1 -1
- package/lib/internal/data/core/runtimeClient/runtimeDataClient.js +1 -0
- package/lib/internal/data/core/runtimeClient/runtimeDataClient.js.map +1 -1
- package/lib/internal/data/core/telemetry/log.d.ts +7 -0
- package/lib/internal/data/core/telemetry/log.d.ts.map +1 -1
- package/lib/internal/data/core/telemetry/log.js +38 -1
- package/lib/internal/data/core/telemetry/log.js.map +1 -1
- package/lib/internal/data/core/types/dataverseMetadata.d.ts +408 -0
- package/lib/internal/data/core/types/dataverseMetadata.d.ts.map +1 -0
- package/lib/internal/data/core/types/dataverseMetadata.js +118 -0
- package/lib/internal/data/core/types/dataverseMetadata.js.map +1 -0
- package/lib/internal/data/core/types/index.d.ts +33 -2
- package/lib/internal/data/core/types/index.d.ts.map +1 -1
- package/lib/internal/data/core/types/index.js.map +1 -1
- package/lib/internal/data/index.d.ts +5 -0
- package/lib/internal/data/index.d.ts.map +1 -0
- package/lib/internal/data/index.js +5 -0
- package/lib/internal/data/index.js.map +1 -0
- package/lib/internal/plugins/DefaultPowerAppsBridge.d.ts +19 -0
- package/lib/internal/plugins/DefaultPowerAppsBridge.d.ts.map +1 -0
- package/lib/internal/plugins/DefaultPowerAppsBridge.js +97 -0
- package/lib/internal/plugins/DefaultPowerAppsBridge.js.map +1 -0
- package/lib/internal/plugins/PluginBridge.d.ts +14 -0
- package/lib/internal/plugins/PluginBridge.d.ts.map +1 -0
- package/lib/internal/plugins/PluginBridge.js +25 -0
- package/lib/internal/plugins/PluginBridge.js.map +1 -0
- package/lib/internal/plugins/SendMessage/CompatibleMessageReceiver.d.ts.map +1 -0
- package/lib/internal/{communication → plugins/SendMessage}/CompatibleMessageReceiver.js +4 -3
- package/lib/internal/plugins/SendMessage/CompatibleMessageReceiver.js.map +1 -0
- package/lib/internal/plugins/SendMessage/IncompatibleMessageReceiver.d.ts.map +1 -0
- package/lib/internal/plugins/SendMessage/IncompatibleMessageReceiver.js.map +1 -0
- package/lib/internal/plugins/SendMessage/MessageReceiver.Types.d.ts.map +1 -0
- package/lib/internal/plugins/SendMessage/MessageReceiver.Types.js.map +1 -0
- package/lib/internal/{communication → plugins/SendMessage}/SendMessage.d.ts +0 -1
- package/lib/internal/plugins/SendMessage/SendMessage.d.ts.map +1 -0
- package/lib/internal/{communication → plugins/SendMessage}/SendMessage.js +1 -2
- package/lib/internal/plugins/SendMessage/SendMessage.js.map +1 -0
- package/lib/internal/plugins/SendMessage/SendMessageOperation.d.ts.map +1 -0
- package/lib/internal/plugins/SendMessage/SendMessageOperation.js.map +1 -0
- package/lib/internal/plugins/SendMessage/index.d.ts +6 -0
- package/lib/internal/plugins/SendMessage/index.d.ts.map +1 -0
- package/lib/internal/plugins/SendMessage/index.js +5 -0
- package/lib/internal/plugins/SendMessage/index.js.map +1 -0
- package/lib/internal/plugins/index.d.ts +5 -0
- package/lib/internal/plugins/index.d.ts.map +1 -0
- package/lib/internal/plugins/index.js +5 -0
- package/lib/internal/plugins/index.js.map +1 -0
- package/lib/telemetry/Logger.types.d.ts +1 -1
- package/lib/telemetry/Logger.types.d.ts.map +1 -1
- package/lib/telemetry/LoggerManager.d.ts +2 -2
- package/lib/telemetry/LoggerManager.d.ts.map +1 -1
- package/lib/telemetry/LoggerManager.js +2 -2
- package/lib/telemetry/LoggerManager.js.map +1 -1
- package/lib/telemetry/Metrics.types.d.ts +4 -18
- package/lib/telemetry/Metrics.types.d.ts.map +1 -1
- package/lib/telemetry/Performance.d.ts +1 -1
- package/lib/telemetry/Performance.d.ts.map +1 -1
- package/lib/telemetry/Performance.js +1 -1
- package/lib/telemetry/Performance.js.map +1 -1
- package/lib/telemetry/index.d.ts +3 -1
- package/lib/telemetry/index.d.ts.map +1 -1
- package/lib/telemetry/index.js +4 -1
- package/lib/telemetry/index.js.map +1 -1
- package/package.json +14 -1
- package/lib/__tests__/connectorDataOperation.spec.d.ts.map +0 -1
- package/lib/__tests__/connectorDataOperation.spec.js.map +0 -1
- package/lib/__tests__/dataverseDataOperation.spec.d.ts.map +0 -1
- package/lib/__tests__/dataverseDataOperation.spec.js.map +0 -1
- package/lib/app/Lifecycle.d.ts +0 -9
- package/lib/app/Lifecycle.d.ts.map +0 -1
- package/lib/app/Lifecycle.js +0 -36
- package/lib/app/Lifecycle.js.map +0 -1
- package/lib/internal/communication/CompatibleMessageReceiver.d.ts.map +0 -1
- package/lib/internal/communication/CompatibleMessageReceiver.js.map +0 -1
- package/lib/internal/communication/IncompatibleMessageReceiver.d.ts.map +0 -1
- package/lib/internal/communication/IncompatibleMessageReceiver.js.map +0 -1
- package/lib/internal/communication/MessageReceiver.Types.d.ts.map +0 -1
- package/lib/internal/communication/MessageReceiver.Types.js.map +0 -1
- package/lib/internal/communication/SendMessage.d.ts.map +0 -1
- package/lib/internal/communication/SendMessage.js.map +0 -1
- package/lib/internal/communication/SendMessageOperation.d.ts.map +0 -1
- package/lib/internal/communication/SendMessageOperation.js.map +0 -1
- package/lib/internal/data/core/data/connectorDataOperation.d.ts.map +0 -1
- package/lib/internal/data/core/data/connectorDataOperation.js.map +0 -1
- package/lib/internal/data/core/data/dataverseDataOperation.d.ts.map +0 -1
- package/lib/internal/data/core/data/dataverseDataOperation.js +0 -508
- package/lib/internal/data/core/data/dataverseDataOperation.js.map +0 -1
- package/lib/internal/data/core/data/runtimeDataOperations.d.ts.map +0 -1
- package/lib/internal/data/core/data/runtimeDataOperations.js.map +0 -1
- package/lib/internal/data/core/runtime/initializeRuntime.d.ts +0 -13
- package/lib/internal/data/core/runtime/initializeRuntime.d.ts.map +0 -1
- package/lib/internal/data/core/runtime/initializeRuntime.js +0 -38
- package/lib/internal/data/core/runtime/initializeRuntime.js.map +0 -1
- package/lib/internal/plugin/PluginCommon.d.ts +0 -16
- package/lib/internal/plugin/PluginCommon.d.ts.map +0 -1
- package/lib/internal/plugin/PluginCommon.js +0 -114
- package/lib/internal/plugin/PluginCommon.js.map +0 -1
- package/lib/internal/plugin/PluginMobile.d.ts +0 -13
- package/lib/internal/plugin/PluginMobile.d.ts.map +0 -1
- package/lib/internal/plugin/PluginMobile.js +0 -109
- package/lib/internal/plugin/PluginMobile.js.map +0 -1
- /package/lib/internal/{communication → plugins/SendMessage}/CompatibleMessageReceiver.d.ts +0 -0
- /package/lib/internal/{communication → plugins/SendMessage}/IncompatibleMessageReceiver.d.ts +0 -0
- /package/lib/internal/{communication → plugins/SendMessage}/IncompatibleMessageReceiver.js +0 -0
- /package/lib/internal/{communication → plugins/SendMessage}/MessageReceiver.Types.d.ts +0 -0
- /package/lib/internal/{communication → plugins/SendMessage}/MessageReceiver.Types.js +0 -0
- /package/lib/internal/{communication → plugins/SendMessage}/SendMessageOperation.d.ts +0 -0
- /package/lib/internal/{communication → plugins/SendMessage}/SendMessageOperation.js +0 -0
package/README.md
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
# Power Apps client library
|
|
1
|
+
# Power Apps client library for code apps
|
|
2
2
|
|
|
3
|
-
This
|
|
3
|
+
The Power Apps client library for code apps allows users to bring Power Apps capabilities into their custom web apps built in a code-first IDE. You can develop your apps locally and run them in Power Platform. Build with popular frameworks (React, Vue, and others) while keeping full control over your UI and logic. This client library provides the following key features:
|
|
4
4
|
|
|
5
|
-
-
|
|
6
|
-
-
|
|
7
|
-
|
|
8
|
-
## Getting Started
|
|
9
|
-
|
|
10
|
-
Go to the [instructions](https://github.com/microsoft/PowerAppsCodeApps) to get samples, tutorials and more information about code apps.
|
|
5
|
+
- Access to Power Platform data sources and 1,500+ connectors, callable directly from JavaScript.
|
|
6
|
+
- Access to the app, user and host context.
|
|
7
|
+
- Access to more granular logs and custom events for app performance.
|
|
11
8
|
|
|
12
9
|
## Installation
|
|
13
10
|
|
|
@@ -17,27 +14,4 @@ npm install @microsoft/power-apps
|
|
|
17
14
|
|
|
18
15
|
## Usage
|
|
19
16
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
The following APIs and types are available:
|
|
23
|
-
|
|
24
|
-
```typescript
|
|
25
|
-
import { initialize } from '@microsoft/power-apps/app';
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Make sure the initialize API is the first thing your app calls. Failing to do so will result in the app failing to load. If data calls are made before initialize is completed this will cause the data retrieval to be unsuccessful.
|
|
29
|
-
|
|
30
|
-
```typescript
|
|
31
|
-
import {
|
|
32
|
-
createRecordAsync,
|
|
33
|
-
retrieveRecordAsync,
|
|
34
|
-
retrieveMultipleRecordsAsync,
|
|
35
|
-
updateRecordAsync,
|
|
36
|
-
deleteRecordAsync,
|
|
37
|
-
executeAsync,
|
|
38
|
-
type IOperationOptions,
|
|
39
|
-
type IOperationResult,
|
|
40
|
-
} from '@microsoft/power-apps/data';
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
This package works seamlessly with the Power Apps code generation tools to create strongly typed models and services. The code generator automatically creates TypeScript interfaces and service classes based on your data sources.
|
|
17
|
+
Power Apps code apps [official documentation](https://learn.microsoft.com/en-us/power-apps/developer/code-apps/).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultPowerAppsBridge.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/DefaultPowerAppsBridge.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jest-environment jsdom
|
|
3
|
+
*/
|
|
4
|
+
/*!
|
|
5
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
6
|
+
*/
|
|
7
|
+
import { afterEach, beforeEach, describe, expect, it, jest } from '@jest/globals';
|
|
8
|
+
import { DefaultPowerAppsBridge } from '../internal/plugins/DefaultPowerAppsBridge';
|
|
9
|
+
function createMockMessagePort() {
|
|
10
|
+
return {
|
|
11
|
+
onmessage: null,
|
|
12
|
+
postMessage: jest.fn(),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function createMockMessageChannel() {
|
|
16
|
+
return {
|
|
17
|
+
port1: createMockMessagePort(),
|
|
18
|
+
port2: createMockMessagePort(),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function MockMessageChannelConstructor() {
|
|
22
|
+
const channel = createMockMessageChannel();
|
|
23
|
+
this.port1 = channel.port1;
|
|
24
|
+
this.port2 = channel.port2;
|
|
25
|
+
}
|
|
26
|
+
describe('DefaultPowerAppsBridge', () => {
|
|
27
|
+
let originalMessageChannel;
|
|
28
|
+
let dateNowSpy;
|
|
29
|
+
let parentPostMessage;
|
|
30
|
+
beforeEach(() => {
|
|
31
|
+
// Stable instance id
|
|
32
|
+
dateNowSpy = jest.spyOn(Date, 'now').mockReturnValue(12345);
|
|
33
|
+
// Capture and override MessageChannel for deterministic ports
|
|
34
|
+
originalMessageChannel = window.MessageChannel;
|
|
35
|
+
Object.defineProperty(window, 'MessageChannel', {
|
|
36
|
+
value: MockMessageChannelConstructor,
|
|
37
|
+
configurable: true,
|
|
38
|
+
writable: true,
|
|
39
|
+
});
|
|
40
|
+
// Provide a controllable window.parent.postMessage
|
|
41
|
+
parentPostMessage = jest.fn();
|
|
42
|
+
Object.defineProperty(window, 'parent', {
|
|
43
|
+
value: { postMessage: parentPostMessage },
|
|
44
|
+
configurable: true,
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
afterEach(() => {
|
|
48
|
+
dateNowSpy.mockRestore();
|
|
49
|
+
if (originalMessageChannel) {
|
|
50
|
+
Object.defineProperty(window, 'MessageChannel', {
|
|
51
|
+
value: originalMessageChannel,
|
|
52
|
+
configurable: true,
|
|
53
|
+
writable: true,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
jest.clearAllMocks();
|
|
57
|
+
});
|
|
58
|
+
it('initialize should set port1.onmessage and post initCommunicationWithPort with port2 transferred', async () => {
|
|
59
|
+
const bridge = new DefaultPowerAppsBridge();
|
|
60
|
+
const messageChannel = bridge._messageChannel;
|
|
61
|
+
expect(messageChannel.port1.onmessage).toBeNull();
|
|
62
|
+
await bridge.initialize();
|
|
63
|
+
expect(typeof messageChannel.port1.onmessage).toBe('function');
|
|
64
|
+
expect(parentPostMessage).toHaveBeenCalledTimes(1);
|
|
65
|
+
expect(parentPostMessage).toHaveBeenCalledWith({
|
|
66
|
+
messageType: 'initCommunicationWithPort',
|
|
67
|
+
instanceId: '12345',
|
|
68
|
+
}, '*', [messageChannel.port2]);
|
|
69
|
+
});
|
|
70
|
+
it('executePluginAsync should queue messages until initCommunication is received, then backfill csrf token and flush', async () => {
|
|
71
|
+
const bridge = new DefaultPowerAppsBridge();
|
|
72
|
+
const messageChannel = bridge._messageChannel;
|
|
73
|
+
// Trigger a plugin call before communication is initialized
|
|
74
|
+
const promise = bridge.executePluginAsync('Foo', 'Bar', [1]);
|
|
75
|
+
const queue = bridge
|
|
76
|
+
._postMessageQueue;
|
|
77
|
+
expect(queue).toHaveLength(1);
|
|
78
|
+
expect(queue[0]).toEqual(expect.objectContaining({
|
|
79
|
+
isPluginCall: true,
|
|
80
|
+
callbackId: 'instanceId=12345_Foo0',
|
|
81
|
+
service: 'Foo',
|
|
82
|
+
action: 'Bar',
|
|
83
|
+
actionArgs: [1],
|
|
84
|
+
antiCSRFToken: undefined,
|
|
85
|
+
}));
|
|
86
|
+
// Wire handler like real initialize does
|
|
87
|
+
await bridge.initialize();
|
|
88
|
+
const onmessage = messageChannel.port1.onmessage;
|
|
89
|
+
expect(onmessage).not.toBeNull();
|
|
90
|
+
// Init communication from host should cause the queue to flush, with token backfilled
|
|
91
|
+
onmessage({
|
|
92
|
+
data: { messageType: 'initCommunication', antiCSRFToken: 'token-1' },
|
|
93
|
+
});
|
|
94
|
+
expect(messageChannel.port1.postMessage).toHaveBeenCalledTimes(1);
|
|
95
|
+
expect(messageChannel.port1.postMessage).toHaveBeenCalledWith(expect.objectContaining({
|
|
96
|
+
callbackId: 'instanceId=12345_Foo0',
|
|
97
|
+
antiCSRFToken: 'token-1',
|
|
98
|
+
}));
|
|
99
|
+
// Now simulate the plugin response
|
|
100
|
+
onmessage({
|
|
101
|
+
data: {
|
|
102
|
+
isPluginCall: true,
|
|
103
|
+
callbackId: 'instanceId=12345_Foo0',
|
|
104
|
+
status: 1,
|
|
105
|
+
args: ['ok'],
|
|
106
|
+
keepCallback: false,
|
|
107
|
+
},
|
|
108
|
+
});
|
|
109
|
+
await expect(promise).resolves.toBe('ok');
|
|
110
|
+
const callbacks = bridge._callbacks;
|
|
111
|
+
expect(callbacks['instanceId=12345_Foo0']).toBeUndefined();
|
|
112
|
+
});
|
|
113
|
+
it('executePluginAsync should call onUpdate when keepCallback=true and resolve later when keepCallback=false', async () => {
|
|
114
|
+
const bridge = new DefaultPowerAppsBridge();
|
|
115
|
+
const messageChannel = bridge._messageChannel;
|
|
116
|
+
await bridge.initialize();
|
|
117
|
+
const onUpdate = jest.fn();
|
|
118
|
+
const promise = bridge.executePluginAsync('Foo', 'Stream', [], onUpdate);
|
|
119
|
+
const onmessage = messageChannel.port1.onmessage;
|
|
120
|
+
// Establish communication (also sets _postMessageSource)
|
|
121
|
+
onmessage({
|
|
122
|
+
data: { messageType: 'initCommunication', antiCSRFToken: 'token-2' },
|
|
123
|
+
});
|
|
124
|
+
// First update
|
|
125
|
+
onmessage({
|
|
126
|
+
data: {
|
|
127
|
+
isPluginCall: true,
|
|
128
|
+
callbackId: 'instanceId=12345_Foo0',
|
|
129
|
+
status: 1,
|
|
130
|
+
args: ['progress-1'],
|
|
131
|
+
keepCallback: true,
|
|
132
|
+
},
|
|
133
|
+
});
|
|
134
|
+
expect(onUpdate).toHaveBeenCalledTimes(1);
|
|
135
|
+
expect(onUpdate).toHaveBeenCalledWith('progress-1');
|
|
136
|
+
// Final completion
|
|
137
|
+
onmessage({
|
|
138
|
+
data: {
|
|
139
|
+
isPluginCall: true,
|
|
140
|
+
callbackId: 'instanceId=12345_Foo0',
|
|
141
|
+
status: 1,
|
|
142
|
+
args: ['final'],
|
|
143
|
+
keepCallback: false,
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
await expect(promise).resolves.toBe('final');
|
|
147
|
+
const callbacks = bridge._callbacks;
|
|
148
|
+
expect(callbacks['instanceId=12345_Foo0']).toBeUndefined();
|
|
149
|
+
});
|
|
150
|
+
it('executePluginAsync should reject when host returns non-zero non-success status', async () => {
|
|
151
|
+
const bridge = new DefaultPowerAppsBridge();
|
|
152
|
+
const messageChannel = bridge._messageChannel;
|
|
153
|
+
await bridge.initialize();
|
|
154
|
+
const promise = bridge.executePluginAsync('Foo', 'Fail');
|
|
155
|
+
const onmessage = messageChannel.port1.onmessage;
|
|
156
|
+
onmessage({
|
|
157
|
+
data: { messageType: 'initCommunication', antiCSRFToken: 'token-3' },
|
|
158
|
+
});
|
|
159
|
+
onmessage({
|
|
160
|
+
data: {
|
|
161
|
+
isPluginCall: true,
|
|
162
|
+
callbackId: 'instanceId=12345_Foo0',
|
|
163
|
+
status: 2,
|
|
164
|
+
args: ['err'],
|
|
165
|
+
keepCallback: false,
|
|
166
|
+
},
|
|
167
|
+
});
|
|
168
|
+
await expect(promise).rejects.toEqual(['err']);
|
|
169
|
+
const callbacks = bridge._callbacks;
|
|
170
|
+
expect(callbacks['instanceId=12345_Foo0']).toBeUndefined();
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
//# sourceMappingURL=DefaultPowerAppsBridge.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultPowerAppsBridge.test.js","sourceRoot":"","sources":["../../src/__tests__/DefaultPowerAppsBridge.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectorDataOperationExecutor.spec.d.ts","sourceRoot":"","sources":["../../src/__tests__/connectorDataOperationExecutor.spec.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/lib/__tests__/{connectorDataOperation.spec.js → connectorDataOperationExecutor.spec.js}
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { ConnectorDataOperationExecutor } from '../internal/data/core/data/executors/connectorDataOperationExecutor';
|
|
5
5
|
import { DataOperationErrorMessages, ErrorCodes, ErrorMessages } from '../internal/data/core/error/error';
|
|
6
6
|
import { getMockClientProvider, getMockConnectionsService, getMockDataClient, getMockMetadataClient, suppressConsoleErrorTelemetryLogger, } from './helpers/testHelpers';
|
|
7
7
|
import { expect } from '@jest/globals';
|
|
8
|
-
describe('
|
|
8
|
+
describe('ConnectorDataOperationExecutor', () => {
|
|
9
9
|
let clientProvider;
|
|
10
10
|
let connectionsService;
|
|
11
11
|
let dataClient;
|
|
@@ -79,7 +79,7 @@ describe('ConnectorDataOperation', () => {
|
|
|
79
79
|
});
|
|
80
80
|
it('should retrieve a record', async () => {
|
|
81
81
|
const id = '1';
|
|
82
|
-
const options =
|
|
82
|
+
const options = {};
|
|
83
83
|
const result = await instance.retrieveRecordAsync(tableName, id, options);
|
|
84
84
|
expect(result.success).toBe(true);
|
|
85
85
|
expect(dataClient.retrieveDataAsync).toHaveBeenCalledWith(expect.stringContaining('https://runtime'), connectionReference.apiId, tableName, 'GET', undefined, expect.objectContaining({ operationName: 'connectorDataOperation.retrieveRecordAsync' }));
|
|
@@ -133,10 +133,10 @@ describe('ConnectorDataOperation', () => {
|
|
|
133
133
|
});
|
|
134
134
|
describe('Error Handling', () => {
|
|
135
135
|
it('should throw if constructed with missing clientProvider', () => {
|
|
136
|
-
expect(() => new
|
|
136
|
+
expect(() => new ConnectorDataOperationExecutor(undefined, connectionsService)).toThrow(ErrorMessages[ErrorCodes.ClientProviderNotAvailable]);
|
|
137
137
|
});
|
|
138
138
|
it('should throw if constructed with missing connectionsService', () => {
|
|
139
|
-
expect(() => new
|
|
139
|
+
expect(() => new ConnectorDataOperationExecutor(clientProvider, undefined)).toThrow(ErrorMessages[ErrorCodes.DataSourceServiceNotAvailable]);
|
|
140
140
|
});
|
|
141
141
|
it('should handle error from data client', async () => {
|
|
142
142
|
dataClient.createDataAsync.mockRejectedValue(new Error('fail'));
|
|
@@ -149,7 +149,7 @@ describe('ConnectorDataOperation', () => {
|
|
|
149
149
|
});
|
|
150
150
|
});
|
|
151
151
|
describe('_buildOperationBodyParam', () => {
|
|
152
|
-
it('should
|
|
152
|
+
it('should use the body parameter value directly without wrapping', async () => {
|
|
153
153
|
// Arrange
|
|
154
154
|
const testInstance = new TestableConnectorDataOperation(clientProvider, connectionsService);
|
|
155
155
|
const testOperationName = 'customOp';
|
|
@@ -157,8 +157,6 @@ describe('ConnectorDataOperation', () => {
|
|
|
157
157
|
const apiParams = [
|
|
158
158
|
{ name: 'connectionId', in: 'path', required: true },
|
|
159
159
|
{ name: 'body', in: 'body', required: true },
|
|
160
|
-
{ name: 'foo-bar', in: 'body', required: false },
|
|
161
|
-
{ name: 'baz_param', in: 'body', required: false },
|
|
162
160
|
];
|
|
163
161
|
const testDataSourceInfo = {
|
|
164
162
|
tableId: 'tid',
|
|
@@ -168,12 +166,9 @@ describe('ConnectorDataOperation', () => {
|
|
|
168
166
|
},
|
|
169
167
|
};
|
|
170
168
|
connectionsService.getDataSource.mockResolvedValue(testDataSourceInfo);
|
|
171
|
-
// The rawParams object uses both hyphens and underscores
|
|
172
169
|
const parameters = {
|
|
173
170
|
connectionId: '123',
|
|
174
171
|
body: { a: 1, b: 2 },
|
|
175
|
-
foo_bar: 42,
|
|
176
|
-
'baz-param': 'hello',
|
|
177
172
|
};
|
|
178
173
|
const operation = {
|
|
179
174
|
connectorOperation: {
|
|
@@ -184,12 +179,88 @@ describe('ConnectorDataOperation', () => {
|
|
|
184
179
|
};
|
|
185
180
|
// Act
|
|
186
181
|
const result = await testInstance.buildOperationBodyParam(operation, testTableName);
|
|
187
|
-
// Assert
|
|
182
|
+
// Assert - body value should be used directly, not wrapped
|
|
188
183
|
expect(JSON.parse(result)).toEqual({
|
|
189
184
|
a: 1,
|
|
190
185
|
b: 2,
|
|
191
186
|
});
|
|
192
187
|
});
|
|
188
|
+
it('should use body parameter value directly regardless of parameter name', async () => {
|
|
189
|
+
// Arrange
|
|
190
|
+
const testInstance = new TestableConnectorDataOperation(clientProvider, connectionsService);
|
|
191
|
+
const testOperationName = 'CreateWorkItem';
|
|
192
|
+
const testTableName = 'AzureDevOps';
|
|
193
|
+
const apiParams = [
|
|
194
|
+
{ name: 'connectionId', in: 'path', required: true },
|
|
195
|
+
{ name: 'account', in: 'query', required: true },
|
|
196
|
+
{ name: 'workItem', in: 'body', required: true },
|
|
197
|
+
];
|
|
198
|
+
const testDataSourceInfo = {
|
|
199
|
+
tableId: 'tid',
|
|
200
|
+
version: 'v1',
|
|
201
|
+
apis: {
|
|
202
|
+
[testOperationName]: { parameters: apiParams },
|
|
203
|
+
},
|
|
204
|
+
};
|
|
205
|
+
connectionsService.getDataSource.mockResolvedValue(testDataSourceInfo);
|
|
206
|
+
const parameters = {
|
|
207
|
+
connectionId: '123',
|
|
208
|
+
account: 'myorg',
|
|
209
|
+
workItem: { title: 'My Task', description: 'Task description' },
|
|
210
|
+
};
|
|
211
|
+
const operation = {
|
|
212
|
+
connectorOperation: {
|
|
213
|
+
tableName: testTableName,
|
|
214
|
+
operationName: testOperationName,
|
|
215
|
+
parameters,
|
|
216
|
+
},
|
|
217
|
+
};
|
|
218
|
+
// Act
|
|
219
|
+
const result = await testInstance.buildOperationBodyParam(operation, testTableName);
|
|
220
|
+
// Assert - workItem value should be used directly, NOT wrapped as { workItem: {...} }
|
|
221
|
+
expect(JSON.parse(result)).toEqual({
|
|
222
|
+
title: 'My Task',
|
|
223
|
+
description: 'Task description',
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
it('should use body parameter named "parameters" directly for Azure DevOps HttpRequest', async () => {
|
|
227
|
+
// Arrange - simulates Azure DevOps HttpRequest endpoint
|
|
228
|
+
const testInstance = new TestableConnectorDataOperation(clientProvider, connectionsService);
|
|
229
|
+
const testOperationName = 'HttpRequest';
|
|
230
|
+
const testTableName = 'AzureDevOps';
|
|
231
|
+
const apiParams = [
|
|
232
|
+
{ name: 'connectionId', in: 'path', required: true },
|
|
233
|
+
{ name: 'account', in: 'query', required: true },
|
|
234
|
+
{ name: 'parameters', in: 'body', required: true },
|
|
235
|
+
];
|
|
236
|
+
const testDataSourceInfo = {
|
|
237
|
+
tableId: 'tid',
|
|
238
|
+
version: 'v1',
|
|
239
|
+
apis: {
|
|
240
|
+
[testOperationName]: { parameters: apiParams },
|
|
241
|
+
},
|
|
242
|
+
};
|
|
243
|
+
connectionsService.getDataSource.mockResolvedValue(testDataSourceInfo);
|
|
244
|
+
const parameters = {
|
|
245
|
+
connectionId: '123',
|
|
246
|
+
account: 'msazure',
|
|
247
|
+
parameters: { Method: 'GET', Uri: '/_apis/projects?api-version=7.0' },
|
|
248
|
+
};
|
|
249
|
+
const operation = {
|
|
250
|
+
connectorOperation: {
|
|
251
|
+
tableName: testTableName,
|
|
252
|
+
operationName: testOperationName,
|
|
253
|
+
parameters,
|
|
254
|
+
},
|
|
255
|
+
};
|
|
256
|
+
// Act
|
|
257
|
+
const result = await testInstance.buildOperationBodyParam(operation, testTableName);
|
|
258
|
+
// Assert - parameters value should be used directly, NOT wrapped as { parameters: {...} }
|
|
259
|
+
expect(JSON.parse(result)).toEqual({
|
|
260
|
+
Method: 'GET',
|
|
261
|
+
Uri: '/_apis/projects?api-version=7.0',
|
|
262
|
+
});
|
|
263
|
+
});
|
|
193
264
|
});
|
|
194
265
|
describe('_getNormalizedParamValue', () => {
|
|
195
266
|
let testInstance;
|
|
@@ -243,7 +314,7 @@ describe('ConnectorDataOperation', () => {
|
|
|
243
314
|
});
|
|
244
315
|
});
|
|
245
316
|
// Helper subclass to expose protected/private methods for testing
|
|
246
|
-
class TestableConnectorDataOperation extends
|
|
317
|
+
class TestableConnectorDataOperation extends ConnectorDataOperationExecutor {
|
|
247
318
|
buildStandardOperationUrl(operation, config, operationName, path) {
|
|
248
319
|
// @ts-expect-error: Accessing private method for testing
|
|
249
320
|
return this._buildStandardOperationUrl(operation, config, operationName, path);
|
|
@@ -275,6 +346,8 @@ describe('ConnectorDataOperation', () => {
|
|
|
275
346
|
[testOperationName]: {
|
|
276
347
|
parameters: [
|
|
277
348
|
{ name: 'connectionId', in: 'path', required: true },
|
|
349
|
+
{ name: 'dataset', in: 'path', required: true },
|
|
350
|
+
{ name: 'tableName', in: 'path', required: true },
|
|
278
351
|
{ name: 'foo-bar', in: 'query', required: false },
|
|
279
352
|
{ name: 'baz_param', in: 'query', required: false },
|
|
280
353
|
],
|
|
@@ -286,7 +359,7 @@ describe('ConnectorDataOperation', () => {
|
|
|
286
359
|
it('maps string operationParams', async () => {
|
|
287
360
|
const operation = { connectorOperation: { parameters: 'abc', operationName: testOperationName } };
|
|
288
361
|
const url = await testInstance.buildStandardOperationUrl(operation, testConfig, testOperationName, testPath);
|
|
289
|
-
expect(url).
|
|
362
|
+
expect(url).toMatchInlineSnapshot(`"https://runtime/op?foo-bar=abc"`);
|
|
290
363
|
});
|
|
291
364
|
it('maps object operationParams with normalization', async () => {
|
|
292
365
|
const operation = {
|
|
@@ -299,6 +372,17 @@ describe('ConnectorDataOperation', () => {
|
|
|
299
372
|
expect(url).toContain('foo-bar=1');
|
|
300
373
|
expect(url).toContain('baz_param=2');
|
|
301
374
|
});
|
|
375
|
+
it('always maps connectionId, dataset, and tableName', async () => {
|
|
376
|
+
const pathTemplate = '/connections/{connectionId}/datasets/{dataset}/tables/{tableName}/items';
|
|
377
|
+
const operation = {
|
|
378
|
+
connectorOperation: {
|
|
379
|
+
parameters: {},
|
|
380
|
+
operationName: testOperationName,
|
|
381
|
+
},
|
|
382
|
+
};
|
|
383
|
+
const url = await testInstance.buildStandardOperationUrl(operation, testConfig, testOperationName, pathTemplate);
|
|
384
|
+
expect(url).toMatchInlineSnapshot(`"https://runtime/connections/connName/datasets/ds/tables/TestTable/items"`);
|
|
385
|
+
});
|
|
302
386
|
});
|
|
303
387
|
describe('Connector header parameter handling', () => {
|
|
304
388
|
const operationName = 'testOp';
|
|
@@ -506,4 +590,4 @@ describe('ConnectorDataOperation', () => {
|
|
|
506
590
|
});
|
|
507
591
|
});
|
|
508
592
|
});
|
|
509
|
-
//# sourceMappingURL=
|
|
593
|
+
//# sourceMappingURL=connectorDataOperationExecutor.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectorDataOperationExecutor.spec.js","sourceRoot":"","sources":["../../src/__tests__/connectorDataOperationExecutor.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataverseDataOperationExecutor.spec.d.ts","sourceRoot":"","sources":["../../src/__tests__/dataverseDataOperationExecutor.spec.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|