sfdx-browserforce-plugin 5.2.0-next.1 → 5.2.0-next.2
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/browserforce.d.ts +3 -7
- package/lib/browserforce.js +22 -45
- package/lib/browserforce.js.map +1 -1
- package/lib/pages/login.d.ts +0 -1
- package/lib/pages/login.js +6 -20
- package/lib/pages/login.js.map +1 -1
- package/lib/plugins/activity-settings/index.js +4 -7
- package/lib/plugins/activity-settings/index.js.map +1 -1
- package/lib/plugins/company-information/index.js +2 -10
- package/lib/plugins/company-information/index.js.map +1 -1
- package/lib/plugins/customer-portal/available-custom-objects/index.js +1 -1
- package/lib/plugins/customer-portal/available-custom-objects/index.js.map +1 -1
- package/lib/plugins/customer-portal/enabled/index.js +6 -6
- package/lib/plugins/customer-portal/enabled/index.js.map +1 -1
- package/lib/plugins/customer-portal/index.e2e-spec.js +6 -13
- package/lib/plugins/customer-portal/index.e2e-spec.js.map +1 -1
- package/lib/plugins/customer-portal/portals/index.js +10 -15
- package/lib/plugins/customer-portal/portals/index.js.map +1 -1
- package/lib/plugins/density-settings/index.js +6 -1
- package/lib/plugins/density-settings/index.js.map +1 -1
- package/lib/plugins/email-deliverability/index.js +2 -7
- package/lib/plugins/email-deliverability/index.js.map +1 -1
- package/lib/plugins/high-velocity-sales-settings/page.d.ts +1 -1
- package/lib/plugins/high-velocity-sales-settings/page.js +4 -5
- package/lib/plugins/high-velocity-sales-settings/page.js.map +1 -1
- package/lib/plugins/history-tracking/index.e2e-spec.js +5 -0
- package/lib/plugins/history-tracking/index.e2e-spec.js.map +1 -1
- package/lib/plugins/history-tracking/index.js +18 -13
- package/lib/plugins/history-tracking/index.js.map +1 -1
- package/lib/plugins/home-page-layouts/index.js +5 -2
- package/lib/plugins/home-page-layouts/index.js.map +1 -1
- package/lib/plugins/lightning-experience-settings/index.d.ts +1 -2
- package/lib/plugins/lightning-experience-settings/index.e2e-spec.js +8 -0
- package/lib/plugins/lightning-experience-settings/index.e2e-spec.js.map +1 -1
- package/lib/plugins/lightning-experience-settings/index.js +24 -40
- package/lib/plugins/lightning-experience-settings/index.js.map +1 -1
- package/lib/plugins/linkedin-sales-navigator-settings/index.js +2 -2
- package/lib/plugins/linkedin-sales-navigator-settings/index.js.map +1 -1
- package/lib/plugins/linkedin-sales-navigator-settings/page.d.ts +2 -4
- package/lib/plugins/linkedin-sales-navigator-settings/page.js +17 -22
- package/lib/plugins/linkedin-sales-navigator-settings/page.js.map +1 -1
- package/lib/plugins/omni-channel-settings/index.js +5 -2
- package/lib/plugins/omni-channel-settings/index.js.map +1 -1
- package/lib/plugins/opportunity-splits/pages/layout-selection.d.ts +1 -1
- package/lib/plugins/opportunity-splits/pages/layout-selection.js +1 -1
- package/lib/plugins/opportunity-splits/pages/layout-selection.js.map +1 -1
- package/lib/plugins/opportunity-splits/pages/overview.d.ts +1 -1
- package/lib/plugins/opportunity-splits/pages/overview.js +1 -1
- package/lib/plugins/opportunity-splits/pages/overview.js.map +1 -1
- package/lib/plugins/opportunity-splits/pages/setup.d.ts +1 -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.js +2 -2
- package/lib/plugins/permission-sets/index.js.map +1 -1
- package/lib/plugins/permission-sets/service-presence-status/index.js +5 -1
- package/lib/plugins/permission-sets/service-presence-status/index.js.map +1 -1
- package/lib/plugins/picklists/field-dependencies/pages.d.ts +2 -2
- package/lib/plugins/picklists/field-dependencies/pages.js +14 -5
- package/lib/plugins/picklists/field-dependencies/pages.js.map +1 -1
- package/lib/plugins/picklists/index.e2e-spec.js +38 -32
- package/lib/plugins/picklists/index.e2e-spec.js.map +1 -1
- package/lib/plugins/picklists/pages.d.ts +4 -4
- package/lib/plugins/picklists/pages.js +39 -18
- package/lib/plugins/picklists/pages.js.map +1 -1
- package/lib/plugins/record-types/index.d.ts +1 -0
- package/lib/plugins/record-types/index.e2e-spec.js +4 -0
- package/lib/plugins/record-types/index.e2e-spec.js.map +1 -1
- package/lib/plugins/record-types/index.js +7 -5
- package/lib/plugins/record-types/index.js.map +1 -1
- package/lib/plugins/record-types/pages.d.ts +2 -3
- package/lib/plugins/record-types/pages.js +9 -12
- package/lib/plugins/record-types/pages.js.map +1 -1
- package/lib/plugins/relate-contact-to-multiple-accounts/index.d.ts +1 -1
- package/lib/plugins/relate-contact-to-multiple-accounts/index.e2e-spec.js +1 -0
- 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 +1 -2
- package/lib/plugins/relate-contact-to-multiple-accounts/index.js.map +1 -1
- package/lib/plugins/reports-and-dashboards/folder-sharing/index.js +6 -8
- package/lib/plugins/reports-and-dashboards/folder-sharing/index.js.map +1 -1
- package/lib/plugins/salesforce-cpq-config/index.js +5 -15
- package/lib/plugins/salesforce-cpq-config/index.js.map +1 -1
- package/lib/plugins/security/authentication-configuration/index.e2e-spec.js +3 -11
- package/lib/plugins/security/authentication-configuration/index.e2e-spec.js.map +1 -1
- package/lib/plugins/security/authentication-configuration/index.js +2 -6
- package/lib/plugins/security/authentication-configuration/index.js.map +1 -1
- package/lib/plugins/security/certificate-and-key-management/index.e2e-spec.js +23 -6
- 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 +21 -18
- package/lib/plugins/security/certificate-and-key-management/index.js.map +1 -1
- package/lib/plugins/service-channels/capacity/index.js +10 -11
- package/lib/plugins/service-channels/capacity/index.js.map +1 -1
- package/lib/plugins/service-channels/index.e2e-spec.js +7 -0
- package/lib/plugins/service-channels/index.e2e-spec.js.map +1 -1
- package/lib/plugins/service-channels/index.js +2 -2
- package/lib/plugins/service-channels/index.js.map +1 -1
- package/lib/plugins/slack/index.js +8 -13
- package/lib/plugins/slack/index.js.map +1 -1
- package/lib/plugins/user-access-policies/page.js +5 -8
- package/lib/plugins/user-access-policies/page.js.map +1 -1
- package/oclif.manifest.json +1 -1
- package/package.json +1 -1
|
@@ -11,10 +11,8 @@ const ACCESS_LEVEL_VALUES = new Map([
|
|
|
11
11
|
export class EmailDeliverability extends BrowserforcePlugin {
|
|
12
12
|
async retrieve(definition) {
|
|
13
13
|
const page = await this.browserforce.openPage(BASE_PATH);
|
|
14
|
-
await page.locator(ACCESS_LEVEL_SELECTOR).waitFor();
|
|
15
14
|
const selectedOption = await page
|
|
16
15
|
.locator(`${ACCESS_LEVEL_SELECTOR} > option[selected]`)
|
|
17
|
-
.first()
|
|
18
16
|
.textContent();
|
|
19
17
|
await page.close();
|
|
20
18
|
if (!selectedOption) {
|
|
@@ -30,12 +28,9 @@ export class EmailDeliverability extends BrowserforcePlugin {
|
|
|
30
28
|
throw new Error(`Invalid email access level ${config.accessLevel}`);
|
|
31
29
|
}
|
|
32
30
|
const page = await this.browserforce.openPage(BASE_PATH);
|
|
33
|
-
await page.locator(ACCESS_LEVEL_SELECTOR).waitFor();
|
|
34
31
|
await page.locator(ACCESS_LEVEL_SELECTOR).selectOption(accessLevelNumber);
|
|
35
|
-
await
|
|
36
|
-
|
|
37
|
-
page.locator(SAVE_BUTTON_SELECTOR).click(),
|
|
38
|
-
]);
|
|
32
|
+
await page.locator(SAVE_BUTTON_SELECTOR).click();
|
|
33
|
+
await page.locator(CONFIRM_MESSAGE_SELECTOR).waitFor();
|
|
39
34
|
await page.close();
|
|
40
35
|
}
|
|
41
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/email-deliverability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,SAAS,GAAG,wCAAwC,CAAC;AAE3D,MAAM,qBAAqB,GAAG,6CAA6C,CAAC;AAC5E,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AAC5D,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAErD,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,CAAC,WAAW,EAAE,GAAG,CAAC;IAClB,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC1B,CAAC,WAAW,EAAE,GAAG,CAAC;CACnB,CAAC,CAAC;AAMH,MAAM,OAAO,mBAAoB,SAAQ,kBAAkB;IAClD,KAAK,CAAC,QAAQ,CAAC,UAAmB;QACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/email-deliverability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,SAAS,GAAG,wCAAwC,CAAC;AAE3D,MAAM,qBAAqB,GAAG,6CAA6C,CAAC;AAC5E,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AAC5D,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAErD,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,CAAC,WAAW,EAAE,GAAG,CAAC;IAClB,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC1B,CAAC,WAAW,EAAE,GAAG,CAAC;CACnB,CAAC,CAAC;AAMH,MAAM,OAAO,mBAAoB,SAAQ,kBAAkB;IAClD,KAAK,CAAC,QAAQ,CAAC,UAAmB;QACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,cAAc,GAAG,MAAM,IAAI;aAC9B,OAAO,CAAC,GAAG,qBAAqB,qBAAqB,CAAC;aACtD,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QACD,OAAO;YACL,WAAW,EAAE,cAAc;SAC5B,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACtE,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QAC1E,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;QACjD,MAAM,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { waitForPageErrors } from '../../browserforce.js';
|
|
2
2
|
const SET_UP_AND_ENABLE_HVS_BUTTON = 'button.setupAndEnableButton';
|
|
3
3
|
const ENABLE_TOGGLE = '#toggleHighVelocitySalesPref';
|
|
4
4
|
const AUTOMATION_TAB_ITEM = 'lightning-tab-bar li[data-tab-value="automationTab"]';
|
|
@@ -16,12 +16,11 @@ export class HighVelocitySalesSetupPage {
|
|
|
16
16
|
if (tabCount > 0) {
|
|
17
17
|
await this.page.locator(AUTOMATION_TAB_ITEM).click();
|
|
18
18
|
}
|
|
19
|
-
await this.page.locator(SET_UP_AND_ENABLE_HVS_BUTTON).
|
|
20
|
-
await Promise.
|
|
19
|
+
await this.page.locator(SET_UP_AND_ENABLE_HVS_BUTTON).click();
|
|
20
|
+
await Promise.race([
|
|
21
21
|
this.page.locator(ENABLE_TOGGLE).waitFor({ timeout: 90_000 }),
|
|
22
|
-
this.page
|
|
22
|
+
waitForPageErrors(this.page),
|
|
23
23
|
]);
|
|
24
|
-
await throwPageErrors(this.page);
|
|
25
24
|
await this.page.close();
|
|
26
25
|
}
|
|
27
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../../src/plugins/high-velocity-sales-settings/page.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../../src/plugins/high-velocity-sales-settings/page.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,4BAA4B,GAAG,6BAA6B,CAAC;AACnE,MAAM,aAAa,GAAG,8BAA8B,CAAC;AACrD,MAAM,mBAAmB,GACvB,sDAAsD,CAAC;AAEzD,MAAM,OAAO,0BAA0B;IAC7B,IAAI,CAAO;IAEnB,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,MAAM,CAAC,MAAM;QAClB,OAAO,sCAAsC,CAAC;IAChD,CAAC;IAEM,KAAK,CAAC,cAAc;QACzB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;QACtE,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;QACvD,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9D,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC7D,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;SAC7B,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -102,5 +102,10 @@ describe(HistoryTracking.name, function () {
|
|
|
102
102
|
const res = await plugin.retrieve(disableHistoryTracking);
|
|
103
103
|
assert.deepStrictEqual(res, disableHistoryTracking);
|
|
104
104
|
});
|
|
105
|
+
it('should remove the CustomObject and field', async () => {
|
|
106
|
+
const conn = global.bf.org.getConnection();
|
|
107
|
+
await conn.metadata.delete('CustomObject', ['Test__c']);
|
|
108
|
+
await conn.metadata.delete('CustomField', ['Contact.Test__c']);
|
|
109
|
+
});
|
|
105
110
|
});
|
|
106
111
|
//# sourceMappingURL=index.e2e-spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/history-tracking/index.e2e-spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/history-tracking/index.e2e-spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { waitForPageErrors } from '../../browserforce.js';
|
|
1
2
|
import { BrowserforcePlugin } from '../../plugin.js';
|
|
2
3
|
const BASE_PATH = 'ui/setup/layout/FieldHistoryTracking?pEntity={APINAME}';
|
|
3
|
-
const ENABLE_HISTORY_SELECTOR = 'input[
|
|
4
|
+
const ENABLE_HISTORY_SELECTOR = 'input[type="checkbox"][id="enable"]';
|
|
4
5
|
const ENABLE_FIELD_HISTORY_SELECTOR = 'input[id="{APINAME}_fht"]';
|
|
5
|
-
const SAVE_BUTTON_SELECTOR = 'input[
|
|
6
|
+
const SAVE_BUTTON_SELECTOR = 'input[type="submit"][name="save"]';
|
|
6
7
|
export class HistoryTracking extends BrowserforcePlugin {
|
|
7
8
|
async retrieve(definition) {
|
|
8
9
|
const historyTrackingConfigs = [];
|
|
@@ -10,17 +11,16 @@ export class HistoryTracking extends BrowserforcePlugin {
|
|
|
10
11
|
// This is in case we have field tracking configured for custom fields
|
|
11
12
|
const tableEnumOrIdByObjectApiName = await this.getTableEnumOrIdByObjectApiName(definition);
|
|
12
13
|
// Now we can iterate over all history tracking configurations in the definition
|
|
13
|
-
for
|
|
14
|
+
for (const historyTrackingConfig of definition) {
|
|
14
15
|
const historyTrackingResult = { ...historyTrackingConfig };
|
|
15
16
|
// Open the object history tracking setup page
|
|
16
17
|
const page = await this.browserforce.openPage(BASE_PATH.replace('{APINAME}', tableEnumOrIdByObjectApiName.get(historyTrackingConfig.objectApiName)));
|
|
17
18
|
// Retrieve the object history tracking
|
|
18
19
|
// If this is a custom object, this checkbox does not exist, so skip
|
|
19
20
|
if (!historyTrackingConfig.objectApiName.includes('__c')) {
|
|
20
|
-
await page.locator(ENABLE_HISTORY_SELECTOR).waitFor();
|
|
21
21
|
historyTrackingResult.enableHistoryTracking = await page
|
|
22
22
|
.locator(ENABLE_HISTORY_SELECTOR)
|
|
23
|
-
.
|
|
23
|
+
.isChecked();
|
|
24
24
|
}
|
|
25
25
|
// If we have no field history tracking, there is nothing more to do
|
|
26
26
|
if (!historyTrackingConfig.fieldHistoryTracking) {
|
|
@@ -47,16 +47,17 @@ export class HistoryTracking extends BrowserforcePlugin {
|
|
|
47
47
|
// This is because custom fields are identified using their CustomField.Id value
|
|
48
48
|
const fieldSelectorByFieldApiName = await this.getFieldSelectorByFieldApiName(tableEnumOrIdByObjectApiName.get(historyTrackingConfig.objectApiName), historyTrackingConfig.fieldHistoryTracking);
|
|
49
49
|
// We can now retrieve the field history settings for the fields specified for the object
|
|
50
|
-
for
|
|
50
|
+
for (const fieldHistoryTracking of historyTrackingConfig.fieldHistoryTracking) {
|
|
51
51
|
const fieldHistoryTrackingResult = { ...fieldHistoryTracking };
|
|
52
52
|
const fieldApiName = fieldSelectorByFieldApiName.get(fieldHistoryTracking.fieldApiName);
|
|
53
53
|
fieldHistoryTrackingResult.enableHistoryTracking = await page
|
|
54
54
|
.locator(ENABLE_FIELD_HISTORY_SELECTOR.replace('{APINAME}', fieldApiName))
|
|
55
|
-
.
|
|
55
|
+
.isChecked();
|
|
56
56
|
fieldHistoryTrackingConfigs.push(fieldHistoryTrackingResult);
|
|
57
57
|
}
|
|
58
58
|
historyTrackingResult.fieldHistoryTracking = fieldHistoryTrackingConfigs;
|
|
59
59
|
historyTrackingConfigs.push(historyTrackingResult);
|
|
60
|
+
await page.close();
|
|
60
61
|
}
|
|
61
62
|
return historyTrackingConfigs;
|
|
62
63
|
}
|
|
@@ -65,16 +66,15 @@ export class HistoryTracking extends BrowserforcePlugin {
|
|
|
65
66
|
// This is in case we are configuring field tracking for custom fields
|
|
66
67
|
const tableEnumOrIdByObjectApiName = await this.getTableEnumOrIdByObjectApiName(plan);
|
|
67
68
|
// Now we can iterate over all history tracking configurations in the plan
|
|
68
|
-
for
|
|
69
|
+
for (const historyTrackingConfig of plan) {
|
|
69
70
|
// Open the object history tracking setup page
|
|
70
71
|
const page = await this.browserforce.openPage(BASE_PATH.replace('{APINAME}', tableEnumOrIdByObjectApiName.get(historyTrackingConfig.objectApiName)));
|
|
71
72
|
// Retrieve the object history tracking
|
|
72
73
|
// If this is a custom object, this checkbox does not exist, so skip
|
|
73
74
|
if (!historyTrackingConfig.objectApiName.includes('__c')) {
|
|
74
|
-
await page.locator(ENABLE_HISTORY_SELECTOR).waitFor();
|
|
75
75
|
const historyTrackingEnabled = await page
|
|
76
76
|
.locator(ENABLE_HISTORY_SELECTOR)
|
|
77
|
-
.
|
|
77
|
+
.isChecked();
|
|
78
78
|
if (historyTrackingConfig.enableHistoryTracking !== historyTrackingEnabled) {
|
|
79
79
|
// Click the checkbox
|
|
80
80
|
await page.locator(ENABLE_HISTORY_SELECTOR).click();
|
|
@@ -85,12 +85,12 @@ export class HistoryTracking extends BrowserforcePlugin {
|
|
|
85
85
|
// This is because custom fields are identified using their CustomField.Id value
|
|
86
86
|
const fieldSelectorByFieldApiName = await this.getFieldSelectorByFieldApiName(tableEnumOrIdByObjectApiName.get(historyTrackingConfig.objectApiName), historyTrackingConfig.fieldHistoryTracking);
|
|
87
87
|
// We can now retrieve the field history settings for the fields specified for the object
|
|
88
|
-
for
|
|
88
|
+
for (const fieldHistoryTracking of historyTrackingConfig.fieldHistoryTracking) {
|
|
89
89
|
const fieldApiName = fieldSelectorByFieldApiName.get(fieldHistoryTracking.fieldApiName);
|
|
90
90
|
const fieldSelector = ENABLE_FIELD_HISTORY_SELECTOR.replace('{APINAME}', fieldApiName);
|
|
91
91
|
const fieldHistoryTrackingEnabled = await page
|
|
92
92
|
.locator(fieldSelector)
|
|
93
|
-
.
|
|
93
|
+
.isChecked();
|
|
94
94
|
if (fieldHistoryTracking.enableHistoryTracking !==
|
|
95
95
|
fieldHistoryTrackingEnabled) {
|
|
96
96
|
// Click the checkbox
|
|
@@ -99,11 +99,16 @@ export class HistoryTracking extends BrowserforcePlugin {
|
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
// Save the settings
|
|
102
|
+
const afterSavePromise = Promise.race([
|
|
103
|
+
page.waitForURL((url) => url.pathname !== `/ui/setup/layout/FieldHistoryTracking`),
|
|
104
|
+
waitForPageErrors(page),
|
|
105
|
+
]);
|
|
102
106
|
await page
|
|
103
107
|
.locator(SAVE_BUTTON_SELECTOR)
|
|
104
|
-
.filter({ visible: true })
|
|
108
|
+
.filter({ visible: true }) // there are three save buttons [not visible, top row, bottom row]
|
|
105
109
|
.first()
|
|
106
110
|
.click();
|
|
111
|
+
await afterSavePromise;
|
|
107
112
|
// Close the page
|
|
108
113
|
await page.close();
|
|
109
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/history-tracking/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,SAAS,GAAG,wDAAwD,CAAC;AAE3E,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/history-tracking/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { waitForPageErrors } from '../../browserforce.js';
|
|
1
2
|
import { BrowserforcePlugin } from '../../plugin.js';
|
|
2
3
|
const BASE_PATH = 'setup/ui/assignhomelayoutedit.jsp';
|
|
3
4
|
const BASE_SELECTOR = 'table.detailList';
|
|
@@ -78,13 +79,15 @@ export class HomePageLayouts extends BrowserforcePlugin {
|
|
|
78
79
|
throw new Error(`Could not find home page layout "${homePageLayoutName}" in list of home page layouts: ${homePageLayouts.records.map((l) => l.Name)}`);
|
|
79
80
|
}
|
|
80
81
|
const profileSelector = `select[id='${profile.Id.substring(0, 15)}']`;
|
|
81
|
-
await page.locator(profileSelector).waitFor();
|
|
82
82
|
await page
|
|
83
83
|
.locator(profileSelector)
|
|
84
84
|
.selectOption(homePageLayout.Id.substring(0, 15));
|
|
85
85
|
}
|
|
86
86
|
await page.locator(SAVE_BUTTON_SELECTOR).first().click();
|
|
87
|
-
await
|
|
87
|
+
await Promise.race([
|
|
88
|
+
page.waitForURL((url) => url.pathname !== `/${BASE_PATH}`),
|
|
89
|
+
waitForPageErrors(page),
|
|
90
|
+
]);
|
|
88
91
|
await page.close();
|
|
89
92
|
}
|
|
90
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/home-page-layouts/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/home-page-layouts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,SAAS,GAAG,mCAAmC,CAAC;AAEtD,MAAM,aAAa,GAAG,kBAAkB,CAAC;AACzC,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AAmBlD,MAAM,OAAO,eAAgB,SAAQ,kBAAkB;IAC9C,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC;QAE5C,MAAM,QAAQ,GAAG,MAAM,IAAI;aACxB,OAAO,CAAC,oCAAoC,CAAC;aAC7C,WAAW,CAAC,CAAC,MAA0B,EAAE,EAAE;YAC1C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjD,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;wBACrD,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;oBAC7C,CAAC;gBACH,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEL,MAAM,OAAO,GAAG,MAAM,IAAI;aACvB,OAAO,CAAC,qCAAqC,CAAC;aAC9C,WAAW,CAAC,CAAC,OAA4B,EAAE,EAAE;YAC5C,OAAO,OAAO;iBACX,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;iBAC/C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEL,MAAM,yBAAyB,GAA+B,EAAE,CAAC;QACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,yBAAyB,CAAC,IAAI,CAAC;gBAC7B,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACpB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;aACnB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO;YACL,yBAAyB;SAC1B,CAAC;IACJ,CAAC;IAEM,IAAI,CAAC,MAAc,EAAE,MAAc;QACxC,MAAM,CAAC,yBAAyB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,MAAM,CAAC,yBAAyB,CAAC,GAAG,CACvD,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CACnC,CAAC;QACF,MAAM,CAAC,yBAAyB,GAAG,MAAM,CAAC,yBAAyB;aAChE,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;aACjE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAuB,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,MAAM,YAAY,GAAG,MAAM,CAAC,yBAAyB;aAClD,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAClB,OAAO,IAAI,UAAU,CAAC,OAAO,GAAG,CAAC;QACnC,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,WAAW,GAAG,MAAM,CAAC,yBAAyB;aACjD,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAClB,OAAO,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAClC,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG;aAC5B,aAAa,EAAE;aACf,OAAO,CAAC,KAAK,CACZ,+CAA+C,YAAY,GAAG,CAC/D,CAAC;QACJ,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,GAAG;aACnC,aAAa,EAAE;aACf,OAAO,CAAC,KAAK,CACZ,sDAAsD,WAAW,GAAG,CACrE,CAAC;QAEJ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC;QAE5C,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,yBAAyB,EAAE,CAAC;YAC1D,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC;YAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,OAAO,CACrC,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,2BAA2B,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,cAAc,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CACrC,CAAC;YACF,IAAI,kBAAkB,KAAK,EAAE,EAAE,CAAC;gBAC9B,cAAc,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YACtD,CAAC;YACD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CACb,oCAAoC,kBAAkB,mCAAmC,eAAe,CAAC,OAAO,CAAC,GAAG,CAClH,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CACd,EAAE,CACJ,CAAC;YACJ,CAAC;YACD,MAAM,eAAe,GAAG,cAAc,OAAO,CAAC,EAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;YACvE,MAAM,IAAI;iBACP,OAAO,CAAC,eAAe,CAAC;iBACxB,YAAY,CAAC,cAAc,CAAC,EAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;QACzD,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI,SAAS,EAAE,CAAC;YAC1D,iBAAiB,CAAC,IAAI,CAAC;SACxB,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AAED,SAAS,iBAAiB,CACxB,CAA2B,EAC3B,CAA2B;IAE3B,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,aAAa,CAC7C,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,EAAE,EAC1B,IAAI,EACJ,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Locator, Page } from 'playwright';
|
|
1
|
+
import type { Locator, Page } from 'playwright';
|
|
2
2
|
import { BrowserforcePlugin } from '../../plugin.js';
|
|
3
3
|
type Config = {
|
|
4
4
|
activeThemeName: string;
|
|
@@ -9,7 +9,6 @@ type Theme = {
|
|
|
9
9
|
rowLocator: Locator;
|
|
10
10
|
};
|
|
11
11
|
export declare class LightningExperienceSettings extends BrowserforcePlugin {
|
|
12
|
-
setupDOMObserver(page: Page, elementName: string, callbackName: string): Promise<void>;
|
|
13
12
|
retrieve(): Promise<Config>;
|
|
14
13
|
apply(config: Config): Promise<void>;
|
|
15
14
|
getThemeData(page: Page): Promise<Theme[]>;
|
|
@@ -8,7 +8,15 @@ describe(LightningExperienceSettings.name, function () {
|
|
|
8
8
|
plugin = new LightningExperienceSettings(global.bf);
|
|
9
9
|
configOriginal = await plugin.retrieve();
|
|
10
10
|
});
|
|
11
|
+
const configSLDS2 = { activeThemeName: 'SalesforceCosmos' };
|
|
11
12
|
const configLightningLite = { activeThemeName: 'LightningLite' };
|
|
13
|
+
it('should activate SalesforceCosmos theme (SLDS2)', async () => {
|
|
14
|
+
await plugin.run(configSLDS2);
|
|
15
|
+
});
|
|
16
|
+
it('SalesforceCosmos theme should already be activated', async () => {
|
|
17
|
+
const state = await plugin.retrieve();
|
|
18
|
+
assert.deepStrictEqual(state, configSLDS2);
|
|
19
|
+
});
|
|
12
20
|
it('should activate LightningLite theme', async () => {
|
|
13
21
|
await plugin.run(configLightningLite);
|
|
14
22
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/lightning-experience-settings/index.e2e-spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAEzD,QAAQ,CAAC,2BAA2B,CAAC,IAAI,EAAE;IACzC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,IAAI,MAAmC,CAAC;QACxC,IAAI,cAAc,CAAC;QACnB,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,MAAM,GAAG,IAAI,2BAA2B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACpD,cAAc,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,MAAM,mBAAmB,GAAG,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC;QACjE,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,IAAI,GAAG,CAAC;YACR,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,GAAG,GAAG,CAAC,CAAC;YACV,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gBACjB,MAAM,GAAG,CAAC;YACZ,CAAC,EAAE,sBAAsB,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/lightning-experience-settings/index.e2e-spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAEzD,QAAQ,CAAC,2BAA2B,CAAC,IAAI,EAAE;IACzC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,IAAI,MAAmC,CAAC;QACxC,IAAI,cAAc,CAAC;QACnB,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,MAAM,GAAG,IAAI,2BAA2B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACpD,cAAc,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAC;QAC5D,MAAM,mBAAmB,GAAG,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC;QACjE,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,IAAI,GAAG,CAAC;YACR,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,GAAG,GAAG,CAAC,CAAC;YACV,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gBACjB,MAAM,GAAG,CAAC;YACZ,CAAC,EAAE,sBAAsB,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -5,28 +5,6 @@ const THEME_ROW_SELECTOR = '#setupComponent table > tbody > tr';
|
|
|
5
5
|
const DEVELOPER_NAMES_SELECTOR = `${THEME_ROW_SELECTOR} > td:nth-child(2) > lightning-primitive-cell-factory lightning-base-formatted-text`;
|
|
6
6
|
const STATES_SELECTOR = `${THEME_ROW_SELECTOR} > td:nth-child(6) > lightning-primitive-cell-factory`;
|
|
7
7
|
export class LightningExperienceSettings extends BrowserforcePlugin {
|
|
8
|
-
async setupDOMObserver(page, elementName, callbackName) {
|
|
9
|
-
await page.evaluate(({ elementName, callbackName, }) => {
|
|
10
|
-
const observer = new MutationObserver((mutations) => {
|
|
11
|
-
for (const mutation of mutations) {
|
|
12
|
-
for (const node of Array.from(mutation.addedNodes)) {
|
|
13
|
-
if (node instanceof Element &&
|
|
14
|
-
node.tagName.toLowerCase() === elementName) {
|
|
15
|
-
observer.disconnect();
|
|
16
|
-
// Call the exposed function to handle the element
|
|
17
|
-
window[callbackName]();
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
observer.observe(document.body, { childList: true, subtree: false });
|
|
24
|
-
// Clean up observer after navigation starts (element won't appear)
|
|
25
|
-
window.addEventListener('beforeunload', () => {
|
|
26
|
-
observer.disconnect();
|
|
27
|
-
}, { once: true });
|
|
28
|
-
}, { elementName, callbackName });
|
|
29
|
-
}
|
|
30
8
|
async retrieve() {
|
|
31
9
|
const page = await this.browserforce.openPage(BASE_PATH);
|
|
32
10
|
const themes = await this.getThemeData(page);
|
|
@@ -54,7 +32,8 @@ export class LightningExperienceSettings extends BrowserforcePlugin {
|
|
|
54
32
|
const developerName = await developerNameLocator.nth(i).innerText();
|
|
55
33
|
const hasIcon = await stateLocator
|
|
56
34
|
.nth(i)
|
|
57
|
-
.
|
|
35
|
+
.filter({ has: page.locator('lightning-primitive-icon') })
|
|
36
|
+
.isVisible();
|
|
58
37
|
themes.push({
|
|
59
38
|
developerName,
|
|
60
39
|
isActive: hasIcon,
|
|
@@ -73,29 +52,34 @@ export class LightningExperienceSettings extends BrowserforcePlugin {
|
|
|
73
52
|
await page
|
|
74
53
|
.locator(`${THEME_ROW_SELECTOR} lightning-button-menu`)
|
|
75
54
|
.first()
|
|
76
|
-
.waitFor(
|
|
55
|
+
.waitFor();
|
|
77
56
|
const menuButton = newActiveThemeRowLocator.locator('td lightning-primitive-cell-factory lightning-primitive-cell-actions lightning-button-menu');
|
|
78
57
|
await menuButton.click();
|
|
79
58
|
await page
|
|
80
59
|
.locator(`${THEME_ROW_SELECTOR} lightning-button-menu slot lightning-menu-item`)
|
|
81
60
|
.first()
|
|
82
|
-
.waitFor(
|
|
83
|
-
const menuItems = menuButton.locator('slot lightning-menu-item');
|
|
84
|
-
const menuItemCount = await menuItems.count();
|
|
61
|
+
.waitFor();
|
|
85
62
|
// second last item: [show, activate, preview]
|
|
86
|
-
const activateMenuItem =
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
63
|
+
const activateMenuItem = menuButton
|
|
64
|
+
.locator('slot lightning-menu-item')
|
|
65
|
+
.nth(-2);
|
|
66
|
+
await Promise.all([
|
|
67
|
+
Promise.race([
|
|
68
|
+
page.waitForEvent('load'), // immediate page reload when SLDS1 theme was activated
|
|
69
|
+
Promise.all([
|
|
70
|
+
page.waitForEvent('load'),
|
|
71
|
+
// When switching from a SDLS2 to a SLDS1 theme, the following modal appears:
|
|
72
|
+
// Activate this theme?
|
|
73
|
+
// This theme uses SLDS 1. When you activate this theme, you also disable SLDS 2.
|
|
74
|
+
// - Never Mind
|
|
75
|
+
// - Activate <--
|
|
76
|
+
page
|
|
77
|
+
.locator('lightning-modal lightning-button[variant="brand"]')
|
|
78
|
+
.click(),
|
|
79
|
+
]),
|
|
80
|
+
]),
|
|
81
|
+
activateMenuItem.click(),
|
|
82
|
+
]);
|
|
99
83
|
}
|
|
100
84
|
}
|
|
101
85
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/lightning-experience-settings/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,SAAS,GAAG,yCAAyC,CAAC;AAE5D,mEAAmE;AACnE,MAAM,kBAAkB,GAAG,oCAAoC,CAAC;AAChE,MAAM,wBAAwB,GAAG,GAAG,kBAAkB,qFAAqF,CAAC;AAC5I,MAAM,eAAe,GAAG,GAAG,kBAAkB,uDAAuD,CAAC;AAYrG,MAAM,OAAO,2BAA4B,SAAQ,kBAAkB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/lightning-experience-settings/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,12 @@ import { LinkedInSalesNavigatorPage } from './page.js';
|
|
|
3
3
|
export class LinkedInSalesNavigatorSettings extends BrowserforcePlugin {
|
|
4
4
|
async retrieve(definition) {
|
|
5
5
|
const result = { enabled: false };
|
|
6
|
-
const page = new LinkedInSalesNavigatorPage(await this.browserforce.openPage(LinkedInSalesNavigatorPage.getUrl())
|
|
6
|
+
const page = new LinkedInSalesNavigatorPage(await this.browserforce.openPage(LinkedInSalesNavigatorPage.getUrl()));
|
|
7
7
|
result.enabled = await page.getStatus();
|
|
8
8
|
return result;
|
|
9
9
|
}
|
|
10
10
|
async apply(config) {
|
|
11
|
-
const page = new LinkedInSalesNavigatorPage(await this.browserforce.openPage(LinkedInSalesNavigatorPage.getUrl())
|
|
11
|
+
const page = new LinkedInSalesNavigatorPage(await this.browserforce.openPage(LinkedInSalesNavigatorPage.getUrl()));
|
|
12
12
|
await page.setStatus(config.enabled);
|
|
13
13
|
}
|
|
14
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/linkedin-sales-navigator-settings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAMvD,MAAM,OAAO,8BAA+B,SAAQ,kBAAkB;IAC7D,KAAK,CAAC,QAAQ,CAAC,UAAmB;QACvC,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,0BAA0B,CACzC,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,0BAA0B,CAAC,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/linkedin-sales-navigator-settings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAMvD,MAAM,OAAO,8BAA+B,SAAQ,kBAAkB;IAC7D,KAAK,CAAC,QAAQ,CAAC,UAAmB;QACvC,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,0BAA0B,CACzC,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,0BAA0B,CAAC,MAAM,EAAE,CAAC,CACtE,CAAC;QACF,MAAM,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,MAAM,IAAI,GAAG,IAAI,0BAA0B,CACzC,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,0BAA0B,CAAC,MAAM,EAAE,CAAC,CACtE,CAAC;QACF,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;CACF"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { Page } from 'playwright';
|
|
2
|
-
import { Browserforce } from '../../browserforce.js';
|
|
1
|
+
import type { Page } from 'playwright';
|
|
3
2
|
export declare class LinkedInSalesNavigatorPage {
|
|
4
3
|
private page;
|
|
5
|
-
|
|
6
|
-
constructor(page: Page, browserforce: Browserforce);
|
|
4
|
+
constructor(page: Page);
|
|
7
5
|
static getUrl(): string;
|
|
8
6
|
getStatus(): Promise<boolean>;
|
|
9
7
|
setStatus(enable: boolean): Promise<void>;
|
|
@@ -1,41 +1,36 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { waitForPageErrors } from '../../browserforce.js';
|
|
2
2
|
const ENABLE_TOGGLE = 'div[data-aura-class="setup_sales_linkedinLinkedInSetupRow"] input[type="checkbox"]:not(:disabled)';
|
|
3
|
-
|
|
4
|
-
const
|
|
3
|
+
// unfortunately the divs intercept pointer events so we need to click on the label instead
|
|
4
|
+
const ENABLE_BUTTON = 'div[data-aura-class="setup_sales_linkedinLinkedInSetupRow"]:has(input[type="checkbox"]:not(:disabled)) label';
|
|
5
|
+
const CONFIRM_CHECKBOX = 'section[role="dialog"] lightning-input lightning-primitive-input-checkbox';
|
|
6
|
+
const ACCEPT_BUTTON = 'section[role="dialog"] div div button:not(:disabled):nth-child(2)';
|
|
5
7
|
export class LinkedInSalesNavigatorPage {
|
|
6
8
|
page;
|
|
7
|
-
|
|
8
|
-
constructor(page, browserforce) {
|
|
9
|
+
constructor(page) {
|
|
9
10
|
this.page = page;
|
|
10
|
-
this.browserforce = browserforce;
|
|
11
11
|
}
|
|
12
12
|
static getUrl() {
|
|
13
13
|
return 'lightning/setup/LinkedInSalesNavigatorPage/home';
|
|
14
14
|
}
|
|
15
15
|
async getStatus() {
|
|
16
|
-
await this.page.locator(ENABLE_TOGGLE).waitFor();
|
|
17
16
|
const isEnabled = await this.page.locator(ENABLE_TOGGLE).isChecked();
|
|
18
17
|
await this.page.close();
|
|
19
18
|
return isEnabled;
|
|
20
19
|
}
|
|
21
20
|
async setStatus(enable) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
.evaluate((checkbox) => checkbox.click());
|
|
21
|
+
const afterSavePromise = Promise.race([
|
|
22
|
+
this.page.waitForResponse(/LinkedInIntegrationSetup.updatePref=1/),
|
|
23
|
+
waitForPageErrors(this.page),
|
|
24
|
+
]);
|
|
27
25
|
if (enable) {
|
|
28
|
-
await this.page.locator(
|
|
29
|
-
await this.page
|
|
30
|
-
|
|
31
|
-
.evaluate((checkbox) => checkbox.click());
|
|
32
|
-
await this.page.locator(ACCEPT_BUTTON).waitFor();
|
|
33
|
-
await this.page
|
|
34
|
-
.locator(ACCEPT_BUTTON)
|
|
35
|
-
.evaluate((button) => button.click());
|
|
26
|
+
await this.page.locator(ENABLE_BUTTON).click();
|
|
27
|
+
await this.page.locator(CONFIRM_CHECKBOX).click();
|
|
28
|
+
await this.page.locator(ACCEPT_BUTTON).click();
|
|
36
29
|
}
|
|
37
|
-
|
|
38
|
-
|
|
30
|
+
else {
|
|
31
|
+
await this.page.locator(ENABLE_BUTTON).click();
|
|
32
|
+
}
|
|
33
|
+
await afterSavePromise;
|
|
39
34
|
await this.page.close();
|
|
40
35
|
}
|
|
41
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../../src/plugins/linkedin-sales-navigator-settings/page.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../../src/plugins/linkedin-sales-navigator-settings/page.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,aAAa,GACjB,mGAAmG,CAAC;AAEtG,2FAA2F;AAC3F,MAAM,aAAa,GACjB,8GAA8G,CAAC;AACjH,MAAM,gBAAgB,GACpB,2EAA2E,CAAC;AAC9E,MAAM,aAAa,GACjB,mEAAmE,CAAC;AAEtE,MAAM,OAAO,0BAA0B;IAC7B,IAAI,CAAO;IAEnB,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,MAAM,CAAC,MAAM;QAClB,OAAO,iDAAiD,CAAC;IAC3D,CAAC;IAEM,KAAK,CAAC,SAAS;QACpB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,CAAC;QACrE,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,MAAe;QACpC,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,uCAAuC,CAAC;YAClE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;SAC7B,CAAC,CAAC;QACH,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;YAC/C,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;YAClD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC;QACD,MAAM,gBAAgB,CAAC;QACvB,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -7,14 +7,17 @@ export class OmniChannelSettings extends BrowserforcePlugin {
|
|
|
7
7
|
const page = await this.browserforce.openPage(BASE_PATH);
|
|
8
8
|
const enableStatusBasedCapacityModel = await page
|
|
9
9
|
.locator(STATUS_CAPACITY_TOGGLE_SELECTOR)
|
|
10
|
-
.
|
|
10
|
+
.isChecked();
|
|
11
11
|
return { enableStatusBasedCapacityModel };
|
|
12
12
|
}
|
|
13
13
|
async apply(config) {
|
|
14
14
|
const page = await this.browserforce.openPage(BASE_PATH);
|
|
15
15
|
await page.locator(STATUS_CAPACITY_TOGGLE_SELECTOR).click();
|
|
16
16
|
await page.locator(SAVE_BUTTON_SELECTOR).click();
|
|
17
|
-
|
|
17
|
+
// omnichannel/settings.apexp
|
|
18
|
+
// ->
|
|
19
|
+
// omnichannel/settings.apexp?setupid=OmniChannelSettings
|
|
20
|
+
await page.waitForURL((url) => url.searchParams.has('setupid', 'OmniChannelSettings'));
|
|
18
21
|
await page.close();
|
|
19
22
|
}
|
|
20
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/omni-channel-settings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,SAAS,GAAG,4BAA4B,CAAC;AAE/C,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AAClD,MAAM,+BAA+B,GACnC,4CAA4C,CAAC;AAM/C,MAAM,OAAO,mBAAoB,SAAQ,kBAAkB;IAClD,KAAK,CAAC,QAAQ,CAAC,UAAmB;QACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/omni-channel-settings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,SAAS,GAAG,4BAA4B,CAAC;AAE/C,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AAClD,MAAM,+BAA+B,GACnC,4CAA4C,CAAC;AAM/C,MAAM,OAAO,mBAAoB,SAAQ,kBAAkB;IAClD,KAAK,CAAC,QAAQ,CAAC,UAAmB;QACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,8BAA8B,GAAG,MAAM,IAAI;aAC9C,OAAO,CAAC,+BAA+B,CAAC;aACxC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,8BAA8B,EAAE,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,KAAK,EAAE,CAAC;QAC5D,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;QACjD,6BAA6B;QAC7B,KAAK;QACL,yDAAyD;QACzD,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE,CAC5B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,qBAAqB,CAAC,CACvD,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -8,7 +8,7 @@ export class LayoutSelectionPage {
|
|
|
8
8
|
}
|
|
9
9
|
async choose() {
|
|
10
10
|
await this.page.locator(SAVE_BUTTON).click();
|
|
11
|
-
await this.page.
|
|
11
|
+
await this.page.waitForURL((url) => url.pathname === '/opp/opportunitySplitSetupOverview.apexp');
|
|
12
12
|
return new OverviewPage(this.page);
|
|
13
13
|
}
|
|
14
14
|
}
|