sfdx-browserforce-plugin 5.2.0-next.5 → 6.0.0-next.10
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 +66 -87
- package/lib/browserforce-command.d.ts +14 -3
- package/lib/browserforce-command.js +117 -17
- package/lib/browserforce-command.js.map +1 -1
- package/lib/browserforce.d.ts +14 -12
- package/lib/browserforce.js +98 -100
- package/lib/browserforce.js.map +1 -1
- package/lib/commands/browserforce/apply.js +17 -12
- package/lib/commands/browserforce/apply.js.map +1 -1
- package/lib/commands/browserforce/playwright.js +9 -3
- package/lib/commands/browserforce/playwright.js.map +1 -1
- package/lib/config-parser.js.map +1 -1
- package/lib/pages/login.d.ts +2 -2
- package/lib/pages/login.js +5 -15
- package/lib/pages/login.js.map +1 -1
- package/lib/plugin.d.ts +0 -2
- package/lib/plugin.js +0 -2
- package/lib/plugin.js.map +1 -1
- package/lib/plugins/activity-settings/index.e2e-spec.js +1 -1
- package/lib/plugins/activity-settings/index.e2e-spec.js.map +1 -1
- package/lib/plugins/activity-settings/index.js +92 -21
- package/lib/plugins/activity-settings/index.js.map +1 -1
- package/lib/plugins/company-information/index.e2e-spec.js +1 -1
- package/lib/plugins/company-information/index.e2e-spec.js.map +1 -1
- package/lib/plugins/company-information/index.js +100 -31
- package/lib/plugins/company-information/index.js.map +1 -1
- package/lib/plugins/customer-portal/available-custom-objects/index.js +161 -73
- package/lib/plugins/customer-portal/available-custom-objects/index.js.map +1 -1
- package/lib/plugins/customer-portal/available-custom-objects/index.test.js +1 -1
- package/lib/plugins/customer-portal/available-custom-objects/index.test.js.map +1 -1
- package/lib/plugins/customer-portal/enabled/index.js +76 -13
- package/lib/plugins/customer-portal/enabled/index.js.map +1 -1
- package/lib/plugins/customer-portal/enabled/index.test.js +1 -1
- package/lib/plugins/customer-portal/enabled/index.test.js.map +1 -1
- package/lib/plugins/customer-portal/index.e2e-spec.js +12 -19
- package/lib/plugins/customer-portal/index.e2e-spec.js.map +1 -1
- package/lib/plugins/customer-portal/index.js +3 -4
- package/lib/plugins/customer-portal/index.js.map +1 -1
- package/lib/plugins/customer-portal/index.test.js +1 -1
- package/lib/plugins/customer-portal/index.test.js.map +1 -1
- package/lib/plugins/customer-portal/portals/index.js +186 -110
- package/lib/plugins/customer-portal/portals/index.js.map +1 -1
- package/lib/plugins/customer-portal/portals/index.test.js +1 -1
- package/lib/plugins/customer-portal/portals/index.test.js.map +1 -1
- package/lib/plugins/density-settings/index.e2e-spec.js +1 -1
- package/lib/plugins/density-settings/index.e2e-spec.js.map +1 -1
- package/lib/plugins/density-settings/index.js +91 -22
- package/lib/plugins/density-settings/index.js.map +1 -1
- package/lib/plugins/email-deliverability/index.e2e-spec.js +1 -1
- package/lib/plugins/email-deliverability/index.e2e-spec.js.map +1 -1
- package/lib/plugins/email-deliverability/index.js +93 -22
- package/lib/plugins/email-deliverability/index.js.map +1 -1
- package/lib/plugins/high-velocity-sales-settings/index.d.ts +1 -1
- package/lib/plugins/high-velocity-sales-settings/index.e2e-spec.js +1 -1
- package/lib/plugins/high-velocity-sales-settings/index.e2e-spec.js.map +1 -1
- package/lib/plugins/high-velocity-sales-settings/index.js +71 -8
- package/lib/plugins/high-velocity-sales-settings/index.js.map +1 -1
- package/lib/plugins/high-velocity-sales-settings/page.d.ts +2 -1
- package/lib/plugins/high-velocity-sales-settings/page.js +2 -6
- package/lib/plugins/high-velocity-sales-settings/page.js.map +1 -1
- package/lib/plugins/history-tracking/index.e2e-spec.js +3 -4
- package/lib/plugins/history-tracking/index.e2e-spec.js.map +1 -1
- package/lib/plugins/history-tracking/index.js +156 -94
- package/lib/plugins/history-tracking/index.js.map +1 -1
- package/lib/plugins/home-page-layouts/index.e2e-spec.js +1 -1
- package/lib/plugins/home-page-layouts/index.e2e-spec.js.map +1 -1
- package/lib/plugins/home-page-layouts/index.js +121 -57
- package/lib/plugins/home-page-layouts/index.js.map +1 -1
- package/lib/plugins/home-page-layouts/index.test.js +1 -1
- package/lib/plugins/home-page-layouts/index.test.js.map +1 -1
- package/lib/plugins/index.d.ts +1 -1
- package/lib/plugins/index.js +1 -1
- package/lib/plugins/index.js.map +1 -1
- package/lib/plugins/lightning-experience-settings/index.e2e-spec.js +1 -1
- package/lib/plugins/lightning-experience-settings/index.e2e-spec.js.map +1 -1
- package/lib/plugins/lightning-experience-settings/index.js +90 -27
- package/lib/plugins/lightning-experience-settings/index.js.map +1 -1
- package/lib/plugins/linkedin-sales-navigator-settings/index.e2e-spec.js +1 -1
- package/lib/plugins/linkedin-sales-navigator-settings/index.e2e-spec.js.map +1 -1
- package/lib/plugins/linkedin-sales-navigator-settings/index.js +84 -6
- package/lib/plugins/linkedin-sales-navigator-settings/index.js.map +1 -1
- package/lib/plugins/linkedin-sales-navigator-settings/page.d.ts +2 -1
- package/lib/plugins/linkedin-sales-navigator-settings/page.js +2 -7
- package/lib/plugins/linkedin-sales-navigator-settings/page.js.map +1 -1
- package/lib/plugins/omni-channel-settings/index.e2e-spec.js +1 -1
- package/lib/plugins/omni-channel-settings/index.e2e-spec.js.map +1 -1
- package/lib/plugins/omni-channel-settings/index.js +87 -14
- package/lib/plugins/omni-channel-settings/index.js.map +1 -1
- package/lib/plugins/opportunity-splits/index.e2e-spec.js +1 -1
- package/lib/plugins/opportunity-splits/index.e2e-spec.js.map +1 -1
- package/lib/plugins/opportunity-splits/index.js +103 -18
- package/lib/plugins/opportunity-splits/index.js.map +1 -1
- package/lib/plugins/opportunity-splits/pages/layout-selection.js.map +1 -1
- package/lib/plugins/opportunity-splits/pages/overview.d.ts +2 -1
- package/lib/plugins/opportunity-splits/pages/overview.js +2 -3
- package/lib/plugins/opportunity-splits/pages/overview.js.map +1 -1
- package/lib/plugins/opportunity-splits/pages/setup.d.ts +2 -1
- package/lib/plugins/opportunity-splits/pages/setup.js +1 -1
- package/lib/plugins/opportunity-splits/pages/setup.js.map +1 -1
- package/lib/plugins/permission-sets/index.e2e-spec.js +1 -1
- package/lib/plugins/permission-sets/index.e2e-spec.js.map +1 -1
- package/lib/plugins/permission-sets/index.js.map +1 -1
- package/lib/plugins/permission-sets/service-presence-status/index.js +106 -53
- package/lib/plugins/permission-sets/service-presence-status/index.js.map +1 -1
- package/lib/plugins/picklists/field-dependencies/index.js +91 -14
- package/lib/plugins/picklists/field-dependencies/index.js.map +1 -1
- package/lib/plugins/picklists/field-dependencies/index.test.js +1 -1
- package/lib/plugins/picklists/field-dependencies/index.test.js.map +1 -1
- package/lib/plugins/picklists/field-dependencies/pages.d.ts +3 -2
- package/lib/plugins/picklists/field-dependencies/pages.js +5 -14
- package/lib/plugins/picklists/field-dependencies/pages.js.map +1 -1
- package/lib/plugins/picklists/index.d.ts +1 -1
- package/lib/plugins/picklists/index.e2e-spec.js +36 -14
- package/lib/plugins/picklists/index.e2e-spec.js.map +1 -1
- package/lib/plugins/picklists/index.js +136 -68
- package/lib/plugins/picklists/index.js.map +1 -1
- package/lib/plugins/picklists/pages.js +13 -28
- package/lib/plugins/picklists/pages.js.map +1 -1
- package/lib/plugins/picklists/standard-value-set.js +2 -2
- package/lib/plugins/picklists/standard-value-set.js.map +1 -1
- package/lib/plugins/record-types/index.e2e-spec.js +2 -3
- package/lib/plugins/record-types/index.e2e-spec.js.map +1 -1
- package/lib/plugins/record-types/index.js +81 -20
- package/lib/plugins/record-types/index.js.map +1 -1
- package/lib/plugins/record-types/pages.js +1 -5
- package/lib/plugins/record-types/pages.js.map +1 -1
- package/lib/plugins/relate-contact-to-multiple-accounts/index.e2e-spec.js +2 -2
- package/lib/plugins/relate-contact-to-multiple-accounts/index.e2e-spec.js.map +1 -1
- package/lib/plugins/relate-contact-to-multiple-accounts/index.js +99 -35
- package/lib/plugins/relate-contact-to-multiple-accounts/index.js.map +1 -1
- package/lib/plugins/reports-and-dashboards/folder-sharing/index.js +100 -37
- package/lib/plugins/reports-and-dashboards/folder-sharing/index.js.map +1 -1
- package/lib/plugins/reports-and-dashboards/index.js +1 -1
- package/lib/plugins/reports-and-dashboards/index.js.map +1 -1
- package/lib/plugins/salesforce-cpq-config/index.e2e-spec.js +1 -1
- package/lib/plugins/salesforce-cpq-config/index.e2e-spec.js.map +1 -1
- package/lib/plugins/salesforce-cpq-config/index.js +213 -167
- package/lib/plugins/salesforce-cpq-config/index.js.map +1 -1
- package/lib/plugins/salesforce-to-salesforce/index.e2e-spec.js +1 -2
- package/lib/plugins/salesforce-to-salesforce/index.e2e-spec.js.map +1 -1
- package/lib/plugins/salesforce-to-salesforce/index.js +93 -23
- package/lib/plugins/salesforce-to-salesforce/index.js.map +1 -1
- package/lib/plugins/security/authentication-configuration/index.e2e-spec.js +2 -3
- package/lib/plugins/security/authentication-configuration/index.e2e-spec.js.map +1 -1
- package/lib/plugins/security/authentication-configuration/index.js +122 -50
- package/lib/plugins/security/authentication-configuration/index.js.map +1 -1
- package/lib/plugins/security/certificate-and-key-management/index.e2e-spec.js +4 -25
- package/lib/plugins/security/certificate-and-key-management/index.e2e-spec.js.map +1 -1
- package/lib/plugins/security/certificate-and-key-management/index.js +141 -65
- package/lib/plugins/security/certificate-and-key-management/index.js.map +1 -1
- package/lib/plugins/security/certificate-and-key-management/index.test.js +1 -1
- package/lib/plugins/security/certificate-and-key-management/index.test.js.map +1 -1
- package/lib/plugins/security/index.js +1 -2
- package/lib/plugins/security/index.js.map +1 -1
- package/lib/plugins/service-channels/capacity/index.js +145 -112
- package/lib/plugins/service-channels/capacity/index.js.map +1 -1
- package/lib/plugins/service-channels/index.e2e-spec.js +5 -6
- package/lib/plugins/service-channels/index.e2e-spec.js.map +1 -1
- package/lib/plugins/service-channels/index.js +1 -2
- package/lib/plugins/service-channels/index.js.map +1 -1
- package/lib/plugins/slack/index.e2e-spec.js +1 -1
- package/lib/plugins/slack/index.e2e-spec.js.map +1 -1
- package/lib/plugins/slack/index.js +97 -28
- package/lib/plugins/slack/index.js.map +1 -1
- package/lib/plugins/user-access-policies/index.e2e-spec.js +3 -5
- package/lib/plugins/user-access-policies/index.e2e-spec.js.map +1 -1
- package/lib/plugins/user-access-policies/index.js +95 -26
- package/lib/plugins/user-access-policies/index.js.map +1 -1
- package/lib/plugins/user-access-policies/page.d.ts +2 -1
- package/lib/plugins/user-access-policies/page.js +1 -7
- package/lib/plugins/user-access-policies/page.js.map +1 -1
- package/lib/plugins/utils.js +2 -7
- package/lib/plugins/utils.js.map +1 -1
- package/oclif.manifest.json +67 -71
- package/package.json +10 -8
- package/lib/commands/browserforce/plan.d.ts +0 -10
- package/lib/commands/browserforce/plan.js +0 -56
- package/lib/commands/browserforce/plan.js.map +0 -1
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import type { Page } from 'playwright';
|
|
2
|
+
import { type SalesforceUrlPath } from '../../../browserforce.js';
|
|
2
3
|
export declare class FieldDependencyPage {
|
|
3
4
|
private page;
|
|
4
5
|
constructor(page: Page);
|
|
5
|
-
static getUrl(customObjectId: string):
|
|
6
|
+
static getUrl(customObjectId: string): SalesforceUrlPath;
|
|
6
7
|
clickDeleteDependencyActionForField(customFieldId: string): Promise<FieldDependencyPage>;
|
|
7
8
|
}
|
|
8
9
|
export declare class NewFieldDependencyPage {
|
|
9
10
|
protected page: Page;
|
|
10
11
|
protected saveButton: string;
|
|
11
12
|
constructor(page: Page);
|
|
12
|
-
static getUrl(customObjectId: string, dependentFieldId: string, controllingFieldId: string):
|
|
13
|
+
static getUrl(customObjectId: string, dependentFieldId: string, controllingFieldId: string): SalesforceUrlPath;
|
|
13
14
|
save(): Promise<void>;
|
|
14
15
|
}
|
|
@@ -5,13 +5,11 @@ export class FieldDependencyPage {
|
|
|
5
5
|
this.page = page;
|
|
6
6
|
}
|
|
7
7
|
static getUrl(customObjectId) {
|
|
8
|
-
return
|
|
8
|
+
return `/setup/ui/dependencyList.jsp?tableEnumOrId=${customObjectId.substring(0, 15)}&setupid=CustomObjects`;
|
|
9
9
|
}
|
|
10
10
|
async clickDeleteDependencyActionForField(customFieldId) {
|
|
11
11
|
// wait for "new" button in field dependencies releated list header
|
|
12
|
-
await this.page
|
|
13
|
-
.locator('div.listRelatedObject div.pbHeader input[name="new"]')
|
|
14
|
-
.waitFor();
|
|
12
|
+
await this.page.locator('div.listRelatedObject div.pbHeader input[name="new"]').waitFor();
|
|
15
13
|
const xpath = `//a[contains(@href, "/p/dependency/NewDependencyUI/e") and contains(@href, "delID=${customFieldId.substring(0, 15)}")]`;
|
|
16
14
|
const actionLinks = await this.page.locator(`xpath=${xpath}`).all();
|
|
17
15
|
if (actionLinks.length > 0) {
|
|
@@ -19,10 +17,7 @@ export class FieldDependencyPage {
|
|
|
19
17
|
await dialog.accept();
|
|
20
18
|
});
|
|
21
19
|
await Promise.all([
|
|
22
|
-
Promise.race([
|
|
23
|
-
this.page.waitForResponse(/setup\/ui\/dependencyList.jsp/),
|
|
24
|
-
waitForPageErrors(this.page),
|
|
25
|
-
]),
|
|
20
|
+
Promise.race([this.page.waitForResponse(/setup\/ui\/dependencyList.jsp/), waitForPageErrors(this.page)]),
|
|
26
21
|
actionLinks[0].click(),
|
|
27
22
|
]);
|
|
28
23
|
}
|
|
@@ -36,7 +31,7 @@ export class NewFieldDependencyPage {
|
|
|
36
31
|
this.page = page;
|
|
37
32
|
}
|
|
38
33
|
static getUrl(customObjectId, dependentFieldId, controllingFieldId) {
|
|
39
|
-
return
|
|
34
|
+
return `/p/dependency/NewDependencyUI/e?tableEnumOrId=${customObjectId.substring(0, 15)}&setupid=CustomObjects&controller=${controllingFieldId.substring(0, 15)}&dependent=${dependentFieldId.substring(0, 15)}&retURL=/${customObjectId.substring(0, 15)}`;
|
|
40
35
|
}
|
|
41
36
|
async save() {
|
|
42
37
|
await this.page.locator(this.saveButton).first().click();
|
|
@@ -49,11 +44,7 @@ export class NewFieldDependencyPage {
|
|
|
49
44
|
await dialog.accept();
|
|
50
45
|
});
|
|
51
46
|
await this.page.locator(this.saveButton).first().click();
|
|
52
|
-
await Promise.race([
|
|
53
|
-
this.page.waitForURL((url) => /\/01I\w{12}/.test(url.pathname)),
|
|
54
|
-
waitForPageErrors(this.page),
|
|
55
|
-
]);
|
|
56
|
-
await this.page.close();
|
|
47
|
+
await Promise.race([this.page.waitForURL((url) => /\/01I\w{12}/.test(url.pathname)), waitForPageErrors(this.page)]);
|
|
57
48
|
}
|
|
58
49
|
}
|
|
59
50
|
//# sourceMappingURL=pages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../../src/plugins/picklists/field-dependencies/pages.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../../src/plugins/picklists/field-dependencies/pages.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BrowserforcePlugin } from '../../plugin.js';
|
|
2
2
|
import { Config as FieldDependenciesConfig } from './field-dependencies/index.js';
|
|
3
|
-
type Config = {
|
|
3
|
+
export type Config = {
|
|
4
4
|
picklistValues?: PicklistValuesConfig[];
|
|
5
5
|
fieldDependencies?: FieldDependenciesConfig;
|
|
6
6
|
};
|
|
@@ -3,30 +3,49 @@ import * as child from 'child_process';
|
|
|
3
3
|
import { readFileSync } from 'node:fs';
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
5
5
|
import * as path from 'path';
|
|
6
|
-
import { Picklists } from './index.js';
|
|
7
6
|
import { FieldDependencies } from './field-dependencies/index.js';
|
|
7
|
+
import { Picklists } from './index.js';
|
|
8
8
|
const __dirname = fileURLToPath(new URL('.', import.meta.url));
|
|
9
9
|
const readJsonFile = function (u) {
|
|
10
10
|
return JSON.parse(readFileSync(new URL(u, import.meta.url), 'utf8'));
|
|
11
11
|
};
|
|
12
12
|
describe(Picklists.name, function () {
|
|
13
|
-
this.timeout('
|
|
13
|
+
this.timeout('10m');
|
|
14
14
|
let plugin;
|
|
15
15
|
before(() => {
|
|
16
|
-
plugin = new Picklists(global.
|
|
16
|
+
plugin = new Picklists(global.browserforce);
|
|
17
17
|
});
|
|
18
18
|
after(() => {
|
|
19
19
|
it('should remove the CustomObject', async () => {
|
|
20
|
-
|
|
21
|
-
await
|
|
20
|
+
await global.browserforce.connection.metadata.delete('CustomObject', ['Vehicle__c']);
|
|
21
|
+
await global.browserforce.connection.metadata.delete('GlobalValueSet', ['VehicleGears', 'VehicleTransmission']);
|
|
22
22
|
});
|
|
23
23
|
});
|
|
24
24
|
const configNew = readJsonFile('./new.json').settings.picklists;
|
|
25
25
|
const configReplace = readJsonFile('./replace.json').settings.picklists;
|
|
26
|
-
const configReplaceAndDelete = readJsonFile('./replace-and-delete.json')
|
|
27
|
-
.settings.picklists;
|
|
26
|
+
const configReplaceAndDelete = readJsonFile('./replace-and-delete.json').settings.picklists;
|
|
28
27
|
const configDeactivate = readJsonFile('./deactivate.json').settings.picklists;
|
|
29
28
|
const configActivate = readJsonFile('./activate.json').settings.picklists;
|
|
29
|
+
const configDeactivateWithDep = {
|
|
30
|
+
picklistValues: [
|
|
31
|
+
{
|
|
32
|
+
metadataType: 'CustomField',
|
|
33
|
+
metadataFullName: 'Vehicle__c.Type__c',
|
|
34
|
+
value: 'A',
|
|
35
|
+
active: false,
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
};
|
|
39
|
+
const configActivateWithDep = {
|
|
40
|
+
picklistValues: [
|
|
41
|
+
{
|
|
42
|
+
metadataType: 'CustomField',
|
|
43
|
+
metadataFullName: 'Vehicle__c.Type__c',
|
|
44
|
+
value: 'A',
|
|
45
|
+
active: true,
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
};
|
|
30
49
|
const configReplaceAndDeactivate = readJsonFile('./replace-and-deactivate.json').settings.picklists;
|
|
31
50
|
it('should deploy a CustomObject for testing', () => {
|
|
32
51
|
const sourceDeployCmd = child.spawnSync('sf', [
|
|
@@ -62,6 +81,12 @@ describe(Picklists.name, function () {
|
|
|
62
81
|
it('should activate picklist value', async () => {
|
|
63
82
|
await plugin.run(configActivate);
|
|
64
83
|
});
|
|
84
|
+
it('should deactivate picklist value having a dependency', async () => {
|
|
85
|
+
await plugin.run(configDeactivateWithDep);
|
|
86
|
+
});
|
|
87
|
+
it('should activate picklist value having a dependency', async () => {
|
|
88
|
+
await plugin.run(configActivateWithDep);
|
|
89
|
+
});
|
|
65
90
|
it('should not do anything when the picklist values already exist', async () => {
|
|
66
91
|
const res = await plugin.run(configActivate);
|
|
67
92
|
assert.deepStrictEqual(res, { message: 'no action necessary' });
|
|
@@ -73,14 +98,11 @@ describe(Picklists.name, function () {
|
|
|
73
98
|
this.timeout('10m');
|
|
74
99
|
let plugin;
|
|
75
100
|
before(() => {
|
|
76
|
-
plugin = new FieldDependencies(global.
|
|
101
|
+
plugin = new FieldDependencies(global.browserforce);
|
|
77
102
|
});
|
|
78
|
-
const configSet = readJsonFile('./field-dependencies/set.json').settings
|
|
79
|
-
|
|
80
|
-
const
|
|
81
|
-
.picklists.fieldDependencies;
|
|
82
|
-
const configChange = readJsonFile('./field-dependencies/change.json')
|
|
83
|
-
.settings.picklists.fieldDependencies;
|
|
103
|
+
const configSet = readJsonFile('./field-dependencies/set.json').settings.picklists.fieldDependencies;
|
|
104
|
+
const configUnset = readJsonFile('./field-dependencies/unset.json').settings.picklists.fieldDependencies;
|
|
105
|
+
const configChange = readJsonFile('./field-dependencies/change.json').settings.picklists.fieldDependencies;
|
|
84
106
|
it('should not do anything when the dependency is already set', async () => {
|
|
85
107
|
const res = await plugin.run(configSet);
|
|
86
108
|
assert.deepStrictEqual(res, { message: 'no action necessary' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/picklists/index.e2e-spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,KAAK,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/picklists/index.e2e-spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,89 @@
|
|
|
1
|
-
|
|
1
|
+
var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
|
|
2
|
+
if (value !== null && value !== void 0) {
|
|
3
|
+
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
4
|
+
var dispose, inner;
|
|
5
|
+
if (async) {
|
|
6
|
+
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
7
|
+
dispose = value[Symbol.asyncDispose];
|
|
8
|
+
}
|
|
9
|
+
if (dispose === void 0) {
|
|
10
|
+
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
11
|
+
dispose = value[Symbol.dispose];
|
|
12
|
+
if (async) inner = dispose;
|
|
13
|
+
}
|
|
14
|
+
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
15
|
+
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
|
16
|
+
env.stack.push({ value: value, dispose: dispose, async: async });
|
|
17
|
+
}
|
|
18
|
+
else if (async) {
|
|
19
|
+
env.stack.push({ async: true });
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
};
|
|
23
|
+
var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
|
|
24
|
+
return function (env) {
|
|
25
|
+
function fail(e) {
|
|
26
|
+
env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
27
|
+
env.hasError = true;
|
|
28
|
+
}
|
|
29
|
+
var r, s = 0;
|
|
30
|
+
function next() {
|
|
31
|
+
while (r = env.stack.pop()) {
|
|
32
|
+
try {
|
|
33
|
+
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
34
|
+
if (r.dispose) {
|
|
35
|
+
var result = r.dispose.call(r.value);
|
|
36
|
+
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
|
37
|
+
}
|
|
38
|
+
else s |= 1;
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
fail(e);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
45
|
+
if (env.hasError) throw env.error;
|
|
46
|
+
}
|
|
47
|
+
return next();
|
|
48
|
+
};
|
|
49
|
+
})(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
50
|
+
var e = new Error(message);
|
|
51
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
52
|
+
});
|
|
2
53
|
import { ensureArray } from '../../jsforce-utils.js';
|
|
3
54
|
import { BrowserforcePlugin } from '../../plugin.js';
|
|
4
|
-
import { FieldDependencies
|
|
5
|
-
import { DefaultPicklistAddPage, PicklistPage, StatusPicklistAddPage
|
|
55
|
+
import { FieldDependencies } from './field-dependencies/index.js';
|
|
56
|
+
import { DefaultPicklistAddPage, PicklistPage, StatusPicklistAddPage } from './pages.js';
|
|
6
57
|
import { determineStandardValueSetEditUrl } from './standard-value-set.js';
|
|
7
58
|
export class Picklists extends BrowserforcePlugin {
|
|
8
59
|
async retrieve(definition) {
|
|
9
|
-
const conn = this.org.getConnection();
|
|
10
60
|
const result = { picklistValues: [], fieldDependencies: [] };
|
|
11
61
|
if (definition.picklistValues) {
|
|
12
|
-
const fileProperties = await listMetadata(
|
|
62
|
+
const fileProperties = await listMetadata(this.browserforce.connection, definition.picklistValues.map((x) => x.metadataType));
|
|
13
63
|
for (const action of definition.picklistValues) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
: undefined;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
64
|
+
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
65
|
+
try {
|
|
66
|
+
// check if given picklist values exist
|
|
67
|
+
const picklistUrl = getPicklistUrl(action.metadataType, action.metadataFullName, fileProperties);
|
|
68
|
+
const page = __addDisposableResource(env_1, await this.browserforce.openPage(picklistUrl), true);
|
|
69
|
+
const picklistPage = new PicklistPage(page);
|
|
70
|
+
const values = await picklistPage.getPicklistValues();
|
|
71
|
+
const state = { ...action };
|
|
72
|
+
const valueMatch = action.value !== undefined ? values.find((x) => x.value === action.value) : undefined;
|
|
73
|
+
state.absent = !valueMatch;
|
|
74
|
+
state.active = valueMatch?.active;
|
|
75
|
+
state._newValueId = values.find((x) => x.value === action.newValue)?.id;
|
|
76
|
+
result.picklistValues.push(state);
|
|
77
|
+
}
|
|
78
|
+
catch (e_1) {
|
|
79
|
+
env_1.error = e_1;
|
|
80
|
+
env_1.hasError = true;
|
|
81
|
+
}
|
|
82
|
+
finally {
|
|
83
|
+
const result_1 = __disposeResources(env_1);
|
|
84
|
+
if (result_1)
|
|
85
|
+
await result_1;
|
|
86
|
+
}
|
|
28
87
|
}
|
|
29
88
|
}
|
|
30
89
|
if (definition.fieldDependencies) {
|
|
@@ -45,8 +104,7 @@ export class Picklists extends BrowserforcePlugin {
|
|
|
45
104
|
return target.active !== source?.active;
|
|
46
105
|
}
|
|
47
106
|
// replacing a picklist value is not idempotent
|
|
48
|
-
if (source?._newValueId &&
|
|
49
|
-
(target.value !== undefined || target.replaceAllBlankValues)) {
|
|
107
|
+
if (source?._newValueId && (target.value !== undefined || target.replaceAllBlankValues)) {
|
|
50
108
|
return true;
|
|
51
109
|
}
|
|
52
110
|
if (target.newValue && !source?._newValueId) {
|
|
@@ -68,58 +126,68 @@ export class Picklists extends BrowserforcePlugin {
|
|
|
68
126
|
return Object.keys(changes).length ? changes : undefined;
|
|
69
127
|
}
|
|
70
128
|
async apply(config) {
|
|
71
|
-
const conn = this.org.getConnection();
|
|
72
129
|
if (config.picklistValues) {
|
|
73
|
-
const fileProperties = await listMetadata(
|
|
130
|
+
const fileProperties = await listMetadata(this.browserforce.connection, config.picklistValues.map((x) => x.metadataType));
|
|
74
131
|
for (const action of config.picklistValues) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
await
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
const newValueId = values.find((picklist) => picklist.value === action.newValue)?.id;
|
|
87
|
-
const replacePage = await picklistPage.clickDeleteActionForValue(action.value);
|
|
88
|
-
await replacePage.replaceAndDelete(newValueId);
|
|
89
|
-
await replacePage.save();
|
|
90
|
-
}
|
|
91
|
-
else if (action.value === undefined &&
|
|
92
|
-
action.newValue !== undefined &&
|
|
93
|
-
action.replaceAllBlankValues === undefined) {
|
|
94
|
-
// create
|
|
95
|
-
await picklistPage.clickNewActionButton();
|
|
96
|
-
if (action.statusCategory) {
|
|
97
|
-
await new StatusPicklistAddPage(page).add(action.newValue, action.statusCategory);
|
|
132
|
+
// Error: There's another picklist operation in progress for this object. Try your change again later.
|
|
133
|
+
// Error: Someone else is editing this picklist or its values. Try again later."
|
|
134
|
+
await this.browserforce.retry(async () => {
|
|
135
|
+
const env_2 = { stack: [], error: void 0, hasError: false };
|
|
136
|
+
try {
|
|
137
|
+
const picklistUrl = getPicklistUrl(action.metadataType, action.metadataFullName, fileProperties);
|
|
138
|
+
const page = __addDisposableResource(env_2, await this.browserforce.openPage(picklistUrl), true);
|
|
139
|
+
const picklistPage = new PicklistPage(page);
|
|
140
|
+
if (action.active !== undefined && action.value !== undefined) {
|
|
141
|
+
// activate/deactivate
|
|
142
|
+
await picklistPage.clickActivateDeactivateActionForValue(action.value, action.active);
|
|
98
143
|
}
|
|
99
|
-
else {
|
|
100
|
-
|
|
144
|
+
else if (action.absent && action.value !== undefined) {
|
|
145
|
+
// delete
|
|
146
|
+
const values = await picklistPage.getPicklistValues();
|
|
147
|
+
const newValueId = values.find((picklist) => picklist.value === action.newValue)?.id;
|
|
148
|
+
const replacePage = await picklistPage.clickDeleteActionForValue(action.value);
|
|
149
|
+
await replacePage.replaceAndDelete(newValueId);
|
|
150
|
+
await replacePage.save();
|
|
101
151
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
152
|
+
else if (action.value === undefined &&
|
|
153
|
+
action.newValue !== undefined &&
|
|
154
|
+
action.replaceAllBlankValues === undefined) {
|
|
155
|
+
// create
|
|
156
|
+
await picklistPage.clickNewActionButton();
|
|
157
|
+
if (action.statusCategory) {
|
|
158
|
+
await new StatusPicklistAddPage(page).add(action.newValue, action.statusCategory);
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
await new DefaultPicklistAddPage(page).add(action.newValue);
|
|
162
|
+
}
|
|
111
163
|
}
|
|
112
|
-
if (newValue
|
|
113
|
-
|
|
164
|
+
else if (action.value !== undefined && action.newValue !== undefined) {
|
|
165
|
+
// replace
|
|
166
|
+
const values = await picklistPage.getPicklistValues();
|
|
167
|
+
const newValue = values.find((picklist) => picklist.value === action.newValue);
|
|
168
|
+
let newValueLabel;
|
|
169
|
+
if (newValue?.label) {
|
|
170
|
+
newValueLabel = newValue.label;
|
|
171
|
+
}
|
|
172
|
+
if (newValue?.statusCategory !== undefined) {
|
|
173
|
+
newValueLabel += ` (${newValue.statusCategory})`;
|
|
174
|
+
}
|
|
175
|
+
const replacePage = await picklistPage.clickReplaceActionButton();
|
|
176
|
+
await replacePage.replace(action.value, newValueLabel, action.replaceAllBlankValues);
|
|
114
177
|
}
|
|
115
|
-
|
|
116
|
-
|
|
178
|
+
else {
|
|
179
|
+
throw new Error(`Could not determine action for input: ${JSON.stringify(action)}`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
catch (e_2) {
|
|
183
|
+
env_2.error = e_2;
|
|
184
|
+
env_2.hasError = true;
|
|
117
185
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
186
|
+
finally {
|
|
187
|
+
const result_2 = __disposeResources(env_2);
|
|
188
|
+
if (result_2)
|
|
189
|
+
await result_2;
|
|
121
190
|
}
|
|
122
|
-
await page.close();
|
|
123
191
|
});
|
|
124
192
|
}
|
|
125
193
|
}
|
|
@@ -136,12 +204,12 @@ function getPicklistUrl(type, fullName, fileProperties) {
|
|
|
136
204
|
else {
|
|
137
205
|
const fileProperty = fileProperties?.find((x) => x.type === type && x.fullName === fullName);
|
|
138
206
|
if (fileProperty) {
|
|
139
|
-
picklistUrl =
|
|
207
|
+
picklistUrl = `/${fileProperty.id}`;
|
|
140
208
|
}
|
|
141
209
|
}
|
|
142
210
|
return picklistUrl;
|
|
143
211
|
}
|
|
144
|
-
async function listMetadata(
|
|
212
|
+
async function listMetadata(connection, sobjectTypes) {
|
|
145
213
|
let uniqueSobjectTypes = [...new Set(sobjectTypes)];
|
|
146
214
|
// don't list StandardValueSet as the FileProperties are broken
|
|
147
215
|
uniqueSobjectTypes = uniqueSobjectTypes.filter((x) => x !== 'StandardValueSet');
|
|
@@ -151,7 +219,7 @@ async function listMetadata(conn, sobjectTypes) {
|
|
|
151
219
|
};
|
|
152
220
|
});
|
|
153
221
|
if (queries.length) {
|
|
154
|
-
const fileProperties = await
|
|
222
|
+
const fileProperties = await connection.metadata.list(queries);
|
|
155
223
|
return ensureArray(fileProperties);
|
|
156
224
|
}
|
|
157
225
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/picklists/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/picklists/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,12 +6,13 @@ export class PicklistPage {
|
|
|
6
6
|
}
|
|
7
7
|
async getPicklistValues() {
|
|
8
8
|
// wait for New button for picklist values specifically
|
|
9
|
-
await this.page
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
await this.page.locator('input[name="new"][onclick*="picklist_masteredit"]').waitFor();
|
|
10
|
+
// The sections unfortunately don't all have ids
|
|
11
|
+
// - Field Dependencies
|
|
12
|
+
// - Validation Rules #ValidationFormulaList
|
|
13
|
+
// - Values <-- rows with a href matching picklist
|
|
14
|
+
// - Inactive Values <-- rows a href matching picklist
|
|
15
|
+
const rows = await this.page.locator('div.bRelatedList tr:has(td.actionColumn):has(a[href*="picklist"])').all();
|
|
15
16
|
const picklists = await Promise.all(rows.map((row) => (async () => {
|
|
16
17
|
const urlPath = await row
|
|
17
18
|
.locator('xpath=//td[1]//a[contains(@href, "/setup/ui/")]')
|
|
@@ -24,9 +25,7 @@ export class PicklistPage {
|
|
|
24
25
|
id: picklistId,
|
|
25
26
|
value: await row.locator('td').nth(1).textContent(),
|
|
26
27
|
label: await row.locator('th').first().textContent(),
|
|
27
|
-
active: (await row
|
|
28
|
-
.locator('xpath=//td[1]//a[contains(@href, "/setup/ui/picklist_masteredit")]')
|
|
29
|
-
.count()) === 1,
|
|
28
|
+
active: (await row.locator('xpath=//td[1]//a[contains(@href, "/setup/ui/picklist_masteredit")]').count()) === 1,
|
|
30
29
|
...(statusCategory?.length ? { statusCategory } : {}),
|
|
31
30
|
};
|
|
32
31
|
})()));
|
|
@@ -124,9 +123,7 @@ export class StatusPicklistAddPage {
|
|
|
124
123
|
if (newValue !== undefined && newValue !== null) {
|
|
125
124
|
await this.page.locator('input#p1').describe('label').fill(newValue);
|
|
126
125
|
await this.page.locator('input#p3').describe('api name').fill(newValue);
|
|
127
|
-
await this.page
|
|
128
|
-
.locator('select#p5')
|
|
129
|
-
.selectOption({ label: statusCategory });
|
|
126
|
+
await this.page.locator('select#p5').selectOption({ label: statusCategory });
|
|
130
127
|
}
|
|
131
128
|
await this.save();
|
|
132
129
|
}
|
|
@@ -149,25 +146,16 @@ export class PicklistReplacePage {
|
|
|
149
146
|
await this.page.locator('input#nf').describe('old value').fill(value);
|
|
150
147
|
}
|
|
151
148
|
if (newValueLabel !== undefined && newValueLabel !== null) {
|
|
152
|
-
await this.page
|
|
153
|
-
.locator('select#nv')
|
|
154
|
-
.describe('new value')
|
|
155
|
-
.selectOption({ label: newValueLabel });
|
|
149
|
+
await this.page.locator('select#nv').describe('new value').selectOption({ label: newValueLabel });
|
|
156
150
|
}
|
|
157
151
|
if (replaceAllBlankValues) {
|
|
158
|
-
await this.page
|
|
159
|
-
.locator('input#fnv')
|
|
160
|
-
.describe('replace all blank values')
|
|
161
|
-
.check();
|
|
152
|
+
await this.page.locator('input#fnv').describe('replace all blank values').check();
|
|
162
153
|
}
|
|
163
154
|
await this.save();
|
|
164
155
|
}
|
|
165
156
|
async save() {
|
|
166
157
|
await this.page.locator(this.saveButton).click();
|
|
167
|
-
await Promise.race([
|
|
168
|
-
this.page.waitForURL((url) => url.searchParams.has('msg')),
|
|
169
|
-
waitForPageErrors(this.page),
|
|
170
|
-
]);
|
|
158
|
+
await Promise.race([this.page.waitForURL((url) => url.searchParams.has('msg')), waitForPageErrors(this.page)]);
|
|
171
159
|
}
|
|
172
160
|
}
|
|
173
161
|
export class PicklistReplaceAndDeletePage extends PicklistReplacePage {
|
|
@@ -177,10 +165,7 @@ export class PicklistReplaceAndDeletePage extends PicklistReplacePage {
|
|
|
177
165
|
}
|
|
178
166
|
async replaceAndDelete(newValueId) {
|
|
179
167
|
if (newValueId !== undefined && newValueId !== null) {
|
|
180
|
-
await this.page
|
|
181
|
-
.locator('select#p13')
|
|
182
|
-
.describe('new value')
|
|
183
|
-
.selectOption(newValueId);
|
|
168
|
+
await this.page.locator('select#p13').describe('new value').selectOption(newValueId);
|
|
184
169
|
}
|
|
185
170
|
else {
|
|
186
171
|
await this.page.locator('input#ReplaceValueWithNullValue').check();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../src/plugins/picklists/pages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAgB1D,MAAM,OAAO,YAAY;IACf,IAAI,CAAO;IAEnB,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC5B,uDAAuD;QACvD,MAAM,IAAI,CAAC,IAAI
|
|
1
|
+
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../src/plugins/picklists/pages.ts"],"names":[],"mappings":"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"}
|