sfdx-browserforce-plugin 5.1.2 → 5.2.0-next.1
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 +54 -16
- package/lib/browserforce-command.js +2 -2
- package/lib/browserforce-command.js.map +1 -1
- package/lib/browserforce.d.ts +7 -3
- package/lib/browserforce.js +57 -32
- package/lib/browserforce.js.map +1 -1
- package/lib/pages/login.d.ts +1 -1
- package/lib/pages/login.js +5 -5
- package/lib/pages/login.js.map +1 -1
- package/lib/plugins/activity-settings/index.js +9 -6
- package/lib/plugins/activity-settings/index.js.map +1 -1
- package/lib/plugins/company-information/index.js +26 -16
- package/lib/plugins/company-information/index.js.map +1 -1
- package/lib/plugins/customer-portal/available-custom-objects/index.js +5 -5
- package/lib/plugins/customer-portal/available-custom-objects/index.js.map +1 -1
- package/lib/plugins/customer-portal/enabled/index.js +5 -6
- package/lib/plugins/customer-portal/enabled/index.js.map +1 -1
- package/lib/plugins/customer-portal/portals/index.js +68 -32
- package/lib/plugins/customer-portal/portals/index.js.map +1 -1
- package/lib/plugins/density-settings/index.d.ts +1 -8
- package/lib/plugins/density-settings/index.js +37 -29
- package/lib/plugins/density-settings/index.js.map +1 -1
- package/lib/plugins/email-deliverability/index.js +11 -8
- 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 +7 -8
- package/lib/plugins/high-velocity-sales-settings/page.js.map +1 -1
- package/lib/plugins/history-tracking/index.js +21 -14
- package/lib/plugins/history-tracking/index.js.map +1 -1
- package/lib/plugins/home-page-layouts/index.js +16 -12
- package/lib/plugins/home-page-layouts/index.js.map +1 -1
- package/lib/plugins/lightning-experience-settings/index.d.ts +2 -2
- package/lib/plugins/lightning-experience-settings/index.js +42 -38
- 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 +4 -2
- package/lib/plugins/linkedin-sales-navigator-settings/page.js +18 -8
- package/lib/plugins/linkedin-sales-navigator-settings/page.js.map +1 -1
- package/lib/plugins/omni-channel-settings/index.e2e-spec.js +4 -0
- package/lib/plugins/omni-channel-settings/index.e2e-spec.js.map +1 -1
- package/lib/plugins/omni-channel-settings/index.js +6 -14
- package/lib/plugins/omni-channel-settings/index.js.map +1 -1
- package/lib/plugins/opportunity-splits/index.js +4 -4
- package/lib/plugins/opportunity-splits/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 +2 -4
- 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 +6 -11
- 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 +2 -4
- package/lib/plugins/opportunity-splits/pages/setup.js.map +1 -1
- package/lib/plugins/permission-sets/index.e2e-spec.js +16 -5
- package/lib/plugins/permission-sets/index.e2e-spec.js.map +1 -1
- package/lib/plugins/permission-sets/service-presence-status/index.js +32 -25
- package/lib/plugins/permission-sets/service-presence-status/index.js.map +1 -1
- package/lib/plugins/picklists/field-dependencies/pages.d.ts +1 -1
- package/lib/plugins/picklists/field-dependencies/pages.js +9 -17
- package/lib/plugins/picklists/field-dependencies/pages.js.map +1 -1
- package/lib/plugins/picklists/pages.d.ts +2 -1
- package/lib/plugins/picklists/pages.js +35 -63
- package/lib/plugins/picklists/pages.js.map +1 -1
- package/lib/plugins/record-types/pages.d.ts +1 -1
- package/lib/plugins/record-types/pages.js +15 -23
- 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.js +32 -42
- package/lib/plugins/relate-contact-to-multiple-accounts/index.js.map +1 -1
- package/lib/plugins/reports-and-dashboards/folder-sharing/index.js +18 -13
- package/lib/plugins/reports-and-dashboards/folder-sharing/index.js.map +1 -1
- package/lib/plugins/salesforce-cpq-config/formConfig.js +12 -12
- package/lib/plugins/salesforce-cpq-config/formConfig.js.map +1 -1
- package/lib/plugins/salesforce-cpq-config/index.js +87 -68
- package/lib/plugins/salesforce-cpq-config/index.js.map +1 -1
- package/lib/plugins/salesforce-to-salesforce/index.e2e-spec.js +1 -0
- package/lib/plugins/salesforce-to-salesforce/index.e2e-spec.js.map +1 -1
- package/lib/plugins/salesforce-to-salesforce/index.js +8 -16
- package/lib/plugins/salesforce-to-salesforce/index.js.map +1 -1
- package/lib/plugins/security/authentication-configuration/index.js +18 -13
- package/lib/plugins/security/authentication-configuration/index.js.map +1 -1
- package/lib/plugins/security/certificate-and-key-management/index.js +16 -21
- package/lib/plugins/security/certificate-and-key-management/index.js.map +1 -1
- package/lib/plugins/service-channels/capacity/index.js +64 -35
- package/lib/plugins/service-channels/capacity/index.js.map +1 -1
- package/lib/plugins/service-channels/index.e2e-spec.js +4 -0
- package/lib/plugins/service-channels/index.e2e-spec.js.map +1 -1
- package/lib/plugins/slack/index.js +13 -14
- package/lib/plugins/slack/index.js.map +1 -1
- package/lib/plugins/user-access-policies/index.e2e-spec.js +4 -2
- package/lib/plugins/user-access-policies/index.e2e-spec.js.map +1 -1
- package/lib/plugins/user-access-policies/index.js +4 -2
- package/lib/plugins/user-access-policies/index.js.map +1 -1
- package/lib/plugins/user-access-policies/page.d.ts +2 -2
- package/lib/plugins/user-access-policies/page.js +34 -51
- package/lib/plugins/user-access-policies/page.js.map +1 -1
- package/oclif.manifest.json +1 -11
- package/package.json +2 -2
|
@@ -17,9 +17,13 @@ const PORTAL_PROFILE_MEMBERSHIP_CHECKBOXES_SELECTOR = 'td.dataCell input';
|
|
|
17
17
|
export class CustomerPortalSetup extends BrowserforcePlugin {
|
|
18
18
|
async retrieve() {
|
|
19
19
|
const page = await this.browserforce.openPage(LIST_VIEW_PATH);
|
|
20
|
-
await page
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
await page
|
|
21
|
+
.locator(`xpath=${LIST_VIEW_PORTAL_LINKS_XPATH_SELECTOR}`)
|
|
22
|
+
.first()
|
|
23
|
+
.waitFor();
|
|
24
|
+
const response = await page
|
|
25
|
+
.locator(`xpath=${LIST_VIEW_PORTAL_LINKS_XPATH_SELECTOR}`)
|
|
26
|
+
.evaluateAll((links) => {
|
|
23
27
|
return links.map((a) => {
|
|
24
28
|
return {
|
|
25
29
|
_id: a.pathname.split('/')[1],
|
|
@@ -27,24 +31,42 @@ export class CustomerPortalSetup extends BrowserforcePlugin {
|
|
|
27
31
|
portalProfileMemberships: [],
|
|
28
32
|
};
|
|
29
33
|
});
|
|
30
|
-
}
|
|
34
|
+
});
|
|
31
35
|
for (const portal of response) {
|
|
32
36
|
const portalPage = await this.browserforce.openPage(`${portal._id}/e`);
|
|
33
|
-
await portalPage.
|
|
34
|
-
portal.description = await portalPage
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
portal.
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
await portalPage.locator(PORTAL_DESCRIPTION_SELECTOR).waitFor();
|
|
38
|
+
portal.description = await portalPage
|
|
39
|
+
.locator(PORTAL_DESCRIPTION_SELECTOR)
|
|
40
|
+
.evaluate((el) => el.value);
|
|
41
|
+
portal.adminUser = await portalPage
|
|
42
|
+
.locator(`#${PORTAL_ADMIN_ID_SELECTOR}`)
|
|
43
|
+
.evaluate((el) => el.value);
|
|
44
|
+
portal.isSelfRegistrationActivated = await portalPage
|
|
45
|
+
.locator(`#${PORTAL_IS_SELF_REGISTRATION_ACTIVATED_ID_SELECTOR}`)
|
|
46
|
+
.evaluate((el) => el.checked);
|
|
47
|
+
portal.selfRegUserDefaultLicense = await portalPage
|
|
48
|
+
.locator(`#${PORTAL_SELF_REG_USER_DEFAULT_LICENSE_ID_SELECTOR}`)
|
|
49
|
+
.evaluate((el) => el.selectedOptions[0].text);
|
|
50
|
+
portal.selfRegUserDefaultRole = await portalPage
|
|
51
|
+
.locator(`#${PORTAL_SELF_REG_USER_DEFAULT_ROLE_ID_SELECTOR}`)
|
|
52
|
+
.evaluate((el) => el.selectedOptions[0].text);
|
|
53
|
+
portal.selfRegUserDefaultProfile = await portalPage
|
|
54
|
+
.locator(`#${PORTAL_SELF_REG_USER_DEFAULT_PROFILE_ID_SELECTOR}`)
|
|
55
|
+
.evaluate((el) => el.selectedOptions[0].text);
|
|
40
56
|
await portalPage.close();
|
|
41
57
|
// portalProfileMemberships
|
|
42
58
|
const portalProfilePage = await this.browserforce.openPage(`${PORTAL_PROFILE_MEMBERSHIP_PATH}?portalId=${portal._id}&setupid=CustomerSuccessPortalSettings`);
|
|
43
|
-
await portalProfilePage
|
|
44
|
-
|
|
59
|
+
await portalProfilePage
|
|
60
|
+
.locator(PORTAL_ID_SELECTOR)
|
|
61
|
+
.waitFor({ state: 'attached' });
|
|
62
|
+
const profiles = await portalProfilePage
|
|
63
|
+
.locator(PORTAL_PROFILE_MEMBERSHIP_PROFILES_SELECTOR)
|
|
64
|
+
.evaluateAll((ths) => {
|
|
45
65
|
return ths.map((th) => th.innerText.trim());
|
|
46
66
|
});
|
|
47
|
-
const checkboxes = await portalProfilePage
|
|
67
|
+
const checkboxes = await portalProfilePage
|
|
68
|
+
.locator(PORTAL_PROFILE_MEMBERSHIP_CHECKBOXES_SELECTOR)
|
|
69
|
+
.evaluateAll((inputs) => {
|
|
48
70
|
return inputs.map((input) => {
|
|
49
71
|
return {
|
|
50
72
|
active: input.checked,
|
|
@@ -134,27 +156,40 @@ export class CustomerPortalSetup extends BrowserforcePlugin {
|
|
|
134
156
|
portal.isSelfRegistrationActivated ? 1 : 0;
|
|
135
157
|
}
|
|
136
158
|
const page = await this.browserforce.openPage(`${portal._id}/e?${queryString.stringify(urlAttributes)}`);
|
|
137
|
-
await page.
|
|
159
|
+
await page.locator(PORTAL_DESCRIPTION_SELECTOR).waitFor();
|
|
138
160
|
if (portal.selfRegUserDefaultLicense) {
|
|
139
|
-
const licenseValue = await page
|
|
140
|
-
|
|
161
|
+
const licenseValue = await page
|
|
162
|
+
.locator(`xpath=//select[@id="${PORTAL_SELF_REG_USER_DEFAULT_LICENSE_ID_SELECTOR}"]//option[text()="${portal.selfRegUserDefaultLicense}"]`)
|
|
163
|
+
.first()
|
|
164
|
+
.evaluate((option) => option.value);
|
|
165
|
+
await page
|
|
166
|
+
.locator(`#${PORTAL_SELF_REG_USER_DEFAULT_LICENSE_ID_SELECTOR}`)
|
|
167
|
+
.selectOption(licenseValue);
|
|
141
168
|
}
|
|
142
169
|
if (portal.selfRegUserDefaultRole) {
|
|
143
|
-
const roleValue = await page
|
|
144
|
-
|
|
170
|
+
const roleValue = await page
|
|
171
|
+
.locator(`xpath=//select[@id="${PORTAL_SELF_REG_USER_DEFAULT_ROLE_ID_SELECTOR}"]//option[text()="${portal.selfRegUserDefaultRole}"]`)
|
|
172
|
+
.first()
|
|
173
|
+
.evaluate((option) => option.value);
|
|
174
|
+
await page
|
|
175
|
+
.locator(`#${PORTAL_SELF_REG_USER_DEFAULT_ROLE_ID_SELECTOR}`)
|
|
176
|
+
.selectOption(roleValue);
|
|
145
177
|
}
|
|
146
178
|
if (portal.selfRegUserDefaultProfile) {
|
|
147
|
-
const profileValue = await page
|
|
148
|
-
|
|
179
|
+
const profileValue = await page
|
|
180
|
+
.locator(`xpath=//select[@id="${PORTAL_SELF_REG_USER_DEFAULT_PROFILE_ID_SELECTOR}"]//option[text()="${portal.selfRegUserDefaultProfile}"]`)
|
|
181
|
+
.first()
|
|
182
|
+
.evaluate((option) => option.value);
|
|
183
|
+
await page
|
|
184
|
+
.locator(`#${PORTAL_SELF_REG_USER_DEFAULT_PROFILE_ID_SELECTOR}`)
|
|
185
|
+
.selectOption(profileValue);
|
|
149
186
|
}
|
|
150
|
-
await page.
|
|
151
|
-
await
|
|
152
|
-
|
|
153
|
-
page.click(SAVE_BUTTON_SELECTOR),
|
|
154
|
-
]);
|
|
187
|
+
await page.locator(SAVE_BUTTON_SELECTOR).first().waitFor();
|
|
188
|
+
await page.locator(SAVE_BUTTON_SELECTOR).first().click();
|
|
189
|
+
await page.waitForLoadState('load');
|
|
155
190
|
if ((await page.url()).includes(portal._id)) {
|
|
156
191
|
// error handling
|
|
157
|
-
await page.
|
|
192
|
+
await page.locator(PORTAL_DESCRIPTION_SELECTOR).waitFor();
|
|
158
193
|
await this.browserforce.throwPageErrors(page);
|
|
159
194
|
throw new Error(`saving customer portal '${portal._id}' failed`);
|
|
160
195
|
}
|
|
@@ -165,11 +200,12 @@ export class CustomerPortalSetup extends BrowserforcePlugin {
|
|
|
165
200
|
membershipUrlAttributes[member._id] = member.active ? 1 : 0;
|
|
166
201
|
}
|
|
167
202
|
const portalProfilePage = await this.browserforce.openPage(`${PORTAL_PROFILE_MEMBERSHIP_PATH}?portalId=${portal._id}&setupid=CustomerSuccessPortalSettings&${queryString.stringify(membershipUrlAttributes)}`);
|
|
168
|
-
await portalProfilePage
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
203
|
+
await portalProfilePage
|
|
204
|
+
.locator(SAVE_BUTTON_SELECTOR)
|
|
205
|
+
.first()
|
|
206
|
+
.waitFor();
|
|
207
|
+
await portalProfilePage.locator(SAVE_BUTTON_SELECTOR).first().click();
|
|
208
|
+
await portalProfilePage.waitForLoadState('load');
|
|
173
209
|
await portalProfilePage.close();
|
|
174
210
|
}
|
|
175
211
|
await page.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/customer-portal/portals/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,MAAM,cAAc,GAAG,8CAA8C,CAAC;AACtE,MAAM,8BAA8B,GAClC,+CAA+C,CAAC;AAElD,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AAClD,MAAM,qCAAqC,GACzC,kGAAkG,CAAC;AACrG,MAAM,2BAA2B,GAAG,cAAc,CAAC;AACnD,MAAM,kBAAkB,GAAG,WAAW,CAAC;AACvC,MAAM,wBAAwB,GAAG,OAAO,CAAC;AACzC,MAAM,iDAAiD,GACrD,6BAA6B,CAAC;AAChC,MAAM,gDAAgD,GACpD,2BAA2B,CAAC;AAC9B,MAAM,6CAA6C,GAAG,wBAAwB,CAAC;AAC/E,MAAM,gDAAgD,GACpD,2BAA2B,CAAC;AAC9B,MAAM,2CAA2C,GAAG,aAAa,CAAC;AAClE,MAAM,6CAA6C,GAAG,mBAAmB,CAAC;AAuB1E,MAAM,OAAO,mBAAoB,SAAQ,kBAAkB;IAClD,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/customer-portal/portals/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,10 @@
|
|
|
1
|
-
import { ElementHandle, Page } from 'puppeteer';
|
|
2
1
|
import { BrowserforcePlugin } from '../../plugin.js';
|
|
3
2
|
type Config = {
|
|
4
3
|
density: string;
|
|
5
4
|
};
|
|
6
|
-
type Density = {
|
|
7
|
-
value: string;
|
|
8
|
-
checked: boolean;
|
|
9
|
-
elementHandle: ElementHandle;
|
|
10
|
-
};
|
|
11
5
|
export declare class DensitySettings extends BrowserforcePlugin {
|
|
12
6
|
retrieve(): Promise<Config>;
|
|
13
7
|
apply(config: Config): Promise<void>;
|
|
14
|
-
|
|
15
|
-
setDensity(page: Page, name: string): Promise<void>;
|
|
8
|
+
private getSelectedDensity;
|
|
16
9
|
}
|
|
17
10
|
export {};
|
|
@@ -1,46 +1,54 @@
|
|
|
1
1
|
import { BrowserforcePlugin } from '../../plugin.js';
|
|
2
2
|
const BASE_PATH = 'lightning/setup/DensitySetup/home';
|
|
3
|
-
const PICKER_ITEMS_SELECTOR = 'one-density-visual-picker one-density-visual-picker-item input';
|
|
4
3
|
export class DensitySettings extends BrowserforcePlugin {
|
|
5
4
|
async retrieve() {
|
|
6
5
|
const page = await this.browserforce.openPage(BASE_PATH);
|
|
7
|
-
const
|
|
8
|
-
const selected = densities.find((input) => input.checked);
|
|
6
|
+
const density = await this.getSelectedDensity(page);
|
|
9
7
|
await page.close();
|
|
10
8
|
return {
|
|
11
|
-
density
|
|
9
|
+
density,
|
|
12
10
|
};
|
|
13
11
|
}
|
|
14
12
|
async apply(config) {
|
|
15
13
|
const page = await this.browserforce.openPage(BASE_PATH);
|
|
16
|
-
|
|
14
|
+
// Find the radio button by its value attribute
|
|
15
|
+
const radioButton = page.getByRole('img', { name: config.density });
|
|
16
|
+
// Wait for the radio button to be attached to the DOM
|
|
17
|
+
try {
|
|
18
|
+
await radioButton.waitFor({ state: 'attached', timeout: 10000 });
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
const allRadios = await page.getByRole('radio').all();
|
|
22
|
+
const radioValues = await Promise.all(allRadios.map(async (radio) => {
|
|
23
|
+
try {
|
|
24
|
+
return await radio.getAttribute('value');
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return 'unknown';
|
|
28
|
+
}
|
|
29
|
+
}));
|
|
30
|
+
throw new Error(`Could not find density "${config.density}". Available options: ${radioValues.filter(Boolean).join(', ')}`);
|
|
31
|
+
}
|
|
32
|
+
// Click the radio button with force to bypass label interception
|
|
33
|
+
await radioButton.click();
|
|
34
|
+
await this.browserforce.waitForIdle(page);
|
|
17
35
|
await page.close();
|
|
18
36
|
}
|
|
19
|
-
async
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
async setDensity(page, name) {
|
|
33
|
-
const densities = await this.getDensities(page);
|
|
34
|
-
const densityToSelect = densities.find((input) => input.value === name);
|
|
35
|
-
if (!densityToSelect) {
|
|
36
|
-
throw new Error(`Could not find density "${name}" in list of densities: ${densities.map((d) => d.value)}`);
|
|
37
|
+
async getSelectedDensity(page) {
|
|
38
|
+
// Density options are represented as radio buttons with accessible names
|
|
39
|
+
const densityOptions = ['Comfy', 'Compact'];
|
|
40
|
+
for (const densityName of densityOptions) {
|
|
41
|
+
// Find the radio button by its accessible name (starts with the density name)
|
|
42
|
+
// Example: "Comfy Comfy For users who want a spacious view..."
|
|
43
|
+
const radioButton = page.getByRole('radio', {
|
|
44
|
+
name: new RegExp(`^${densityName}`, 'i'),
|
|
45
|
+
});
|
|
46
|
+
// Check if this radio button is checked
|
|
47
|
+
if (await radioButton.isChecked()) {
|
|
48
|
+
return densityName;
|
|
49
|
+
}
|
|
37
50
|
}
|
|
38
|
-
|
|
39
|
-
page.waitForResponse((response) => response
|
|
40
|
-
.url()
|
|
41
|
-
.includes('UserSettings.DensityUserSettings.setDefaultDensitySetting=1') && response.status() === 200),
|
|
42
|
-
densityToSelect.elementHandle.evaluate((input) => input.click()),
|
|
43
|
-
]);
|
|
51
|
+
throw new Error('No density option is selected');
|
|
44
52
|
}
|
|
45
53
|
}
|
|
46
54
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/density-settings/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,SAAS,GAAG,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/density-settings/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,SAAS,GAAG,mCAAmC,CAAC;AAMtD,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,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO;YACL,OAAO;SACR,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEzD,+CAA+C;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAEpE,sDAAsD;QACtD,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;YACtD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC5B,IAAI,CAAC;oBACH,OAAO,MAAM,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC3C,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC,CAAC,CACH,CAAC;YACF,MAAM,IAAI,KAAK,CACb,2BACE,MAAM,CAAC,OACT,yBAAyB,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAClE,CAAC;QACJ,CAAC;QAED,iEAAiE;QACjE,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,IAAU;QACzC,yEAAyE;QACzE,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAE5C,KAAK,MAAM,WAAW,IAAI,cAAc,EAAE,CAAC;YACzC,8EAA8E;YAC9E,+DAA+D;YAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;gBAC1C,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,WAAW,EAAE,EAAE,GAAG,CAAC;aACzC,CAAC,CAAC;YAEH,wCAAwC;YACxC,IAAI,MAAM,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC;gBAClC,OAAO,WAAW,CAAC;YACrB,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;CACF"}
|
|
@@ -11,14 +11,17 @@ 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.
|
|
15
|
-
const
|
|
14
|
+
await page.locator(ACCESS_LEVEL_SELECTOR).waitFor();
|
|
15
|
+
const selectedOption = await page
|
|
16
|
+
.locator(`${ACCESS_LEVEL_SELECTOR} > option[selected]`)
|
|
17
|
+
.first()
|
|
18
|
+
.textContent();
|
|
16
19
|
await page.close();
|
|
17
|
-
if (!
|
|
20
|
+
if (!selectedOption) {
|
|
18
21
|
throw new Error('Selected access level not found...');
|
|
19
22
|
}
|
|
20
23
|
return {
|
|
21
|
-
accessLevel:
|
|
24
|
+
accessLevel: selectedOption,
|
|
22
25
|
};
|
|
23
26
|
}
|
|
24
27
|
async apply(config) {
|
|
@@ -27,11 +30,11 @@ export class EmailDeliverability extends BrowserforcePlugin {
|
|
|
27
30
|
throw new Error(`Invalid email access level ${config.accessLevel}`);
|
|
28
31
|
}
|
|
29
32
|
const page = await this.browserforce.openPage(BASE_PATH);
|
|
30
|
-
await page.
|
|
31
|
-
await page.
|
|
33
|
+
await page.locator(ACCESS_LEVEL_SELECTOR).waitFor();
|
|
34
|
+
await page.locator(ACCESS_LEVEL_SELECTOR).selectOption(accessLevelNumber);
|
|
32
35
|
await Promise.all([
|
|
33
|
-
page.
|
|
34
|
-
page.
|
|
36
|
+
page.locator(CONFIRM_MESSAGE_SELECTOR).waitFor(),
|
|
37
|
+
page.locator(SAVE_BUTTON_SELECTOR).click(),
|
|
35
38
|
]);
|
|
36
39
|
await page.close();
|
|
37
40
|
}
|
|
@@ -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,IAAI,CAAC,
|
|
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,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,OAAO,EAAE,CAAC;QACpD,MAAM,cAAc,GAAG,MAAM,IAAI;aAC9B,OAAO,CAAC,GAAG,qBAAqB,qBAAqB,CAAC;aACtD,KAAK,EAAE;aACP,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,OAAO,EAAE,CAAC;QACpD,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QAC1E,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,OAAO,EAAE;YAChD,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE;SAC3C,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -11,16 +11,15 @@ export class HighVelocitySalesSetupPage {
|
|
|
11
11
|
return 'lightning/setup/SalesEngagement/home';
|
|
12
12
|
}
|
|
13
13
|
async setUpAndEnable() {
|
|
14
|
-
await this.page.
|
|
15
|
-
const
|
|
16
|
-
if (
|
|
17
|
-
await this.page.
|
|
14
|
+
await this.page.locator(AUTOMATION_TAB_ITEM).waitFor();
|
|
15
|
+
const tabCount = await this.page.locator(AUTOMATION_TAB_ITEM).count();
|
|
16
|
+
if (tabCount > 0) {
|
|
17
|
+
await this.page.locator(AUTOMATION_TAB_ITEM).click();
|
|
18
18
|
}
|
|
19
|
-
await this.page.
|
|
20
|
-
const enableButton = await this.page.$(SET_UP_AND_ENABLE_HVS_BUTTON);
|
|
19
|
+
await this.page.locator(SET_UP_AND_ENABLE_HVS_BUTTON).waitFor();
|
|
21
20
|
await Promise.all([
|
|
22
|
-
this.page.
|
|
23
|
-
this.page.
|
|
21
|
+
this.page.locator(ENABLE_TOGGLE).waitFor({ timeout: 90_000 }),
|
|
22
|
+
this.page.locator(SET_UP_AND_ENABLE_HVS_BUTTON).click(),
|
|
24
23
|
]);
|
|
25
24
|
await throwPageErrors(this.page);
|
|
26
25
|
await this.page.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../../src/plugins/high-velocity-sales-settings/page.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,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,
|
|
1
|
+
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../../src/plugins/high-velocity-sales-settings/page.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,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,OAAO,EAAE,CAAC;QAChE,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE;SACxD,CAAC,CAAC;QACH,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -17,8 +17,10 @@ export class HistoryTracking extends BrowserforcePlugin {
|
|
|
17
17
|
// Retrieve the object history tracking
|
|
18
18
|
// If this is a custom object, this checkbox does not exist, so skip
|
|
19
19
|
if (!historyTrackingConfig.objectApiName.includes('__c')) {
|
|
20
|
-
await page.
|
|
21
|
-
historyTrackingResult.enableHistoryTracking = await page
|
|
20
|
+
await page.locator(ENABLE_HISTORY_SELECTOR).waitFor();
|
|
21
|
+
historyTrackingResult.enableHistoryTracking = await page
|
|
22
|
+
.locator(ENABLE_HISTORY_SELECTOR)
|
|
23
|
+
.evaluate((el) => el.getAttribute('checked') === 'checked' ? true : false);
|
|
22
24
|
}
|
|
23
25
|
// If we have no field history tracking, there is nothing more to do
|
|
24
26
|
if (!historyTrackingConfig.fieldHistoryTracking) {
|
|
@@ -48,7 +50,9 @@ export class HistoryTracking extends BrowserforcePlugin {
|
|
|
48
50
|
for await (const fieldHistoryTracking of historyTrackingConfig.fieldHistoryTracking) {
|
|
49
51
|
const fieldHistoryTrackingResult = { ...fieldHistoryTracking };
|
|
50
52
|
const fieldApiName = fieldSelectorByFieldApiName.get(fieldHistoryTracking.fieldApiName);
|
|
51
|
-
fieldHistoryTrackingResult.enableHistoryTracking = await page
|
|
53
|
+
fieldHistoryTrackingResult.enableHistoryTracking = await page
|
|
54
|
+
.locator(ENABLE_FIELD_HISTORY_SELECTOR.replace('{APINAME}', fieldApiName))
|
|
55
|
+
.evaluate((el) => el.getAttribute('checked') === 'checked' ? true : false);
|
|
52
56
|
fieldHistoryTrackingConfigs.push(fieldHistoryTrackingResult);
|
|
53
57
|
}
|
|
54
58
|
historyTrackingResult.fieldHistoryTracking = fieldHistoryTrackingConfigs;
|
|
@@ -67,12 +71,13 @@ export class HistoryTracking extends BrowserforcePlugin {
|
|
|
67
71
|
// Retrieve the object history tracking
|
|
68
72
|
// If this is a custom object, this checkbox does not exist, so skip
|
|
69
73
|
if (!historyTrackingConfig.objectApiName.includes('__c')) {
|
|
70
|
-
await page.
|
|
71
|
-
const historyTrackingEnabled = await page
|
|
74
|
+
await page.locator(ENABLE_HISTORY_SELECTOR).waitFor();
|
|
75
|
+
const historyTrackingEnabled = await page
|
|
76
|
+
.locator(ENABLE_HISTORY_SELECTOR)
|
|
77
|
+
.evaluate((el) => el.getAttribute('checked') === 'checked' ? true : false);
|
|
72
78
|
if (historyTrackingConfig.enableHistoryTracking !== historyTrackingEnabled) {
|
|
73
79
|
// Click the checkbox
|
|
74
|
-
|
|
75
|
-
await enableHistoryTracking.evaluate((node) => node.click());
|
|
80
|
+
await page.locator(ENABLE_HISTORY_SELECTOR).click();
|
|
76
81
|
}
|
|
77
82
|
}
|
|
78
83
|
if (historyTrackingConfig.fieldHistoryTracking) {
|
|
@@ -83,20 +88,22 @@ export class HistoryTracking extends BrowserforcePlugin {
|
|
|
83
88
|
for await (const fieldHistoryTracking of historyTrackingConfig.fieldHistoryTracking) {
|
|
84
89
|
const fieldApiName = fieldSelectorByFieldApiName.get(fieldHistoryTracking.fieldApiName);
|
|
85
90
|
const fieldSelector = ENABLE_FIELD_HISTORY_SELECTOR.replace('{APINAME}', fieldApiName);
|
|
86
|
-
const fieldHistoryTrackingEnabled = await page
|
|
91
|
+
const fieldHistoryTrackingEnabled = await page
|
|
92
|
+
.locator(fieldSelector)
|
|
93
|
+
.evaluate((el) => el.getAttribute('checked') === 'checked' ? true : false);
|
|
87
94
|
if (fieldHistoryTracking.enableHistoryTracking !==
|
|
88
95
|
fieldHistoryTrackingEnabled) {
|
|
89
96
|
// Click the checkbox
|
|
90
|
-
|
|
91
|
-
await enableFieldHistoryTracking.evaluate((node) => node.click());
|
|
97
|
+
await page.locator(fieldSelector).click();
|
|
92
98
|
}
|
|
93
99
|
}
|
|
94
100
|
}
|
|
95
101
|
// Save the settings
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
102
|
+
await page
|
|
103
|
+
.locator(SAVE_BUTTON_SELECTOR)
|
|
104
|
+
.filter({ visible: true })
|
|
105
|
+
.first()
|
|
106
|
+
.click();
|
|
100
107
|
// Close the page
|
|
101
108
|
await page.close();
|
|
102
109
|
}
|
|
@@ -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,GAC3B,oDAAoD,CAAC;AACvD,MAAM,6BAA6B,GAAG,2BAA2B,CAAC;AAClE,MAAM,oBAAoB,GACxB,8DAA8D,CAAC;AAajE,MAAM,OAAO,eAAgB,SAAQ,kBAAkB;IAC9C,KAAK,CAAC,QAAQ,CACnB,UAAoC;QAEpC,MAAM,sBAAsB,GAA4B,EAAE,CAAC;QAE3D,wFAAwF;QACxF,sEAAsE;QACtE,MAAM,4BAA4B,GAChC,MAAM,IAAI,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAC;QAEzD,gFAAgF;QAChF,IAAI,KAAK,EAAE,MAAM,qBAAqB,IAAI,UAAU,EAAE,CAAC;YACrD,MAAM,qBAAqB,GAAG,EAAE,GAAG,qBAAqB,EAAE,CAAC;YAE3D,8CAA8C;YAC9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAC3C,SAAS,CAAC,OAAO,CACf,WAAW,EACX,4BAA4B,CAAC,GAAG,CAAC,qBAAqB,CAAC,aAAa,CAAC,CACtE,CACF,CAAC;YAEF,uCAAuC;YACvC,oEAAoE;YACpE,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzD,MAAM,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/history-tracking/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,12 @@ const SAVE_BUTTON_SELECTOR = 'input[name="save"]';
|
|
|
5
5
|
export class HomePageLayouts extends BrowserforcePlugin {
|
|
6
6
|
async retrieve() {
|
|
7
7
|
const page = await this.browserforce.openPage(BASE_PATH);
|
|
8
|
-
await page.
|
|
9
|
-
const profiles = await page
|
|
8
|
+
await page.locator(BASE_SELECTOR).waitFor();
|
|
9
|
+
const profiles = await page
|
|
10
|
+
.locator('table.detailList tbody tr td label')
|
|
11
|
+
.evaluateAll((labels) => {
|
|
10
12
|
return labels.map((label) => {
|
|
11
|
-
for (let i = 0; label.childNodes.length; i++) {
|
|
13
|
+
for (let i = 0; i < label.childNodes.length; i++) {
|
|
12
14
|
if (label.childNodes[i].nodeType === label.TEXT_NODE) {
|
|
13
15
|
return label.childNodes[i].nodeValue ?? '';
|
|
14
16
|
}
|
|
@@ -16,7 +18,9 @@ export class HomePageLayouts extends BrowserforcePlugin {
|
|
|
16
18
|
throw new Error('retrieving HomePageLayouts failed');
|
|
17
19
|
});
|
|
18
20
|
});
|
|
19
|
-
const layouts = await page
|
|
21
|
+
const layouts = await page
|
|
22
|
+
.locator('table.detailList tbody tr td select')
|
|
23
|
+
.evaluateAll((selects) => {
|
|
20
24
|
return selects
|
|
21
25
|
.map((select) => select.selectedOptions[0].text)
|
|
22
26
|
.map((text) => (text === 'Home Page Default' ? '' : text));
|
|
@@ -54,12 +58,12 @@ export class HomePageLayouts extends BrowserforcePlugin {
|
|
|
54
58
|
.join(',');
|
|
55
59
|
const profiles = await this.org
|
|
56
60
|
.getConnection()
|
|
57
|
-
.tooling.query(`SELECT Id, Name FROM Profile WHERE
|
|
61
|
+
.tooling.query(`SELECT Id, Name FROM Profile WHERE NAME IN (${profilesList})`);
|
|
58
62
|
const homePageLayouts = await this.org
|
|
59
63
|
.getConnection()
|
|
60
64
|
.tooling.query(`SELECT Id, Name FROM HomePageLayout WHERE Name IN (${layoutsList})`);
|
|
61
65
|
const page = await this.browserforce.openPage(BASE_PATH);
|
|
62
|
-
await page.
|
|
66
|
+
await page.locator(BASE_SELECTOR).waitFor();
|
|
63
67
|
for (const assignment of config.homePageLayoutAssignments) {
|
|
64
68
|
const homePageLayoutName = assignment.layout;
|
|
65
69
|
const profile = profiles.records.find((p) => p.Name === assignment.profile);
|
|
@@ -74,13 +78,13 @@ export class HomePageLayouts extends BrowserforcePlugin {
|
|
|
74
78
|
throw new Error(`Could not find home page layout "${homePageLayoutName}" in list of home page layouts: ${homePageLayouts.records.map((l) => l.Name)}`);
|
|
75
79
|
}
|
|
76
80
|
const profileSelector = `select[id='${profile.Id.substring(0, 15)}']`;
|
|
77
|
-
await page.
|
|
78
|
-
await page
|
|
81
|
+
await page.locator(profileSelector).waitFor();
|
|
82
|
+
await page
|
|
83
|
+
.locator(profileSelector)
|
|
84
|
+
.selectOption(homePageLayout.Id.substring(0, 15));
|
|
79
85
|
}
|
|
80
|
-
await
|
|
81
|
-
|
|
82
|
-
page.click(SAVE_BUTTON_SELECTOR),
|
|
83
|
-
]);
|
|
86
|
+
await page.locator(SAVE_BUTTON_SELECTOR).first().click();
|
|
87
|
+
await page.waitForLoadState('load');
|
|
84
88
|
await page.close();
|
|
85
89
|
}
|
|
86
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/home-page-layouts/index.ts"],"names":[],"mappings":"AACA,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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/home-page-layouts/index.ts"],"names":[],"mappings":"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"}
|