@microsoft/power-apps-cli 0.6.0 → 0.6.4
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/lib/ArgumentProvider.d.ts.map +1 -1
- package/lib/ArgumentProvider.js +11 -7
- package/lib/ArgumentProvider.js.map +1 -1
- package/lib/Authentication/NodeMsalAuthenticationProvider.d.ts +4 -1
- package/lib/Authentication/NodeMsalAuthenticationProvider.d.ts.map +1 -1
- package/lib/Authentication/NodeMsalAuthenticationProvider.js +5 -1
- package/lib/Authentication/NodeMsalAuthenticationProvider.js.map +1 -1
- package/lib/Authentication/PacCliAuthenticationProvider.d.ts +2 -1
- package/lib/Authentication/PacCliAuthenticationProvider.d.ts.map +1 -1
- package/lib/Authentication/PacCliAuthenticationProvider.js +1 -1
- package/lib/Authentication/PacCliAuthenticationProvider.js.map +1 -1
- package/lib/Authentication/ServicePrincipalAuthenticationProvider.d.ts +3 -1
- package/lib/Authentication/ServicePrincipalAuthenticationProvider.d.ts.map +1 -1
- package/lib/Authentication/ServicePrincipalAuthenticationProvider.js +4 -2
- package/lib/Authentication/ServicePrincipalAuthenticationProvider.js.map +1 -1
- package/lib/Cli.d.ts.map +1 -1
- package/lib/Cli.js +1 -2
- package/lib/Cli.js.map +1 -1
- package/lib/CliUtils.d.ts +1 -1
- package/lib/CliUtils.d.ts.map +1 -1
- package/lib/CliUtils.js +36 -9
- package/lib/CliUtils.js.map +1 -1
- package/lib/HttpClient/CliHttpClient.d.ts.map +1 -1
- package/lib/HttpClient/CliHttpClient.js +2 -1
- package/lib/HttpClient/CliHttpClient.js.map +1 -1
- package/lib/Types/Cli.types.d.ts +2 -1
- package/lib/Types/Cli.types.d.ts.map +1 -1
- package/lib/Utils/EnhanceNetworkError.d.ts +14 -0
- package/lib/Utils/EnhanceNetworkError.d.ts.map +1 -0
- package/lib/Utils/EnhanceNetworkError.js +59 -0
- package/lib/Utils/EnhanceNetworkError.js.map +1 -0
- package/lib/Verbs/Init.d.ts.map +1 -1
- package/lib/Verbs/Init.js +3 -0
- package/lib/Verbs/Init.js.map +1 -1
- package/lib/__tests__/E2eTests/basicSetup/loggingConfiguration.test.d.ts +5 -0
- package/lib/__tests__/E2eTests/basicSetup/loggingConfiguration.test.d.ts.map +1 -0
- package/lib/__tests__/E2eTests/basicSetup/loggingConfiguration.test.js +246 -0
- package/lib/__tests__/E2eTests/basicSetup/loggingConfiguration.test.js.map +1 -0
- package/lib/__tests__/E2eTests/cliUsability/cliHelp.test.d.ts +5 -0
- package/lib/__tests__/E2eTests/cliUsability/cliHelp.test.d.ts.map +1 -0
- package/lib/__tests__/E2eTests/cliUsability/cliHelp.test.js +162 -0
- package/lib/__tests__/E2eTests/cliUsability/cliHelp.test.js.map +1 -0
- package/lib/__tests__/E2eTests/cliUsability/logoutReauth.test.d.ts +5 -0
- package/lib/__tests__/E2eTests/cliUsability/logoutReauth.test.d.ts.map +1 -0
- package/lib/__tests__/E2eTests/cliUsability/logoutReauth.test.js +115 -0
- package/lib/__tests__/E2eTests/cliUsability/logoutReauth.test.js.map +1 -0
- package/lib/__tests__/E2eTests/cliUsability/missingParameters.test.d.ts +5 -0
- package/lib/__tests__/E2eTests/cliUsability/missingParameters.test.d.ts.map +1 -0
- package/lib/__tests__/E2eTests/cliUsability/missingParameters.test.js +189 -0
- package/lib/__tests__/E2eTests/cliUsability/missingParameters.test.js.map +1 -0
- package/lib/__tests__/E2eTests/commonUserWorkflowSmokeTest.test.js +8 -6
- package/lib/__tests__/E2eTests/commonUserWorkflowSmokeTest.test.js.map +1 -1
- package/lib/__tests__/E2eTests/e2eConfig.d.ts +95 -0
- package/lib/__tests__/E2eTests/e2eConfig.d.ts.map +1 -0
- package/lib/__tests__/E2eTests/e2eConfig.js +122 -0
- package/lib/__tests__/E2eTests/e2eConfig.js.map +1 -0
- package/lib/__tests__/UnitTests/CliUtils.spec.d.ts +5 -0
- package/lib/__tests__/UnitTests/CliUtils.spec.d.ts.map +1 -0
- package/lib/__tests__/UnitTests/CliUtils.spec.js +94 -0
- package/lib/__tests__/UnitTests/CliUtils.spec.js.map +1 -0
- package/lib/__tests__/UnitTests/ServicePrincipalAuthenticationProvider.spec.js +3 -3
- package/lib/__tests__/UnitTests/ServicePrincipalAuthenticationProvider.spec.js.map +1 -1
- package/lib/__tests__/UnitTests/enhanceNetworkError.test.d.ts +5 -0
- package/lib/__tests__/UnitTests/enhanceNetworkError.test.d.ts.map +1 -0
- package/lib/__tests__/UnitTests/enhanceNetworkError.test.js +177 -0
- package/lib/__tests__/UnitTests/enhanceNetworkError.test.js.map +1 -0
- package/lib/__tests__/helpers/e2eTestHelpers.d.ts.map +1 -1
- package/lib/__tests__/helpers/e2eTestHelpers.js +16 -0
- package/lib/__tests__/helpers/e2eTestHelpers.js.map +1 -1
- package/lib/__tests__/helpers/testHelpers.d.ts +146 -30
- package/lib/__tests__/helpers/testHelpers.d.ts.map +1 -1
- package/lib/__tests__/helpers/testHelpers.js +245 -74
- package/lib/__tests__/helpers/testHelpers.js.map +1 -1
- package/lib-cjs/ArgumentProvider.d.ts.map +1 -1
- package/lib-cjs/ArgumentProvider.js +7 -1
- package/lib-cjs/ArgumentProvider.js.map +1 -1
- package/lib-cjs/Authentication/NodeMsalAuthenticationProvider.d.ts +4 -1
- package/lib-cjs/Authentication/NodeMsalAuthenticationProvider.d.ts.map +1 -1
- package/lib-cjs/Authentication/NodeMsalAuthenticationProvider.js +4 -1
- package/lib-cjs/Authentication/NodeMsalAuthenticationProvider.js.map +1 -1
- package/lib-cjs/Authentication/PacCliAuthenticationProvider.d.ts +2 -1
- package/lib-cjs/Authentication/PacCliAuthenticationProvider.d.ts.map +1 -1
- package/lib-cjs/Authentication/PacCliAuthenticationProvider.js +1 -1
- package/lib-cjs/Authentication/PacCliAuthenticationProvider.js.map +1 -1
- package/lib-cjs/Authentication/ServicePrincipalAuthenticationProvider.d.ts +3 -1
- package/lib-cjs/Authentication/ServicePrincipalAuthenticationProvider.d.ts.map +1 -1
- package/lib-cjs/Authentication/ServicePrincipalAuthenticationProvider.js +4 -2
- package/lib-cjs/Authentication/ServicePrincipalAuthenticationProvider.js.map +1 -1
- package/lib-cjs/Cli.d.ts.map +1 -1
- package/lib-cjs/Cli.js +14 -18
- package/lib-cjs/Cli.js.map +1 -1
- package/lib-cjs/CliUtils.d.ts +1 -1
- package/lib-cjs/CliUtils.d.ts.map +1 -1
- package/lib-cjs/CliUtils.js +38 -11
- package/lib-cjs/CliUtils.js.map +1 -1
- package/lib-cjs/HttpClient/CliHttpClient.d.ts.map +1 -1
- package/lib-cjs/HttpClient/CliHttpClient.js +2 -1
- package/lib-cjs/HttpClient/CliHttpClient.js.map +1 -1
- package/lib-cjs/Types/Cli.types.d.ts +2 -1
- package/lib-cjs/Types/Cli.types.d.ts.map +1 -1
- package/lib-cjs/Utils/EnhanceNetworkError.d.ts +13 -0
- package/lib-cjs/Utils/EnhanceNetworkError.d.ts.map +1 -0
- package/lib-cjs/Utils/EnhanceNetworkError.js +63 -0
- package/lib-cjs/Utils/EnhanceNetworkError.js.map +1 -0
- package/lib-cjs/Verbs/Init.d.ts.map +1 -1
- package/lib-cjs/Verbs/Init.js +4 -0
- package/lib-cjs/Verbs/Init.js.map +1 -1
- package/lib-cjs/__tests__/E2eTests/basicSetup/loggingConfiguration.test.d.ts +4 -0
- package/lib-cjs/__tests__/E2eTests/basicSetup/loggingConfiguration.test.d.ts.map +1 -0
- package/lib-cjs/__tests__/E2eTests/basicSetup/loggingConfiguration.test.js +271 -0
- package/lib-cjs/__tests__/E2eTests/basicSetup/loggingConfiguration.test.js.map +1 -0
- package/lib-cjs/__tests__/E2eTests/cliUsability/cliHelp.test.d.ts +4 -0
- package/lib-cjs/__tests__/E2eTests/cliUsability/cliHelp.test.d.ts.map +1 -0
- package/lib-cjs/__tests__/E2eTests/cliUsability/cliHelp.test.js +187 -0
- package/lib-cjs/__tests__/E2eTests/cliUsability/cliHelp.test.js.map +1 -0
- package/lib-cjs/__tests__/E2eTests/cliUsability/logoutReauth.test.d.ts +4 -0
- package/lib-cjs/__tests__/E2eTests/cliUsability/logoutReauth.test.d.ts.map +1 -0
- package/lib-cjs/__tests__/E2eTests/cliUsability/logoutReauth.test.js +140 -0
- package/lib-cjs/__tests__/E2eTests/cliUsability/logoutReauth.test.js.map +1 -0
- package/lib-cjs/__tests__/E2eTests/cliUsability/missingParameters.test.d.ts +4 -0
- package/lib-cjs/__tests__/E2eTests/cliUsability/missingParameters.test.d.ts.map +1 -0
- package/lib-cjs/__tests__/E2eTests/cliUsability/missingParameters.test.js +191 -0
- package/lib-cjs/__tests__/E2eTests/cliUsability/missingParameters.test.js.map +1 -0
- package/lib-cjs/__tests__/E2eTests/commonUserWorkflowSmokeTest.test.js +5 -5
- package/lib-cjs/__tests__/E2eTests/commonUserWorkflowSmokeTest.test.js.map +1 -1
- package/lib-cjs/__tests__/E2eTests/e2eConfig.d.ts +94 -0
- package/lib-cjs/__tests__/E2eTests/e2eConfig.d.ts.map +1 -0
- package/lib-cjs/__tests__/E2eTests/e2eConfig.js +149 -0
- package/lib-cjs/__tests__/E2eTests/e2eConfig.js.map +1 -0
- package/lib-cjs/__tests__/UnitTests/CliUtils.spec.d.ts +4 -0
- package/lib-cjs/__tests__/UnitTests/CliUtils.spec.d.ts.map +1 -0
- package/lib-cjs/__tests__/UnitTests/CliUtils.spec.js +97 -0
- package/lib-cjs/__tests__/UnitTests/CliUtils.spec.js.map +1 -0
- package/lib-cjs/__tests__/UnitTests/ServicePrincipalAuthenticationProvider.spec.js +3 -3
- package/lib-cjs/__tests__/UnitTests/ServicePrincipalAuthenticationProvider.spec.js.map +1 -1
- package/lib-cjs/__tests__/UnitTests/enhanceNetworkError.test.d.ts +4 -0
- package/lib-cjs/__tests__/UnitTests/enhanceNetworkError.test.d.ts.map +1 -0
- package/lib-cjs/__tests__/UnitTests/enhanceNetworkError.test.js +179 -0
- package/lib-cjs/__tests__/UnitTests/enhanceNetworkError.test.js.map +1 -0
- package/lib-cjs/__tests__/helpers/e2eTestHelpers.d.ts.map +1 -1
- package/lib-cjs/__tests__/helpers/e2eTestHelpers.js +16 -0
- package/lib-cjs/__tests__/helpers/e2eTestHelpers.js.map +1 -1
- package/lib-cjs/__tests__/helpers/testHelpers.d.ts +146 -30
- package/lib-cjs/__tests__/helpers/testHelpers.d.ts.map +1 -1
- package/lib-cjs/__tests__/helpers/testHelpers.js +242 -98
- package/lib-cjs/__tests__/helpers/testHelpers.js.map +1 -1
- package/node_modules/@microsoft/powerapps-data/package.json +2 -2
- package/node_modules/@microsoft/powerapps-player-actions/lib/Actions/ListTables.d.ts +1 -1
- package/node_modules/@microsoft/powerapps-player-actions/lib/Actions/ListTables.d.ts.map +1 -1
- package/node_modules/@microsoft/powerapps-player-actions/lib/Actions/ListTables.js +11 -2
- package/node_modules/@microsoft/powerapps-player-actions/lib/Actions/ListTables.js.map +1 -1
- package/node_modules/@microsoft/powerapps-player-actions/lib/CodeGen/modelServiceGenerator.d.ts +10 -0
- package/node_modules/@microsoft/powerapps-player-actions/lib/CodeGen/modelServiceGenerator.d.ts.map +1 -1
- package/node_modules/@microsoft/powerapps-player-actions/lib/CodeGen/modelServiceGenerator.js +98 -36
- package/node_modules/@microsoft/powerapps-player-actions/lib/CodeGen/modelServiceGenerator.js.map +1 -1
- package/node_modules/@microsoft/powerapps-player-actions/lib/__tests__/ModelServiceGenerator.spec.js +16 -2
- package/node_modules/@microsoft/powerapps-player-actions/lib/__tests__/ModelServiceGenerator.spec.js.map +1 -1
- package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/Actions/ListTables.d.ts +1 -1
- package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/Actions/ListTables.d.ts.map +1 -1
- package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/Actions/ListTables.js +14 -5
- package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/Actions/ListTables.js.map +1 -1
- package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/CodeGen/modelServiceGenerator.d.ts +10 -0
- package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/CodeGen/modelServiceGenerator.d.ts.map +1 -1
- package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/CodeGen/modelServiceGenerator.js +139 -65
- package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/CodeGen/modelServiceGenerator.js.map +1 -1
- package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/__tests__/ModelServiceGenerator.spec.js +31 -1
- package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/__tests__/ModelServiceGenerator.spec.js.map +1 -1
- package/node_modules/@microsoft/powerapps-player-actions/package.json +2 -2
- package/node_modules/@pa-client/powerapps-player-services/lib/Services/Connectivity/__tests__/ApimService.spec.js +3 -0
- package/node_modules/@pa-client/powerapps-player-services/lib/Services/Connectivity/__tests__/ApimService.spec.js.map +1 -1
- package/node_modules/@pa-client/powerapps-player-services/lib/Services/PlayerLaunchService/PlayerLaunchService.types.d.ts +1 -0
- package/node_modules/@pa-client/powerapps-player-services/lib/Services/PlayerLaunchService/PlayerLaunchService.types.d.ts.map +1 -1
- package/node_modules/@pa-client/powerapps-player-services/lib-cjs/Services/Connectivity/__tests__/ApimService.spec.js +3 -0
- package/node_modules/@pa-client/powerapps-player-services/lib-cjs/Services/Connectivity/__tests__/ApimService.spec.js.map +1 -1
- package/node_modules/@pa-client/powerapps-player-services/lib-cjs/Services/PlayerLaunchService/PlayerLaunchService.types.d.ts +1 -0
- package/node_modules/@pa-client/powerapps-player-services/lib-cjs/Services/PlayerLaunchService/PlayerLaunchService.types.d.ts.map +1 -1
- package/node_modules/@pa-client/powerapps-player-services/package.json +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*!
|
|
3
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var globals_1 = require("@jest/globals");
|
|
7
|
+
var CliUtils_1 = require("../../CliUtils");
|
|
8
|
+
// Mock @clack/prompts
|
|
9
|
+
globals_1.jest.mock('@clack/prompts', function () { return ({
|
|
10
|
+
text: globals_1.jest.fn(),
|
|
11
|
+
}); });
|
|
12
|
+
(0, globals_1.describe)('CliUtils', function () {
|
|
13
|
+
(0, globals_1.beforeEach)(function () {
|
|
14
|
+
globals_1.jest.clearAllMocks();
|
|
15
|
+
});
|
|
16
|
+
(0, globals_1.describe)('createPlayUrl', function () {
|
|
17
|
+
var environmentId = 'env-12345';
|
|
18
|
+
var appId = 'app-67890';
|
|
19
|
+
(0, globals_1.it)('should create basic play URL without query parameters', function () {
|
|
20
|
+
var result = (0, CliUtils_1.createPlayUrl)('prod', environmentId, appId);
|
|
21
|
+
(0, globals_1.expect)(result).toBe('https://apps.powerapps.com/play/e/env-12345/app/app-67890');
|
|
22
|
+
});
|
|
23
|
+
(0, globals_1.it)('should create play URL with localAppUrl parameter', function () {
|
|
24
|
+
var localAppUrl = 'http://localhost:3000';
|
|
25
|
+
var result = (0, CliUtils_1.createPlayUrl)('prod', environmentId, appId, localAppUrl);
|
|
26
|
+
(0, globals_1.expect)(result).toBe('https://apps.powerapps.com/play/e/env-12345/app/app-67890?_localAppUrl=http://localhost:3000');
|
|
27
|
+
});
|
|
28
|
+
(0, globals_1.it)('should create play URL with localConnectionsUrl parameter', function () {
|
|
29
|
+
var localConnectionsUrl = 'http://localhost:4000';
|
|
30
|
+
var result = (0, CliUtils_1.createPlayUrl)('prod', environmentId, appId, undefined, localConnectionsUrl);
|
|
31
|
+
(0, globals_1.expect)(result).toBe('https://apps.powerapps.com/play/e/env-12345/app/app-67890?_localConnectionUrl=http://localhost:4000');
|
|
32
|
+
});
|
|
33
|
+
(0, globals_1.it)('should create play URL with both local parameters', function () {
|
|
34
|
+
var localAppUrl = 'http://localhost:3000';
|
|
35
|
+
var localConnectionsUrl = 'http://localhost:4000';
|
|
36
|
+
var result = (0, CliUtils_1.createPlayUrl)('prod', environmentId, appId, localAppUrl, localConnectionsUrl);
|
|
37
|
+
(0, globals_1.expect)(result).toBe('https://apps.powerapps.com/play/e/env-12345/app/app-67890?_localAppUrl=http://localhost:3000&_localConnectionUrl=http://localhost:4000');
|
|
38
|
+
});
|
|
39
|
+
(0, globals_1.it)('should work with different regions', function () {
|
|
40
|
+
var regions = [
|
|
41
|
+
{ region: 'dev', expectedBase: 'https://apps.dev.powerapps.com' },
|
|
42
|
+
{ region: 'test', expectedBase: 'https://apps.test.powerapps.com' },
|
|
43
|
+
{ region: 'preprod', expectedBase: 'https://apps.preprod.powerapps.com' },
|
|
44
|
+
{ region: 'preview', expectedBase: 'https://apps.preview.powerapps.com' },
|
|
45
|
+
{ region: 'prod', expectedBase: 'https://apps.powerapps.com' },
|
|
46
|
+
{ region: 'gccmoderate', expectedBase: 'https://apps.gov.powerapps.us' },
|
|
47
|
+
{ region: 'gcchigh', expectedBase: 'https://apps.high.powerapps.us' },
|
|
48
|
+
{ region: 'dod', expectedBase: 'https://play.apps.appsplatform.us' },
|
|
49
|
+
{ region: 'mooncake', expectedBase: 'https://apps.powerapps.cn' },
|
|
50
|
+
];
|
|
51
|
+
regions.forEach(function (_a) {
|
|
52
|
+
var region = _a.region, expectedBase = _a.expectedBase;
|
|
53
|
+
var result = (0, CliUtils_1.createPlayUrl)(region, environmentId, appId);
|
|
54
|
+
(0, globals_1.expect)(result).toBe("".concat(expectedBase, "/play/e/").concat(environmentId, "/app/").concat(appId));
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
(0, globals_1.it)('should handle unknown regions', function () {
|
|
58
|
+
var result = (0, CliUtils_1.createPlayUrl)('unknown', environmentId, appId);
|
|
59
|
+
(0, globals_1.expect)(result).toBe('/play/e/env-12345/app/app-67890');
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
(0, globals_1.describe)('getAuthority', function () {
|
|
63
|
+
var tenantId = 'tenant-123';
|
|
64
|
+
(0, globals_1.it)('should return correct authority for gcchigh region', function () {
|
|
65
|
+
var result = (0, CliUtils_1.getAuthority)('gcchigh', tenantId);
|
|
66
|
+
(0, globals_1.expect)(result).toBe('https://login.microsoftonline.us/tenant-123');
|
|
67
|
+
});
|
|
68
|
+
(0, globals_1.it)('should return correct authority for dod region', function () {
|
|
69
|
+
var result = (0, CliUtils_1.getAuthority)('dod', tenantId);
|
|
70
|
+
(0, globals_1.expect)(result).toBe('https://login.microsoftonline.us/tenant-123');
|
|
71
|
+
});
|
|
72
|
+
(0, globals_1.it)('should return correct authority for mooncake region', function () {
|
|
73
|
+
var result = (0, CliUtils_1.getAuthority)('mooncake', tenantId);
|
|
74
|
+
(0, globals_1.expect)(result).toBe('https://login.partner.microsoftonline.cn/tenant-123');
|
|
75
|
+
});
|
|
76
|
+
(0, globals_1.it)('should return default authority for other regions', function () {
|
|
77
|
+
var regions = ['prod', 'dev', 'test', 'preprod', 'preview', 'gccmoderate'];
|
|
78
|
+
regions.forEach(function (region) {
|
|
79
|
+
var result = (0, CliUtils_1.getAuthority)(region, tenantId);
|
|
80
|
+
(0, globals_1.expect)(result).toBe('https://login.microsoftonline.com/tenant-123');
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
(0, globals_1.it)('should return default authority for undefined region', function () {
|
|
84
|
+
var result = (0, CliUtils_1.getAuthority)(undefined, tenantId);
|
|
85
|
+
(0, globals_1.expect)(result).toBe('https://login.microsoftonline.com/tenant-123');
|
|
86
|
+
});
|
|
87
|
+
(0, globals_1.it)('should handle undefined tenantId', function () {
|
|
88
|
+
var result = (0, CliUtils_1.getAuthority)('prod', undefined);
|
|
89
|
+
(0, globals_1.expect)(result).toBe('https://login.microsoftonline.com/organizations');
|
|
90
|
+
});
|
|
91
|
+
(0, globals_1.it)('should handle both undefined region and tenantId', function () {
|
|
92
|
+
var result = (0, CliUtils_1.getAuthority)(undefined, undefined);
|
|
93
|
+
(0, globals_1.expect)(result).toBe('https://login.microsoftonline.com/organizations');
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=CliUtils.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliUtils.spec.js","sourceRoot":"","sources":["../../../src/__tests__/UnitTests/CliUtils.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -95,7 +95,7 @@ var MockedConfidentialClientApplication = msal_node_1.ConfidentialClientApplicat
|
|
|
95
95
|
switch (_a.label) {
|
|
96
96
|
case 0:
|
|
97
97
|
provider = new ServicePrincipalAuthenticationProvider_1.ServicePrincipalAuthenticationProvider();
|
|
98
|
-
return [4 /*yield*/, provider.initAsync()];
|
|
98
|
+
return [4 /*yield*/, provider.initAsync('prod')];
|
|
99
99
|
case 1:
|
|
100
100
|
_a.sent();
|
|
101
101
|
(0, globals_1.expect)(MockedConfidentialClientApplication).toHaveBeenCalledWith({
|
|
@@ -116,7 +116,7 @@ var MockedConfidentialClientApplication = msal_node_1.ConfidentialClientApplicat
|
|
|
116
116
|
case 0:
|
|
117
117
|
acquireTokenByClientCredentialMock.mockResolvedValueOnce({ accessToken: 'token-value' });
|
|
118
118
|
provider = new ServicePrincipalAuthenticationProvider_1.ServicePrincipalAuthenticationProvider();
|
|
119
|
-
return [4 /*yield*/, provider.initAsync()];
|
|
119
|
+
return [4 /*yield*/, provider.initAsync('prod')];
|
|
120
120
|
case 1:
|
|
121
121
|
_a.sent();
|
|
122
122
|
return [4 /*yield*/, provider.getAccessTokenForResource('https://resource')];
|
|
@@ -137,7 +137,7 @@ var MockedConfidentialClientApplication = msal_node_1.ConfidentialClientApplicat
|
|
|
137
137
|
case 0:
|
|
138
138
|
acquireTokenByClientCredentialMock.mockResolvedValueOnce(undefined);
|
|
139
139
|
provider = new ServicePrincipalAuthenticationProvider_1.ServicePrincipalAuthenticationProvider();
|
|
140
|
-
return [4 /*yield*/, provider.initAsync()];
|
|
140
|
+
return [4 /*yield*/, provider.initAsync('prod')];
|
|
141
141
|
case 1:
|
|
142
142
|
_a.sent();
|
|
143
143
|
return [4 /*yield*/, (0, globals_1.expect)(provider.getAccessTokenForResource('https://resource')).rejects.toThrow('Failed to acquire token using service principal')];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServicePrincipalAuthenticationProvider.spec.js","sourceRoot":"","sources":["../../../src/__tests__/UnitTests/ServicePrincipalAuthenticationProvider.spec.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yCAAiF;AAEjF,IAAM,kCAAkC;AACtC,8DAA8D;AAC9D,cAAI,CAAC,EAAE,EAAiE,CAAC;AAE3E,cAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,cAAM,OAAA,CAAC;IACnC,UAAU,EAAE,IAAI;IAChB,6BAA6B,EAAE,cAAI,CAAC,EAAE,EAAE;CACzC,CAAC,EAHkC,CAGlC,CAAC,CAAC;AAEJ,8CAAiE;AACjE,sHAAqH;AAErH,IAAM,mCAAmC,GAAG,yCAAqD,CAAC;AAElG,IAAA,kBAAQ,EAAC,wCAAwC,EAAE;IACjD,IAAM,WAAW,gBAAQ,OAAO,CAAC,GAAG,CAAE,CAAC;IAEvC,IAAM,WAAW,GAAG;QAClB,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,eAAe,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC;IACzC,CAAC,CAAC;IAEF,IAAA,oBAAU,EAAC;QACT,kCAAkC,CAAC,SAAS,EAAE,CAAC;QAC/C,mCAAmC,CAAC,SAAS,EAAE,CAAC;QAChD,mCAAmC,CAAC,kBAAkB,CAAC,cAAM,OAAA,CAAC;YAC5D,8BAA8B,EAAE,kCAAkC;SACnE,CAAC,EAF2D,CAE3D,CAAC,CAAC;QAEJ,OAAO,CAAC,GAAG,gBAAQ,WAAW,CAAE,CAAC;QACjC,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QAChC,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACpC,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,IAAA,kBAAQ,EAAC;QACP,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,IAAA,YAAE,EAAC,uDAAuD,EAAE;QAC1D,IAAA,gBAAM,EAAC,cAAM,OAAA,IAAI,+EAAsC,EAAE,EAA5C,CAA4C,CAAC,CAAC,OAAO,CAChE,sGAAsG,CACvG,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,kBAAQ,EAAC,sCAAsC,EAAE;QAC/C,IAAA,oBAAU,EAAC;YACT,WAAW,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,IAAA,YAAE,EAAC,8DAA8D,EAAE;;;;;wBAC3D,QAAQ,GAAG,IAAI,+EAAsC,EAAE,CAAC;wBAC9D,qBAAM,QAAQ,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"ServicePrincipalAuthenticationProvider.spec.js","sourceRoot":"","sources":["../../../src/__tests__/UnitTests/ServicePrincipalAuthenticationProvider.spec.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yCAAiF;AAEjF,IAAM,kCAAkC;AACtC,8DAA8D;AAC9D,cAAI,CAAC,EAAE,EAAiE,CAAC;AAE3E,cAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,cAAM,OAAA,CAAC;IACnC,UAAU,EAAE,IAAI;IAChB,6BAA6B,EAAE,cAAI,CAAC,EAAE,EAAE;CACzC,CAAC,EAHkC,CAGlC,CAAC,CAAC;AAEJ,8CAAiE;AACjE,sHAAqH;AAErH,IAAM,mCAAmC,GAAG,yCAAqD,CAAC;AAElG,IAAA,kBAAQ,EAAC,wCAAwC,EAAE;IACjD,IAAM,WAAW,gBAAQ,OAAO,CAAC,GAAG,CAAE,CAAC;IAEvC,IAAM,WAAW,GAAG;QAClB,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,eAAe,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC;IACzC,CAAC,CAAC;IAEF,IAAA,oBAAU,EAAC;QACT,kCAAkC,CAAC,SAAS,EAAE,CAAC;QAC/C,mCAAmC,CAAC,SAAS,EAAE,CAAC;QAChD,mCAAmC,CAAC,kBAAkB,CAAC,cAAM,OAAA,CAAC;YAC5D,8BAA8B,EAAE,kCAAkC;SACnE,CAAC,EAF2D,CAE3D,CAAC,CAAC;QAEJ,OAAO,CAAC,GAAG,gBAAQ,WAAW,CAAE,CAAC;QACjC,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QAChC,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACpC,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,IAAA,kBAAQ,EAAC;QACP,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,IAAA,YAAE,EAAC,uDAAuD,EAAE;QAC1D,IAAA,gBAAM,EAAC,cAAM,OAAA,IAAI,+EAAsC,EAAE,EAA5C,CAA4C,CAAC,CAAC,OAAO,CAChE,sGAAsG,CACvG,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,kBAAQ,EAAC,sCAAsC,EAAE;QAC/C,IAAA,oBAAU,EAAC;YACT,WAAW,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,IAAA,YAAE,EAAC,8DAA8D,EAAE;;;;;wBAC3D,QAAQ,GAAG,IAAI,+EAAsC,EAAE,CAAC;wBAC9D,qBAAM,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAA;;wBAAhC,SAAgC,CAAC;wBAEjC,IAAA,gBAAM,EAAC,mCAAmC,CAAC,CAAC,oBAAoB,CAAC;4BAC/D,IAAI,EAAE;gCACJ,QAAQ,EAAE,WAAW;gCACrB,YAAY,EAAE,eAAe;gCAC7B,SAAS,EAAE,6CAA6C;6BACzD;yBACF,CAAC,CAAC;;;;aACJ,CAAC,CAAC;QAEH,IAAA,YAAE,EAAC,iEAAiE,EAAE;;;;;wBACpE,kCAAkC,CAAC,qBAAqB,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;wBAEnF,QAAQ,GAAG,IAAI,+EAAsC,EAAE,CAAC;wBAC9D,qBAAM,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAA;;wBAAhC,SAAgC,CAAC;wBACnB,qBAAM,QAAQ,CAAC,yBAAyB,CAAC,kBAAkB,CAAC,EAAA;;wBAApE,KAAK,GAAG,SAA4D;wBAE1E,IAAA,gBAAM,EAAC,kCAAkC,CAAC,CAAC,oBAAoB,CAAC;4BAC9D,MAAM,EAAE,CAAC,2BAA2B,CAAC;yBACtC,CAAC,CAAC;wBACH,IAAA,gBAAM,EAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;;;;aACnC,CAAC,CAAC;QAEH,IAAA,YAAE,EAAC,0CAA0C,EAAE;;;;;wBAC7C,kCAAkC,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;wBAE9D,QAAQ,GAAG,IAAI,+EAAsC,EAAE,CAAC;wBAC9D,qBAAM,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAA;;wBAAhC,SAAgC,CAAC;wBAEjC,qBAAM,IAAA,gBAAM,EAAC,QAAQ,CAAC,yBAAyB,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAClF,iDAAiD,CAClD,EAAA;;wBAFD,SAEC,CAAC;;;;aACH,CAAC,CAAC;QAEH,IAAA,YAAE,EAAC,gEAAgE,EAAE;;;;;wBAC7D,QAAQ,GAAG,IAAI,+EAAsC,EAAE,CAAC;wBAE9D,qBAAM,IAAA,gBAAM,EAAC,QAAQ,CAAC,yBAAyB,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAClF,oCAAoC,CACrC,EAAA;;wBAFD,SAEC,CAAC;;;;aACH,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enhanceNetworkError.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/UnitTests/enhanceNetworkError.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*!
|
|
3
|
+
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var globals_1 = require("@jest/globals");
|
|
7
|
+
var EnhanceNetworkError_1 = require("../../Utils/EnhanceNetworkError");
|
|
8
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
9
|
+
(0, globals_1.describe)('enhanceNetworkError', function () {
|
|
10
|
+
var testMethod = 'GET';
|
|
11
|
+
var testUrl = 'https://example.com/api/test';
|
|
12
|
+
(0, globals_1.describe)('non-fetch errors', function () {
|
|
13
|
+
(0, globals_1.it)('returns Error objects unchanged', function () {
|
|
14
|
+
var originalError = new Error('Some other error');
|
|
15
|
+
var result = (0, EnhanceNetworkError_1.enhanceNetworkError)(originalError, testMethod, testUrl);
|
|
16
|
+
(0, globals_1.expect)(result).toBe(originalError);
|
|
17
|
+
(0, globals_1.expect)(result.message).toBe('Some other error');
|
|
18
|
+
});
|
|
19
|
+
(0, globals_1.it)('wraps non-Error values in Error objects', function () {
|
|
20
|
+
var result = (0, EnhanceNetworkError_1.enhanceNetworkError)('string error', testMethod, testUrl);
|
|
21
|
+
(0, globals_1.expect)(result).toBeInstanceOf(Error);
|
|
22
|
+
(0, globals_1.expect)(result.message).toBe('string error');
|
|
23
|
+
});
|
|
24
|
+
(0, globals_1.it)('returns TypeError without "fetch failed" message unchanged', function () {
|
|
25
|
+
var originalError = new TypeError('Invalid URL');
|
|
26
|
+
var result = (0, EnhanceNetworkError_1.enhanceNetworkError)(originalError, testMethod, testUrl);
|
|
27
|
+
(0, globals_1.expect)(result).toBe(originalError);
|
|
28
|
+
(0, globals_1.expect)(result.message).toBe('Invalid URL');
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
(0, globals_1.describe)('fetch failures with specific error codes', function () {
|
|
32
|
+
(0, globals_1.it)('enhances ENOTFOUND error (DNS lookup failure)', function () {
|
|
33
|
+
var fetchError = new TypeError('fetch failed');
|
|
34
|
+
fetchError.cause = {
|
|
35
|
+
code: 'ENOTFOUND',
|
|
36
|
+
message: 'getaddrinfo ENOTFOUND example.com',
|
|
37
|
+
};
|
|
38
|
+
var result = (0, EnhanceNetworkError_1.enhanceNetworkError)(fetchError, testMethod, testUrl);
|
|
39
|
+
(0, globals_1.expect)(result).toBeInstanceOf(Error);
|
|
40
|
+
(0, globals_1.expect)(result.message).toContain('Network request failed for GET https://example.com/api/test');
|
|
41
|
+
(0, globals_1.expect)(result.message).toContain('DNS lookup failed - unable to resolve hostname');
|
|
42
|
+
(0, globals_1.expect)(result.message).toContain('Details: getaddrinfo ENOTFOUND example.com');
|
|
43
|
+
(0, globals_1.expect)(result.cause).toBe(fetchError);
|
|
44
|
+
});
|
|
45
|
+
(0, globals_1.it)('enhances ECONNREFUSED error (connection refused)', function () {
|
|
46
|
+
var fetchError = new TypeError('fetch failed');
|
|
47
|
+
fetchError.cause = {
|
|
48
|
+
code: 'ECONNREFUSED',
|
|
49
|
+
message: 'connect ECONNREFUSED 127.0.0.1:443',
|
|
50
|
+
};
|
|
51
|
+
var result = (0, EnhanceNetworkError_1.enhanceNetworkError)(fetchError, testMethod, testUrl);
|
|
52
|
+
(0, globals_1.expect)(result.message).toContain('Connection refused - server is not accepting connections');
|
|
53
|
+
(0, globals_1.expect)(result.message).toContain('Details: connect ECONNREFUSED 127.0.0.1:443');
|
|
54
|
+
});
|
|
55
|
+
(0, globals_1.it)('enhances ETIMEDOUT error (connection timeout)', function () {
|
|
56
|
+
var fetchError = new TypeError('fetch failed');
|
|
57
|
+
fetchError.cause = {
|
|
58
|
+
code: 'ETIMEDOUT',
|
|
59
|
+
message: 'connect ETIMEDOUT',
|
|
60
|
+
};
|
|
61
|
+
var result = (0, EnhanceNetworkError_1.enhanceNetworkError)(fetchError, testMethod, testUrl);
|
|
62
|
+
(0, globals_1.expect)(result.message).toContain('Connection timed out - server did not respond in time');
|
|
63
|
+
});
|
|
64
|
+
(0, globals_1.it)('enhances ECONNRESET error (connection reset)', function () {
|
|
65
|
+
var fetchError = new TypeError('fetch failed');
|
|
66
|
+
fetchError.cause = {
|
|
67
|
+
code: 'ECONNRESET',
|
|
68
|
+
message: 'socket hang up',
|
|
69
|
+
};
|
|
70
|
+
var result = (0, EnhanceNetworkError_1.enhanceNetworkError)(fetchError, testMethod, testUrl);
|
|
71
|
+
(0, globals_1.expect)(result.message).toContain('Connection reset - server closed the connection unexpectedly');
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
(0, globals_1.describe)('certificate validation errors', function () {
|
|
75
|
+
(0, globals_1.it)('enhances UNABLE_TO_VERIFY_LEAF_SIGNATURE error', function () {
|
|
76
|
+
var fetchError = new TypeError('fetch failed');
|
|
77
|
+
fetchError.cause = {
|
|
78
|
+
code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE',
|
|
79
|
+
message: 'unable to verify the first certificate',
|
|
80
|
+
};
|
|
81
|
+
var result = (0, EnhanceNetworkError_1.enhanceNetworkError)(fetchError, testMethod, testUrl);
|
|
82
|
+
(0, globals_1.expect)(result.message).toContain('Certificate validation failed (UNABLE_TO_VERIFY_LEAF_SIGNATURE)');
|
|
83
|
+
});
|
|
84
|
+
(0, globals_1.it)('enhances CERT_HAS_EXPIRED error', function () {
|
|
85
|
+
var fetchError = new TypeError('fetch failed');
|
|
86
|
+
fetchError.cause = {
|
|
87
|
+
code: 'CERT_HAS_EXPIRED',
|
|
88
|
+
message: 'certificate has expired',
|
|
89
|
+
};
|
|
90
|
+
var result = (0, EnhanceNetworkError_1.enhanceNetworkError)(fetchError, testMethod, testUrl);
|
|
91
|
+
(0, globals_1.expect)(result.message).toContain('Certificate validation failed (CERT_HAS_EXPIRED)');
|
|
92
|
+
});
|
|
93
|
+
(0, globals_1.it)('enhances any CERT_* prefixed error', function () {
|
|
94
|
+
var fetchError = new TypeError('fetch failed');
|
|
95
|
+
fetchError.cause = {
|
|
96
|
+
code: 'CERT_REVOKED',
|
|
97
|
+
message: 'certificate revoked',
|
|
98
|
+
};
|
|
99
|
+
var result = (0, EnhanceNetworkError_1.enhanceNetworkError)(fetchError, testMethod, testUrl);
|
|
100
|
+
(0, globals_1.expect)(result.message).toContain('Certificate validation failed (CERT_REVOKED)');
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
(0, globals_1.describe)('generic system errors', function () {
|
|
104
|
+
(0, globals_1.it)('enhances unknown error codes', function () {
|
|
105
|
+
var fetchError = new TypeError('fetch failed');
|
|
106
|
+
fetchError.cause = {
|
|
107
|
+
code: 'UNKNOWN_ERROR',
|
|
108
|
+
message: 'Something went wrong',
|
|
109
|
+
};
|
|
110
|
+
var result = (0, EnhanceNetworkError_1.enhanceNetworkError)(fetchError, testMethod, testUrl);
|
|
111
|
+
(0, globals_1.expect)(result.message).toContain('System error: UNKNOWN_ERROR');
|
|
112
|
+
(0, globals_1.expect)(result.message).toContain('Details: Something went wrong');
|
|
113
|
+
});
|
|
114
|
+
(0, globals_1.it)('uses errno if code is not present', function () {
|
|
115
|
+
var fetchError = new TypeError('fetch failed');
|
|
116
|
+
fetchError.cause = {
|
|
117
|
+
errno: -3008,
|
|
118
|
+
message: 'Network error',
|
|
119
|
+
};
|
|
120
|
+
var result = (0, EnhanceNetworkError_1.enhanceNetworkError)(fetchError, testMethod, testUrl);
|
|
121
|
+
(0, globals_1.expect)(result.message).toContain('System error: -3008');
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
(0, globals_1.describe)('fetch failures without specific error codes', function () {
|
|
125
|
+
(0, globals_1.it)('provides general suggestions when no error code is available', function () {
|
|
126
|
+
var fetchError = new TypeError('fetch failed');
|
|
127
|
+
fetchError.cause = {
|
|
128
|
+
message: 'Generic network failure',
|
|
129
|
+
};
|
|
130
|
+
var result = (0, EnhanceNetworkError_1.enhanceNetworkError)(fetchError, testMethod, testUrl);
|
|
131
|
+
(0, globals_1.expect)(result.message).toContain('Network request failed for GET https://example.com/api/test');
|
|
132
|
+
(0, globals_1.expect)(result.message).toContain('Possible causes: network connectivity issues');
|
|
133
|
+
(0, globals_1.expect)(result.message).toContain('DNS resolution failure');
|
|
134
|
+
(0, globals_1.expect)(result.message).toContain('VPN/proxy configuration');
|
|
135
|
+
(0, globals_1.expect)(result.message).toContain('firewall/certificate issues');
|
|
136
|
+
});
|
|
137
|
+
(0, globals_1.it)('provides general suggestions when cause is missing entirely', function () {
|
|
138
|
+
var fetchError = new TypeError('fetch failed');
|
|
139
|
+
var result = (0, EnhanceNetworkError_1.enhanceNetworkError)(fetchError, testMethod, testUrl);
|
|
140
|
+
(0, globals_1.expect)(result.message).toContain('Network request failed for GET https://example.com/api/test');
|
|
141
|
+
(0, globals_1.expect)(result.message).toContain('Possible causes: network connectivity issues');
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
(0, globals_1.describe)('cause chain preservation', function () {
|
|
145
|
+
(0, globals_1.it)('preserves the original error as cause', function () {
|
|
146
|
+
var originalCause = {
|
|
147
|
+
code: 'ENOTFOUND',
|
|
148
|
+
message: 'DNS error',
|
|
149
|
+
};
|
|
150
|
+
var fetchError = new TypeError('fetch failed');
|
|
151
|
+
fetchError.cause = originalCause;
|
|
152
|
+
var result = (0, EnhanceNetworkError_1.enhanceNetworkError)(fetchError, testMethod, testUrl);
|
|
153
|
+
(0, globals_1.expect)(result.cause).toBe(fetchError);
|
|
154
|
+
(0, globals_1.expect)(fetchError.cause).toBe(originalCause);
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
(0, globals_1.describe)('message formatting', function () {
|
|
158
|
+
(0, globals_1.it)('includes HTTP method and URL in message', function () {
|
|
159
|
+
var fetchError = new TypeError('fetch failed');
|
|
160
|
+
fetchError.cause = { code: 'ENOTFOUND' };
|
|
161
|
+
var result = (0, EnhanceNetworkError_1.enhanceNetworkError)(fetchError, 'POST', 'https://api.example.com/v1/users');
|
|
162
|
+
(0, globals_1.expect)(result.message).toContain('POST');
|
|
163
|
+
(0, globals_1.expect)(result.message).toContain('https://api.example.com/v1/users');
|
|
164
|
+
});
|
|
165
|
+
(0, globals_1.it)('does not duplicate cause message if it matches error message', function () {
|
|
166
|
+
var fetchError = new TypeError('fetch failed');
|
|
167
|
+
fetchError.cause = {
|
|
168
|
+
code: 'ENOTFOUND',
|
|
169
|
+
message: 'fetch failed', // Same as error message
|
|
170
|
+
};
|
|
171
|
+
var result = (0, EnhanceNetworkError_1.enhanceNetworkError)(fetchError, testMethod, testUrl);
|
|
172
|
+
// Should only appear once in the message
|
|
173
|
+
var matches = result.message.match(/fetch failed/g);
|
|
174
|
+
(0, globals_1.expect)(matches).toBeNull(); // Neither should appear since we don't include them
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
179
|
+
//# sourceMappingURL=enhanceNetworkError.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enhanceNetworkError.test.js","sourceRoot":"","sources":["../../../src/__tests__/UnitTests/enhanceNetworkError.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e2eTestHelpers.d.ts","sourceRoot":"","sources":["../../../src/__tests__/helpers/e2eTestHelpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,kBAAkB,SAI9B,CAAC;
|
|
1
|
+
{"version":3,"file":"e2eTestHelpers.d.ts","sourceRoot":"","sources":["../../../src/__tests__/helpers/e2eTestHelpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,kBAAkB,SAI9B,CAAC;AAsBF,eAAO,MAAM,WAAW,EAAE,OAAO,QAE7B,CAAC"}
|
|
@@ -25,6 +25,22 @@ var globals_1 = require("@jest/globals");
|
|
|
25
25
|
exports.hasRequiredEnvVars = !!(process.env.SP_CLIENT_ID &&
|
|
26
26
|
process.env.SP_CLIENT_SECRET &&
|
|
27
27
|
process.env.SP_TENANT_ID);
|
|
28
|
+
// Report missing environment variables
|
|
29
|
+
if (!exports.hasRequiredEnvVars) {
|
|
30
|
+
var missingVars = [];
|
|
31
|
+
if (!process.env.SP_CLIENT_ID) {
|
|
32
|
+
missingVars.push('SP_CLIENT_ID');
|
|
33
|
+
}
|
|
34
|
+
if (!process.env.SP_CLIENT_SECRET) {
|
|
35
|
+
missingVars.push('SP_CLIENT_SECRET');
|
|
36
|
+
}
|
|
37
|
+
if (!process.env.SP_TENANT_ID) {
|
|
38
|
+
missingVars.push('SP_TENANT_ID');
|
|
39
|
+
}
|
|
40
|
+
console.warn('\n E2E tests are being skipped due to missing environment variables:\n' +
|
|
41
|
+
" Missing: ".concat(missingVars.join(', '), "\n") +
|
|
42
|
+
' Please set these variables to run E2E tests.\n');
|
|
43
|
+
}
|
|
28
44
|
exports.describeE2E = (function () {
|
|
29
45
|
return (exports.hasRequiredEnvVars ? globals_1.describe : globals_1.describe.skip);
|
|
30
46
|
})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e2eTestHelpers.js","sourceRoot":"","sources":["../../../src/__tests__/helpers/e2eTestHelpers.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,yCAAyC;AAEzC;;;;;;;;;;;;;;;;GAgBG;AACU,QAAA,kBAAkB,GAAG,CAAC,CAAC,CAClC,OAAO,CAAC,GAAG,CAAC,YAAY;IACxB,OAAO,CAAC,GAAG,CAAC,gBAAgB;IAC5B,OAAO,CAAC,GAAG,CAAC,YAAY,CACzB,CAAC;
|
|
1
|
+
{"version":3,"file":"e2eTestHelpers.js","sourceRoot":"","sources":["../../../src/__tests__/helpers/e2eTestHelpers.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,yCAAyC;AAEzC;;;;;;;;;;;;;;;;GAgBG;AACU,QAAA,kBAAkB,GAAG,CAAC,CAAC,CAClC,OAAO,CAAC,GAAG,CAAC,YAAY;IACxB,OAAO,CAAC,GAAG,CAAC,gBAAgB;IAC5B,OAAO,CAAC,GAAG,CAAC,YAAY,CACzB,CAAC;AAEF,uCAAuC;AACvC,IAAI,CAAC,0BAAkB,EAAE;IACvB,IAAM,WAAW,GAAG,EAAE,CAAC;IACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE;QAC7B,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KAClC;IACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE;QACjC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KACtC;IACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE;QAC7B,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KAClC;IAED,OAAO,CAAC,IAAI,CACV,wEAAwE;QACtE,sBAAe,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAI;QACzC,mDAAmD,CACtD,CAAC;CACH;AAEY,QAAA,WAAW,GAAoB,CAAC;IAC3C,OAAO,CAAC,0BAAkB,CAAC,CAAC,CAAC,kBAAQ,CAAC,CAAC,CAAC,kBAAQ,CAAC,IAAI,CAAoB,CAAC;AAC5E,CAAC,CAAC,EAAE,CAAC"}
|
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { PowerAppsRepoConfig } from '@microsoft/powerapps-player-actions/lib/Config/Config.types';
|
|
3
|
+
/**
|
|
4
|
+
* Gets the path to power.config.json for a project.
|
|
5
|
+
*
|
|
6
|
+
* @param {string | E2eTestSetup} projectRootOrSetup - Project root path or E2eTestSetup object
|
|
7
|
+
* @returns {string} Path to power.config.json
|
|
8
|
+
*/
|
|
9
|
+
export declare function getConfigPath(projectRootOrSetup: string | E2eTestSetup): string;
|
|
10
|
+
/**
|
|
11
|
+
* Gets the auth cache directory path for a test setup.
|
|
12
|
+
*
|
|
13
|
+
* @param {E2eTestSetup} testSetup - The test setup object
|
|
14
|
+
* @returns {string} Path to auth cache directory
|
|
15
|
+
*/
|
|
16
|
+
export declare function getAuthCachePath(testSetup: E2eTestSetup): string;
|
|
17
|
+
/**
|
|
18
|
+
* Combines stdout and stderr to lowercase for test assertions.
|
|
19
|
+
*
|
|
20
|
+
* @param {object} result - Command result with stdout and stderr
|
|
21
|
+
* @returns {string} Combined lowercase output
|
|
22
|
+
*/
|
|
23
|
+
export declare function getCombinedOutput(result: {
|
|
24
|
+
stdout: string;
|
|
25
|
+
stderr: string;
|
|
26
|
+
}): string;
|
|
27
|
+
/**
|
|
28
|
+
* Normalizes whitespace for help text comparison.
|
|
29
|
+
*
|
|
30
|
+
* @param {string} text - Text to normalize
|
|
31
|
+
* @returns {string} Text with whitespace normalized
|
|
32
|
+
*/
|
|
33
|
+
export declare function normalizeWhitespace(text: string): string;
|
|
3
34
|
/**
|
|
4
35
|
* Creates a test folder relative to the current working directory.
|
|
5
36
|
*
|
|
@@ -13,21 +44,7 @@ export declare function createTestFolder(folderName: string): string;
|
|
|
13
44
|
* @param {string} folderName
|
|
14
45
|
*/
|
|
15
46
|
export declare function cleanupTestFolder(folderName: string): void;
|
|
16
|
-
/**
|
|
17
|
-
* Copies a host template app from source to destination directory.
|
|
18
|
-
*
|
|
19
|
-
* @param {string} source - Source directory path
|
|
20
|
-
* @param {string} destination - Destination directory path
|
|
21
|
-
*/
|
|
22
|
-
export declare function copyHostTemplateApp(source: string, destination: string): void;
|
|
23
47
|
export declare function readJson(filePath: string): Record<string, unknown>;
|
|
24
|
-
/**
|
|
25
|
-
* Recursively copies a directory and its contents from source to destination.
|
|
26
|
-
*
|
|
27
|
-
* @param {string} src - Source directory path
|
|
28
|
-
* @param {string} dest - Destination directory path
|
|
29
|
-
*/
|
|
30
|
-
export declare function copyDirRecursive(src: string, dest: string): void;
|
|
31
48
|
/**
|
|
32
49
|
* Validates that generated model and service files exist for a given data source.
|
|
33
50
|
* Generated files follow the pattern: {DataSourceName}Model.ts and {DataSourceName}Service.ts
|
|
@@ -68,21 +85,7 @@ export declare function extractZip(source: string, destination: string): void;
|
|
|
68
85
|
*/
|
|
69
86
|
export declare function cleanupE2eTestProject(projectRoot: string): void;
|
|
70
87
|
/**
|
|
71
|
-
* Creates a
|
|
72
|
-
* Isolates the stdout and stderr for each executor instance.
|
|
73
|
-
*
|
|
74
|
-
* @param {string} [options.cliPath] - Path to the CLI entry point (defaults to dist/nomodule/powerapps-player-cli.js)
|
|
75
|
-
* @param {string} options.workingDirectory - Working directory for command execution
|
|
76
|
-
* @param {NodeJS.ProcessEnv} [options.envOverrides] - Environment variable overrides
|
|
77
|
-
* @returns {(verb: string, args?: string[]) => CliCommandResult} Command executor function
|
|
78
|
-
*/
|
|
79
|
-
export declare function createExecuteCodeCommand(options: {
|
|
80
|
-
cliPath?: string;
|
|
81
|
-
workingDirectory: string;
|
|
82
|
-
envOverrides?: NodeJS.ProcessEnv;
|
|
83
|
-
}): (verb: string, args?: string[]) => import("./commandLineUtils").CliCommandResult;
|
|
84
|
-
/**
|
|
85
|
-
* Creates a command executor that allows CLI command failures without throwing.
|
|
88
|
+
* Creates a command executor that allows CLI command failures.
|
|
86
89
|
* Useful for testing error scenarios and validating error handling.
|
|
87
90
|
*
|
|
88
91
|
* @param {object} options - Configuration object
|
|
@@ -91,9 +94,122 @@ export declare function createExecuteCodeCommand(options: {
|
|
|
91
94
|
* @param {NodeJS.ProcessEnv} [options.envOverrides] - Environment variable overrides
|
|
92
95
|
* @returns {(verb: string, args?: string[]) => CliCommandResultWithExitCode} executor function
|
|
93
96
|
*/
|
|
94
|
-
export declare function
|
|
97
|
+
export declare function createExecuteCodeCommand(options: {
|
|
95
98
|
cliPath?: string;
|
|
96
99
|
workingDirectory: string;
|
|
97
100
|
envOverrides?: NodeJS.ProcessEnv;
|
|
98
101
|
}): (verb: string, args?: string[]) => import("./commandLineUtils").CliCommandResultWithExitCode;
|
|
99
102
|
export declare function readConfig(projectRoot: string): PowerAppsRepoConfig;
|
|
103
|
+
/**
|
|
104
|
+
* Creates a minimal power.config.json for testing.
|
|
105
|
+
* Use this instead of manually creating config objects in individual test files.
|
|
106
|
+
*
|
|
107
|
+
* @param overrides - Partial config to override defaults
|
|
108
|
+
* @returns A complete minimal config object
|
|
109
|
+
*/
|
|
110
|
+
export declare function createMinimalConfig(overrides?: Partial<PowerAppsRepoConfig>): PowerAppsRepoConfig;
|
|
111
|
+
/**
|
|
112
|
+
* Writes a minimal config file to the test project root.
|
|
113
|
+
* Convenience wrapper around createMinimalConfig + fs.writeFileSync.
|
|
114
|
+
*
|
|
115
|
+
* @param testSetup - The E2eTestSetup object
|
|
116
|
+
* @param overrides - Partial config to override defaults
|
|
117
|
+
*/
|
|
118
|
+
export declare function writeMinimalConfig(testSetup: E2eTestSetup, overrides?: Partial<PowerAppsRepoConfig>): void;
|
|
119
|
+
/**
|
|
120
|
+
* Result of setupE2eTest containing all test infrastructure.
|
|
121
|
+
*/
|
|
122
|
+
export interface E2eTestSetup {
|
|
123
|
+
/** Root directory of the test project */
|
|
124
|
+
projectRoot: string;
|
|
125
|
+
/** Isolated CLI config directory for this test */
|
|
126
|
+
cliConfigDir: string;
|
|
127
|
+
/** Path to userSettings.json in the isolated config dir */
|
|
128
|
+
userSettingsPath: string;
|
|
129
|
+
/** Environment variable overrides including isolated config */
|
|
130
|
+
envOverrides: Record<string, string>;
|
|
131
|
+
/** Command executor */
|
|
132
|
+
execute: ReturnType<typeof createExecuteCodeCommand>;
|
|
133
|
+
/** Cleanup function to call in afterAll */
|
|
134
|
+
cleanup: () => void;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Sets up a complete E2E test environment with isolated configuration.
|
|
138
|
+
* This is the recommended way to set up E2E tests as it:
|
|
139
|
+
* - Creates a unique project directory
|
|
140
|
+
* - Creates an isolated CLI config directory to prevent test interference
|
|
141
|
+
* - Pre-configures command executors with proper environment overrides
|
|
142
|
+
* - Provides a cleanup function for afterAll
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* ```typescript
|
|
146
|
+
* let testSetup: E2eTestSetup;
|
|
147
|
+
*
|
|
148
|
+
* beforeAll(() => {
|
|
149
|
+
* testSetup = setupE2eTest({ testFolderName: 'myTests' });
|
|
150
|
+
* });
|
|
151
|
+
*
|
|
152
|
+
* afterAll(() => {
|
|
153
|
+
* testSetup.cleanup();
|
|
154
|
+
* });
|
|
155
|
+
*
|
|
156
|
+
* it('runs a command', () => {
|
|
157
|
+
* const result = testSetup.execute('logout', []);
|
|
158
|
+
* expect(result.stderr).toBe('');
|
|
159
|
+
* });
|
|
160
|
+
* ```
|
|
161
|
+
*
|
|
162
|
+
* @param config - Configuration options
|
|
163
|
+
* @param config.testFolderName - Unique name for the test folder
|
|
164
|
+
* @param config.tempBaseDir - Optional base directory for temp folders
|
|
165
|
+
* @param config.hostTemplateFolder - Optional host template to copy
|
|
166
|
+
* @param config.cliPath - Optional path to CLI entry point
|
|
167
|
+
* @returns E2eTestSetup object with all test infrastructure
|
|
168
|
+
*/
|
|
169
|
+
export declare function setupE2eTest(config: {
|
|
170
|
+
testFolderName: string;
|
|
171
|
+
tempBaseDir?: string;
|
|
172
|
+
hostTemplateFolder?: string;
|
|
173
|
+
cliPath?: string;
|
|
174
|
+
}): E2eTestSetup;
|
|
175
|
+
/**
|
|
176
|
+
* Executes a callback with the power.config.json temporarily removed.
|
|
177
|
+
* Useful for testing error scenarios when config is missing.
|
|
178
|
+
* The config file is automatically restored after the callback completes (or throws).
|
|
179
|
+
*
|
|
180
|
+
* @example
|
|
181
|
+
* ```typescript
|
|
182
|
+
* it('errors when config is missing', () => {
|
|
183
|
+
* withoutConfig(testSetup, () => {
|
|
184
|
+
* const result = testSetup.executeAllowFailure('list-codeapps', []);
|
|
185
|
+
* expect(result.exitCode).not.toBe(0);
|
|
186
|
+
* });
|
|
187
|
+
* });
|
|
188
|
+
* ```
|
|
189
|
+
*
|
|
190
|
+
* @param testSetup - The E2eTestSetup object containing the project root
|
|
191
|
+
* @param callback - Function to execute while config is absent
|
|
192
|
+
* @returns The return value of the callback
|
|
193
|
+
*/
|
|
194
|
+
export declare function withoutConfig<T>(testSetup: E2eTestSetup, callback: () => T): T;
|
|
195
|
+
/**
|
|
196
|
+
* Executes a callback with a custom power.config.json temporarily in place.
|
|
197
|
+
* Useful for testing error scenarios with corrupted or incomplete configs.
|
|
198
|
+
* The original config file is automatically restored after the callback completes (or throws).
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```typescript
|
|
202
|
+
* it('errors when config is invalid', () => {
|
|
203
|
+
* withTemporaryConfig(testSetup, '{ invalid json }', () => {
|
|
204
|
+
* const result = testSetup.executeAllowFailure('list-codeapps', []);
|
|
205
|
+
* expect(result.exitCode).not.toBe(0);
|
|
206
|
+
* });
|
|
207
|
+
* });
|
|
208
|
+
* ```
|
|
209
|
+
*
|
|
210
|
+
* @param testSetup - The E2eTestSetup object containing the project root
|
|
211
|
+
* @param temporaryContent - Content to write as power.config.json during the callback
|
|
212
|
+
* @param callback - Function to execute with the temporary config
|
|
213
|
+
* @returns The return value of the callback
|
|
214
|
+
*/
|
|
215
|
+
export declare function withTemporaryConfig<T>(testSetup: E2eTestSetup, temporaryContent: string | object, callback: () => T): T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testHelpers.d.ts","sourceRoot":"","sources":["../../../src/__tests__/helpers/testHelpers.ts"],"names":[],"mappings":";AAgBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;
|
|
1
|
+
{"version":3,"file":"testHelpers.d.ts","sourceRoot":"","sources":["../../../src/__tests__/helpers/testHelpers.ts"],"names":[],"mappings":"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"}
|