sfdx-browserforce-plugin 5.0.1 → 5.0.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/plugins/lightning-experience-settings/index.d.ts +1 -0
- package/lib/plugins/lightning-experience-settings/index.e2e-spec.js +7 -6
- package/lib/plugins/lightning-experience-settings/index.e2e-spec.js.map +1 -1
- package/lib/plugins/lightning-experience-settings/index.js +36 -0
- package/lib/plugins/lightning-experience-settings/index.js.map +1 -1
- package/oclif.manifest.json +1 -1
- package/package.json +2 -2
|
@@ -9,6 +9,7 @@ type Theme = {
|
|
|
9
9
|
rowElementHandle: ElementHandle;
|
|
10
10
|
};
|
|
11
11
|
export declare class LightningExperienceSettings extends BrowserforcePlugin {
|
|
12
|
+
setupDOMObserver(page: Page, elementName: string, callbackName: string): Promise<void>;
|
|
12
13
|
retrieve(): Promise<Config>;
|
|
13
14
|
apply(config: Config): Promise<void>;
|
|
14
15
|
getThemeData(page: Page): Promise<Theme[]>;
|
|
@@ -3,11 +3,12 @@ import { LightningExperienceSettings } from './index.js';
|
|
|
3
3
|
describe(LightningExperienceSettings.name, function () {
|
|
4
4
|
describe('activeThemeName', () => {
|
|
5
5
|
let plugin;
|
|
6
|
-
|
|
6
|
+
let configOriginal;
|
|
7
|
+
before(async () => {
|
|
7
8
|
plugin = new LightningExperienceSettings(global.bf);
|
|
9
|
+
configOriginal = await plugin.retrieve();
|
|
8
10
|
});
|
|
9
11
|
const configLightningLite = { activeThemeName: 'LightningLite' };
|
|
10
|
-
const configLightning = { activeThemeName: 'Lightning' };
|
|
11
12
|
it('should activate LightningLite theme', async () => {
|
|
12
13
|
await plugin.run(configLightningLite);
|
|
13
14
|
});
|
|
@@ -15,12 +16,12 @@ describe(LightningExperienceSettings.name, function () {
|
|
|
15
16
|
const state = await plugin.retrieve();
|
|
16
17
|
assert.deepStrictEqual(state, configLightningLite);
|
|
17
18
|
});
|
|
18
|
-
it('should activate
|
|
19
|
-
await plugin.apply(
|
|
19
|
+
it('should activate original theme', async () => {
|
|
20
|
+
await plugin.apply(configOriginal);
|
|
20
21
|
});
|
|
21
|
-
it('
|
|
22
|
+
it('original theme should already be activated', async () => {
|
|
22
23
|
const state = await plugin.retrieve();
|
|
23
|
-
assert.deepStrictEqual(state,
|
|
24
|
+
assert.deepStrictEqual(state, configOriginal);
|
|
24
25
|
});
|
|
25
26
|
it('should throw for invalid theme', async () => {
|
|
26
27
|
let err;
|
|
@@ -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,MAAM,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,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"}
|
|
@@ -5,6 +5,28 @@ 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
|
+
}
|
|
8
30
|
async retrieve() {
|
|
9
31
|
const page = await this.browserforce.openPage(BASE_PATH);
|
|
10
32
|
const themes = await this.getThemeData(page);
|
|
@@ -40,6 +62,20 @@ export class LightningExperienceSettings extends BrowserforcePlugin {
|
|
|
40
62
|
if (!theme) {
|
|
41
63
|
throw new Error(`Could not find theme "${themeDeveloperName}" in list of themes: ${data.map((d) => d.developerName)}`);
|
|
42
64
|
}
|
|
65
|
+
// When switching from a SDLS2 to a SLDS1 theme, the following modal appears:
|
|
66
|
+
// Activate this theme?
|
|
67
|
+
// This theme uses SLDS 1. When you activate this theme, you also disable SLDS 2.
|
|
68
|
+
// - Never Mind
|
|
69
|
+
// - Activate
|
|
70
|
+
await page.exposeFunction('onModalAppeared', async () => {
|
|
71
|
+
const confirmButtonSelector = 'lightning-modal lightning-button[variant="brand"]';
|
|
72
|
+
await page.waitForSelector(confirmButtonSelector, { visible: true });
|
|
73
|
+
const confirmButton = await page.$(confirmButtonSelector);
|
|
74
|
+
if (confirmButton) {
|
|
75
|
+
await page.evaluate((e) => e.click(), confirmButton);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
await this.setupDOMObserver(page, 'lightning-overlay-container', 'onModalAppeared');
|
|
43
79
|
const newActiveThemeRowElementHandle = theme.rowElementHandle;
|
|
44
80
|
await page.waitForSelector(`${THEME_ROW_SELECTOR} lightning-button-menu`, {
|
|
45
81
|
visible: true,
|
|
@@ -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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"}
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sfdx-browserforce-plugin",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.2",
|
|
4
4
|
"description": "sfdx plugin for browser automation",
|
|
5
5
|
"author": "Matthias Rolke <mr.amtrack@gmail.com>",
|
|
6
6
|
"type": "module",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
17
|
"@salesforce/dev-scripts": "11.0.4",
|
|
18
|
-
"oclif": "4.22.
|
|
18
|
+
"oclif": "4.22.27"
|
|
19
19
|
},
|
|
20
20
|
"files": [
|
|
21
21
|
"/bin",
|