sfdx-browserforce-plugin 4.4.3 → 4.6.0

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.
Files changed (53) hide show
  1. package/lib/browserforce.d.ts +5 -0
  2. package/lib/browserforce.js +24 -5
  3. package/lib/browserforce.js.map +1 -1
  4. package/lib/pages/login.js +2 -2
  5. package/lib/pages/login.js.map +1 -1
  6. package/lib/plugins/density-settings/index.js +1 -1
  7. package/lib/plugins/density-settings/index.js.map +1 -1
  8. package/lib/plugins/high-velocity-sales-settings/page.js +3 -5
  9. package/lib/plugins/high-velocity-sales-settings/page.js.map +1 -1
  10. package/lib/plugins/index.d.ts +4 -1
  11. package/lib/plugins/index.js +4 -1
  12. package/lib/plugins/index.js.map +1 -1
  13. package/lib/plugins/lightning-experience-settings/index.js +3 -3
  14. package/lib/plugins/lightning-experience-settings/index.js.map +1 -1
  15. package/lib/plugins/linkedin-sales-navigator-settings/page.js +3 -2
  16. package/lib/plugins/linkedin-sales-navigator-settings/page.js.map +1 -1
  17. package/lib/plugins/omni-channel-settings/index.d.ts +9 -0
  18. package/lib/plugins/omni-channel-settings/index.e2e-spec.d.ts +1 -0
  19. package/lib/plugins/omni-channel-settings/index.e2e-spec.js +26 -0
  20. package/lib/plugins/omni-channel-settings/index.e2e-spec.js.map +1 -0
  21. package/lib/plugins/omni-channel-settings/index.js +33 -0
  22. package/lib/plugins/omni-channel-settings/index.js.map +1 -0
  23. package/lib/plugins/opportunity-splits/index.e2e-spec.js +1 -0
  24. package/lib/plugins/opportunity-splits/index.e2e-spec.js.map +1 -1
  25. package/lib/plugins/opportunity-splits/index.js +2 -2
  26. package/lib/plugins/opportunity-splits/index.js.map +1 -1
  27. package/lib/plugins/opportunity-splits/pages/overview.d.ts +1 -2
  28. package/lib/plugins/opportunity-splits/pages/overview.js +1 -6
  29. package/lib/plugins/opportunity-splits/pages/overview.js.map +1 -1
  30. package/lib/plugins/permission-sets/index.d.ts +10 -0
  31. package/lib/plugins/permission-sets/index.e2e-spec.d.ts +1 -0
  32. package/lib/plugins/permission-sets/index.e2e-spec.js +36 -0
  33. package/lib/plugins/permission-sets/index.e2e-spec.js.map +1 -0
  34. package/lib/plugins/permission-sets/index.js +22 -0
  35. package/lib/plugins/permission-sets/index.js.map +1 -0
  36. package/lib/plugins/permission-sets/service-presence-status/index.d.ts +10 -0
  37. package/lib/plugins/permission-sets/service-presence-status/index.js +56 -0
  38. package/lib/plugins/permission-sets/service-presence-status/index.js.map +1 -0
  39. package/lib/plugins/service-channels/capacity/index.d.ts +18 -0
  40. package/lib/plugins/service-channels/capacity/index.js +126 -0
  41. package/lib/plugins/service-channels/capacity/index.js.map +1 -0
  42. package/lib/plugins/service-channels/index.d.ts +12 -0
  43. package/lib/plugins/service-channels/index.e2e-spec.d.ts +1 -0
  44. package/lib/plugins/service-channels/index.e2e-spec.js +57 -0
  45. package/lib/plugins/service-channels/index.e2e-spec.js.map +1 -0
  46. package/lib/plugins/service-channels/index.js +37 -0
  47. package/lib/plugins/service-channels/index.js.map +1 -0
  48. package/lib/plugins/slack/index.e2e-spec.js +2 -2
  49. package/lib/plugins/slack/index.e2e-spec.js.map +1 -1
  50. package/lib/plugins/slack/index.js +2 -2
  51. package/lib/plugins/slack/index.js.map +1 -1
  52. package/oclif.manifest.json +1 -1
  53. package/package.json +4 -4
@@ -6,6 +6,7 @@ export declare class Browserforce {
6
6
  logger?: Ux;
7
7
  browser: Browser;
8
8
  page: Page;
9
+ lightningSetupUrl: string;
9
10
  constructor(org: Org, logger?: Ux);
10
11
  login(): Promise<Browserforce>;
11
12
  logout(): Promise<Browserforce>;
@@ -15,6 +16,10 @@ export declare class Browserforce {
15
16
  waitForSelectorInFrameOrPage(page: Page, selector: string): Promise<Page | Frame>;
16
17
  getMyDomain(): string | null;
17
18
  getInstanceUrl(): string;
19
+ /**
20
+ * @returns the setup url (e.g. https://[MyDomainName].my.salesforce-setup.com)
21
+ */
22
+ getLightningSetupUrl(): Promise<string>;
18
23
  }
19
24
  export declare function throwPageErrors(page: Page): Promise<void>;
20
25
  export declare function retry<T>(input: (attemptCount: number) => PromiseLike<T> | T): Promise<T>;
@@ -3,12 +3,13 @@ import { launch } from 'puppeteer';
3
3
  import { LoginPage } from './pages/login.js';
4
4
  const ERROR_DIV_SELECTOR = '#errorTitle';
5
5
  const ERROR_DIVS_SELECTOR = 'div.errorMsg';
6
- const VF_IFRAME_SELECTOR = 'iframe[name^=vfFrameId]';
6
+ const VF_IFRAME_SELECTOR = 'force-aloha-page iframe[name^=vfFrameId]';
7
7
  export class Browserforce {
8
8
  org;
9
9
  logger;
10
10
  browser;
11
11
  page;
12
+ lightningSetupUrl;
12
13
  constructor(org, logger) {
13
14
  this.org = org;
14
15
  this.logger = logger;
@@ -21,7 +22,8 @@ export class Browserforce {
21
22
  // workaround for navigating frames https://github.com/puppeteer/puppeteer/issues/5123
22
23
  '--disable-features=site-per-process'
23
24
  ],
24
- headless: !(process.env.BROWSER_DEBUG === 'true')
25
+ headless: !(process.env.BROWSER_DEBUG === 'true'),
26
+ slowMo: parseInt(process.env.BROWSER_SLOWMO, 10) ?? 0
25
27
  });
26
28
  const page = await this.getNewPage();
27
29
  try {
@@ -53,7 +55,8 @@ export class Browserforce {
53
55
  let page;
54
56
  const result = await pRetry(async () => {
55
57
  page = await this.getNewPage();
56
- const url = `${this.getInstanceUrl()}/${urlPath}`;
58
+ const setupUrl = urlPath.startsWith("lightning") ? await this.getLightningSetupUrl() : this.getInstanceUrl();
59
+ const url = `${setupUrl}/${urlPath}`;
57
60
  const response = await page.goto(url, options);
58
61
  if (response) {
59
62
  if (!response.ok()) {
@@ -85,8 +88,8 @@ export class Browserforce {
85
88
  // Wait for either the selector in the page or in the iframe.
86
89
  // returns the page or the frame
87
90
  async waitForSelectorInFrameOrPage(page, selector) {
88
- await page.waitForSelector(`pierce/${VF_IFRAME_SELECTOR}, ${selector}`);
89
- const frameElementHandle = await page.$(`pierce/${VF_IFRAME_SELECTOR}`);
91
+ await page.waitForSelector(`${selector}, ${VF_IFRAME_SELECTOR}`);
92
+ const frameElementHandle = await page.$(VF_IFRAME_SELECTOR);
90
93
  let frameOrPage = page;
91
94
  if (frameElementHandle) {
92
95
  const frame = await page.waitForFrame(async (f) => f.name().startsWith('vfFrameId') && f.url()?.length > 0 && f.url() !== 'about:blank');
@@ -109,6 +112,22 @@ export class Browserforce {
109
112
  // sometimes the instanceUrl includes a trailing slash
110
113
  return this.org.getConnection().instanceUrl?.replace(/\/$/, '');
111
114
  }
115
+ /**
116
+ * @returns the setup url (e.g. https://[MyDomainName].my.salesforce-setup.com)
117
+ */
118
+ async getLightningSetupUrl() {
119
+ if (!this.lightningSetupUrl) {
120
+ const page = await this.getNewPage();
121
+ try {
122
+ const lightningResponse = await page.goto(`${this.getInstanceUrl()}/lightning/setup/SetupOneHome/home`, { waitUntil: ["load", "networkidle2"] });
123
+ this.lightningSetupUrl = new URL(lightningResponse.url()).origin;
124
+ }
125
+ finally {
126
+ await page.close();
127
+ }
128
+ }
129
+ return this.lightningSetupUrl;
130
+ }
112
131
  }
113
132
  export async function throwPageErrors(page) {
114
133
  const errorHandle = await page.$(ERROR_DIV_SELECTOR);
@@ -1 +1 @@
1
- {"version":3,"file":"browserforce.js","sourceRoot":"","sources":["../src/browserforce.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browserforce.js","sourceRoot":"","sources":["../src/browserforce.ts"],"names":[],"mappings":"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"}
@@ -14,11 +14,11 @@ export class LoginPage {
14
14
  throw new Error('login failed');
15
15
  }
16
16
  const conn = org.getConnection();
17
- await this.page.goto(`${conn.instanceUrl}/${PATH}?sid=${conn.accessToken}&retURL=${encodeURIComponent(POST_LOGIN_PATH)}`, {
17
+ const response = await this.page.goto(`${conn.instanceUrl.replace(/\/$/, '')}/${PATH}?sid=${conn.accessToken}&retURL=${encodeURIComponent(POST_LOGIN_PATH)}`, {
18
18
  // should have waited at least 500ms for network connections, redirects should probably have happened already
19
19
  waitUntil: ['load', 'networkidle2']
20
20
  });
21
- const url = new URL(this.page.url());
21
+ const url = new URL(response.url());
22
22
  if (url.searchParams.has('startURL')) {
23
23
  // when query param startURL exists, the login failed
24
24
  // e.g. /?ec=302&startURL=https...
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/pages/login.ts"],"names":[],"mappings":"AAGA,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AACpC,MAAM,IAAI,GAAG,qBAAqB,CAAC;AACnC,MAAM,eAAe,GAAG,8BAA8B,CAAC;AAEvD,MAAM,OAAO,SAAS;IACZ,IAAI,CAAO;IAEnB,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAQ;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;QACjC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAClB,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,QAAQ,IAAI,CAAC,WAAW,WAAW,kBAAkB,CAAC,eAAe,CAAC,EAAE,EACnG;YACE,6GAA6G;YAC7G,SAAS,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC;SACpC,CACF,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACrC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACrC,qDAAqD;YACrD,kCAAkC;YAClC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAC1D,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAmB,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAC7G,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/pages/login.ts"],"names":[],"mappings":"AAGA,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AACpC,MAAM,IAAI,GAAG,qBAAqB,CAAC;AACnC,MAAM,eAAe,GAAG,8BAA8B,CAAC;AAEvD,MAAM,OAAO,SAAS;IACZ,IAAI,CAAO;IAEnB,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAQ;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CACnC,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,QAAQ,IAAI,CAAC,WAAW,WAAW,kBAAkB,CAAC,eAAe,CAAC,EAAE,EACtH;YACE,6GAA6G;YAC7G,SAAS,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC;SACpC,CACF,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QACpC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACrC,qDAAqD;YACrD,kCAAkC;YAClC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAC1D,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAmB,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAC7G,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -3,7 +3,7 @@ const PATHS = {
3
3
  BASE: 'lightning/setup/DensitySetup/home'
4
4
  };
5
5
  const SELECTORS = {
6
- PICKER_ITEMS: 'pierce/one-density-visual-picker one-density-visual-picker-item input'
6
+ PICKER_ITEMS: 'one-density-visual-picker one-density-visual-picker-item input'
7
7
  };
8
8
  export class DensitySettings extends BrowserforcePlugin {
9
9
  async retrieve() {
@@ -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,KAAK,GAAG;IACZ,IAAI,EAAE,mCAAmC;CAC1C,CAAC;AAEF,MAAM,SAAS,GAAG;IAChB,YAAY,EAAE,uEAAuE;CACtF,CAAC;AAYF,MAAM,OAAO,eAAgB,SAAQ,kBAAkB;IAC9C,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO;YACL,OAAO,EAAE,QAAS,CAAC,KAAK;SACzB,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAU;QAC3B,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACnD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,WAA+B,EAAE,EAAE,CAC3F,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACxB,OAAO;gBACL,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QACF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAC7B,OAAO,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAU,EAAE,IAAY;QACvC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,2BAA2B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7G,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,eAAe,CAClB,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;gBACtF,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAC5B;YACD,eAAe,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,KAAuB,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;SACnF,CAAC,CAAC;IACL,CAAC;CACF"}
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,KAAK,GAAG;IACZ,IAAI,EAAE,mCAAmC;CAC1C,CAAC;AAEF,MAAM,SAAS,GAAG;IAChB,YAAY,EAAE,gEAAgE;CAC/E,CAAC;AAYF,MAAM,OAAO,eAAgB,SAAQ,kBAAkB;IAC9C,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO;YACL,OAAO,EAAE,QAAS,CAAC,KAAK;SACzB,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAU;QAC3B,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACnD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,WAA+B,EAAE,EAAE,CAC3F,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACxB,OAAO;gBACL,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QACF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAC7B,OAAO,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAU,EAAE,IAAY;QACvC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,2BAA2B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7G,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,eAAe,CAClB,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;gBACtF,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAC5B;YACD,eAAe,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,KAAuB,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;SACnF,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import { throwPageErrors } from '../../browserforce.js';
2
2
  const SET_UP_AND_ENABLE_HVS_BUTTON = 'button.setupAndEnableButton';
3
3
  const ENABLE_TOGGLE = '#toggleHighVelocitySalesPref';
4
- const AUTOMATION_TAB_ITEM = 'pierce/#automationTab__item';
4
+ const AUTOMATION_TAB_ITEM = 'lightning-tab-bar li[data-tab-value="automationTab"]';
5
5
  export class HighVelocitySalesSetupPage {
6
6
  page;
7
7
  constructor(page) {
@@ -11,14 +11,12 @@ export class HighVelocitySalesSetupPage {
11
11
  return 'lightning/setup/SalesEngagement/home';
12
12
  }
13
13
  async setUpAndEnable() {
14
- // starting Winter 24 (v59.0) there is a new tab bar and the item is located in the "Automation" tab
15
- // wait for tab item or the button directly
16
- await this.page.waitForSelector(`${AUTOMATION_TAB_ITEM}, ${SET_UP_AND_ENABLE_HVS_BUTTON}`, { timeout: 60_000 });
14
+ await this.page.waitForSelector(AUTOMATION_TAB_ITEM);
17
15
  const tab = await this.page.$(AUTOMATION_TAB_ITEM);
18
16
  if (tab) {
19
17
  await this.page.evaluate((e) => e.click(), tab);
20
18
  }
21
- await this.page.waitForSelector(SET_UP_AND_ENABLE_HVS_BUTTON, { timeout: 60_000 });
19
+ await this.page.waitForSelector(SET_UP_AND_ENABLE_HVS_BUTTON);
22
20
  const enableButton = await this.page.$(SET_UP_AND_ENABLE_HVS_BUTTON);
23
21
  await Promise.all([
24
22
  this.page.waitForSelector(ENABLE_TOGGLE, { timeout: 60_000 }),
@@ -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,GAAG,6BAA6B,CAAC;AAE1D,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,oGAAoG;QACpG,2CAA2C;QAC3C,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,mBAAmB,KAAK,4BAA4B,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAChH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;QACnD,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,4BAA4B,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACnF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC;QACrE,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,YAAa,CAAC;SACjE,CAAC,CAAC;QACH,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF"}
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,GAAG,sDAAsD,CAAC;AAEnF,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,eAAe,CAAC,mBAAmB,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;QACnD,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC;QACrE,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,YAAa,CAAC;SACjE,CAAC,CAAC;QACH,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF"}
@@ -9,7 +9,9 @@ import { HighVelocitySalesSettings as highVelocitySalesSettings } from './high-v
9
9
  import { HomePageLayouts as homePageLayouts } from './home-page-layouts/index.js';
10
10
  import { LightningExperienceSettings as lightningExperienceSettings } from './lightning-experience-settings/index.js';
11
11
  import { LinkedInSalesNavigatorSettings as linkedInSalesNavigatorSettings } from './linkedin-sales-navigator-settings/index.js';
12
+ import { OmniChannelSettings as omniChannelSettings } from './omni-channel-settings/index.js';
12
13
  import { OpportunitySplits as opportunitySplits } from './opportunity-splits/index.js';
14
+ import { PermissionSets as permissionSets } from './permission-sets/index.js';
13
15
  import { Picklists as picklists } from './picklists/index.js';
14
16
  import { RecordTypes as recordTypes } from './record-types/index.js';
15
17
  import { RelateContactToMultipleAccounts as relateContactToMultipleAccounts } from './relate-contact-to-multiple-accounts/index.js';
@@ -17,5 +19,6 @@ import { ReportsAndDashboards as reportsAndDashboards } from './reports-and-dash
17
19
  import { SalesforceCpqConfig as salesforceCpqConfig } from './salesforce-cpq-config/index.js';
18
20
  import { SalesforceToSalesforce as salesforceToSalesforce } from './salesforce-to-salesforce/index.js';
19
21
  import { Security as security } from './security/index.js';
22
+ import { ServiceChannels as serviceChannels } from './service-channels/index.js';
20
23
  import { Slack as slack } from './slack/index.js';
21
- export { activitySettings, communities, companyInformation, customerPortal, deferSharingCalculation, densitySettings, emailDeliverability, highVelocitySalesSettings, homePageLayouts, lightningExperienceSettings, linkedInSalesNavigatorSettings, opportunitySplits, picklists, recordTypes, relateContactToMultipleAccounts, reportsAndDashboards, salesforceCpqConfig, salesforceToSalesforce, security, slack };
24
+ export { activitySettings, communities, companyInformation, customerPortal, deferSharingCalculation, densitySettings, emailDeliverability, highVelocitySalesSettings, homePageLayouts, lightningExperienceSettings, linkedInSalesNavigatorSettings, omniChannelSettings, opportunitySplits, permissionSets, picklists, recordTypes, relateContactToMultipleAccounts, reportsAndDashboards, salesforceCpqConfig, salesforceToSalesforce, security, serviceChannels, slack };
@@ -9,7 +9,9 @@ import { HighVelocitySalesSettings as highVelocitySalesSettings } from './high-v
9
9
  import { HomePageLayouts as homePageLayouts } from './home-page-layouts/index.js';
10
10
  import { LightningExperienceSettings as lightningExperienceSettings } from './lightning-experience-settings/index.js';
11
11
  import { LinkedInSalesNavigatorSettings as linkedInSalesNavigatorSettings } from './linkedin-sales-navigator-settings/index.js';
12
+ import { OmniChannelSettings as omniChannelSettings } from './omni-channel-settings/index.js';
12
13
  import { OpportunitySplits as opportunitySplits } from './opportunity-splits/index.js';
14
+ import { PermissionSets as permissionSets } from './permission-sets/index.js';
13
15
  import { Picklists as picklists } from './picklists/index.js';
14
16
  import { RecordTypes as recordTypes } from './record-types/index.js';
15
17
  import { RelateContactToMultipleAccounts as relateContactToMultipleAccounts } from './relate-contact-to-multiple-accounts/index.js';
@@ -17,6 +19,7 @@ import { ReportsAndDashboards as reportsAndDashboards } from './reports-and-dash
17
19
  import { SalesforceCpqConfig as salesforceCpqConfig } from './salesforce-cpq-config/index.js';
18
20
  import { SalesforceToSalesforce as salesforceToSalesforce } from './salesforce-to-salesforce/index.js';
19
21
  import { Security as security } from './security/index.js';
22
+ import { ServiceChannels as serviceChannels } from './service-channels/index.js';
20
23
  import { Slack as slack } from './slack/index.js';
21
- export { activitySettings, communities, companyInformation, customerPortal, deferSharingCalculation, densitySettings, emailDeliverability, highVelocitySalesSettings, homePageLayouts, lightningExperienceSettings, linkedInSalesNavigatorSettings, opportunitySplits, picklists, recordTypes, relateContactToMultipleAccounts, reportsAndDashboards, salesforceCpqConfig, salesforceToSalesforce, security, slack };
24
+ export { activitySettings, communities, companyInformation, customerPortal, deferSharingCalculation, densitySettings, emailDeliverability, highVelocitySalesSettings, homePageLayouts, lightningExperienceSettings, linkedInSalesNavigatorSettings, omniChannelSettings, opportunitySplits, permissionSets, picklists, recordTypes, relateContactToMultipleAccounts, reportsAndDashboards, salesforceCpqConfig, salesforceToSalesforce, security, serviceChannels, slack };
22
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,kBAAkB,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,cAAc,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,uBAAuB,IAAI,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC1G,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,mBAAmB,IAAI,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC7F,OAAO,EAAE,yBAAyB,IAAI,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACjH,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,2BAA2B,IAAI,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACtH,OAAO,EAAE,8BAA8B,IAAI,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AAChI,OAAO,EAAE,iBAAiB,IAAI,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,+BAA+B,IAAI,+BAA+B,EAAE,MAAM,gDAAgD,CAAC;AACpI,OAAO,EAAE,oBAAoB,IAAI,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACjG,OAAO,EAAE,mBAAmB,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC9F,OAAO,EAAE,sBAAsB,IAAI,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AACvG,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,2BAA2B,EAC3B,8BAA8B,EAC9B,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,+BAA+B,EAC/B,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,QAAQ,EACR,KAAK,EACN,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,kBAAkB,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EAAE,cAAc,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,uBAAuB,IAAI,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC1G,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,mBAAmB,IAAI,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC7F,OAAO,EAAE,yBAAyB,IAAI,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACjH,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,2BAA2B,IAAI,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACtH,OAAO,EAAE,8BAA8B,IAAI,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AAChI,OAAO,EAAE,mBAAmB,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC9F,OAAO,EAAE,iBAAiB,IAAI,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,cAAc,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,+BAA+B,IAAI,+BAA+B,EAAE,MAAM,gDAAgD,CAAC;AACpI,OAAO,EAAE,oBAAoB,IAAI,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACjG,OAAO,EAAE,mBAAmB,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC9F,OAAO,EAAE,sBAAsB,IAAI,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AACvG,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,2BAA2B,EAC3B,8BAA8B,EAC9B,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,WAAW,EACX,+BAA+B,EAC/B,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,QAAQ,EACR,eAAe,EACf,KAAK,EACN,CAAC"}
@@ -2,7 +2,7 @@ import { BrowserforcePlugin } from '../../plugin.js';
2
2
  const PATHS = {
3
3
  BASE: 'lightning/setup/ThemingAndBranding/home'
4
4
  };
5
- const THEME_ROW_SELECTOR = 'pierce/#setupComponent lightning-datatable table > tbody > tr';
5
+ const THEME_ROW_SELECTOR = '#setupComponent lightning-datatable table > tbody > tr';
6
6
  const SELECTORS = {
7
7
  DEVELOPER_NAMES: `${THEME_ROW_SELECTOR} > td:nth-child(2) > lightning-primitive-cell-factory lightning-base-formatted-text`,
8
8
  STATES: `${THEME_ROW_SELECTOR} > td:nth-child(6) > lightning-primitive-cell-factory`
@@ -47,12 +47,12 @@ export class LightningExperienceSettings extends BrowserforcePlugin {
47
47
  await page.waitForSelector(`${THEME_ROW_SELECTOR} lightning-button-menu`, {
48
48
  visible: true
49
49
  });
50
- const menuButton = await newActiveThemeRowElementHandle.$('pierce/td lightning-primitive-cell-factory lightning-primitive-cell-actions lightning-button-menu');
50
+ const menuButton = await newActiveThemeRowElementHandle.$('td lightning-primitive-cell-factory lightning-primitive-cell-actions lightning-button-menu');
51
51
  await page.evaluate((e) => e.click(), menuButton);
52
52
  await page.waitForSelector(`${THEME_ROW_SELECTOR} lightning-button-menu slot lightning-menu-item`, {
53
53
  visible: true
54
54
  });
55
- const menuItems = await menuButton.$$('pierce/slot lightning-menu-item');
55
+ const menuItems = await menuButton.$$('slot lightning-menu-item');
56
56
  // second last item: [show, activate, preview]
57
57
  const activateMenuItem = menuItems[menuItems.length - 2];
58
58
  await Promise.all([page.waitForNavigation(), page.evaluate((e) => e.click(), activateMenuItem)]);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/lightning-experience-settings/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/lightning-experience-settings/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { throwPageErrors } from '../../browserforce.js';
2
2
  const ENABLE_TOGGLE = 'div[data-aura-class="setup_sales_linkedinLinkedInSetupRow"] input[type="checkbox"]';
3
- const CONFIRM_CHECKBOX = 'pierce/lightning-primitive-input-checkbox input[name="LinkedIn Sales Navigator Integration Acceptance Checkbox"]';
3
+ const CONFIRM_CHECKBOX = 'lightning-input lightning-primitive-input-checkbox input[name="LinkedIn Sales Navigator Integration Acceptance Checkbox"]';
4
4
  const ACCEPT_BUTTON = 'section[data-aura-class="setup_sales_linkedinLinkedInSetupAcceptTermsModal"] div div button:not(:disabled):nth-child(2)';
5
5
  export class LinkedInSalesNavigatorPage {
6
6
  page;
@@ -18,7 +18,8 @@ export class LinkedInSalesNavigatorPage {
18
18
  }
19
19
  async setStatus(enable) {
20
20
  await this.page.waitForSelector(ENABLE_TOGGLE, { visible: true });
21
- await this.page.click(ENABLE_TOGGLE);
21
+ const toggle = await this.page.$(ENABLE_TOGGLE);
22
+ await toggle?.evaluate((input) => input.click());
22
23
  if (enable) {
23
24
  await this.page.waitForSelector(CONFIRM_CHECKBOX, { visible: true });
24
25
  const checkbox = await this.page.$(CONFIRM_CHECKBOX);
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sourceRoot":"","sources":["../../../src/plugins/linkedin-sales-navigator-settings/page.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,aAAa,GAAG,oFAAoF,CAAC;AAC3G,MAAM,gBAAgB,GACpB,kHAAkH,CAAC;AACrH,MAAM,aAAa,GACjB,yHAAyH,CAAC;AAE5H,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,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,EAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAC7F,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,MAAe;QACpC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAErC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACrE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;YACrD,MAAM,QAAQ,EAAE,QAAQ,CAAC,CAAC,KAAuB,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACrE,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF"}
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../../src/plugins/linkedin-sales-navigator-settings/page.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,aAAa,GAAG,oFAAoF,CAAC;AAC3G,MAAM,gBAAgB,GACpB,2HAA2H,CAAC;AAC9H,MAAM,aAAa,GACjB,yHAAyH,CAAC;AAE5H,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,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,EAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAC7F,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,MAAe;QACpC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAuB,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAEnE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACrE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;YACrD,MAAM,QAAQ,EAAE,QAAQ,CAAC,CAAC,KAAuB,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACrE,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import { BrowserforcePlugin } from '../../plugin.js';
2
+ type Config = {
3
+ enableStatusBasedCapacityModel?: boolean;
4
+ };
5
+ export declare class OmniChannelSettings extends BrowserforcePlugin {
6
+ retrieve(definition?: Config): Promise<Config>;
7
+ apply(config: Config): Promise<void>;
8
+ }
9
+ export {};
@@ -0,0 +1,26 @@
1
+ import assert from 'assert';
2
+ import { OmniChannelSettings } from './index.js';
3
+ describe(OmniChannelSettings.name, function () {
4
+ this.timeout('10m');
5
+ let plugin;
6
+ before(() => {
7
+ plugin = new OmniChannelSettings(global.bf);
8
+ });
9
+ const configEnableStatusBasedCapacityModel = {
10
+ enableStatusBasedCapacityModel: true
11
+ };
12
+ const configDisableStatusBasedCapacityModel = {
13
+ enableStatusBasedCapacityModel: false
14
+ };
15
+ it('should enable status based capacity model', async () => {
16
+ await plugin.run(configEnableStatusBasedCapacityModel);
17
+ const res = await plugin.retrieve();
18
+ assert.deepStrictEqual(res, configEnableStatusBasedCapacityModel);
19
+ });
20
+ it('should disable status based capacity model', async () => {
21
+ await plugin.run(configDisableStatusBasedCapacityModel);
22
+ const res = await plugin.retrieve();
23
+ assert.deepStrictEqual(res, configDisableStatusBasedCapacityModel);
24
+ });
25
+ });
26
+ //# sourceMappingURL=index.e2e-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/omni-channel-settings/index.e2e-spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE;IACjC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,IAAI,MAA2B,CAAC;IAChC,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,MAAM,oCAAoC,GAAG;QAC3C,8BAA8B,EAAE,IAAI;KACrC,CAAC;IACF,MAAM,qCAAqC,GAAG;QAC5C,8BAA8B,EAAE,KAAK;KACtC,CAAC;IAEF,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,oCAAoC,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,qCAAqC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { BrowserforcePlugin } from '../../plugin.js';
2
+ const PATHS = {
3
+ BASE: 'omnichannel/settings.apexp'
4
+ };
5
+ const SELECTORS = {
6
+ SAVE_BUTTON: 'input[id$=":save"]',
7
+ STATUS_CAPACITY_TOGGLE: 'input[id$=":toggleOmniStatusCapModelPref"]'
8
+ };
9
+ export class OmniChannelSettings extends BrowserforcePlugin {
10
+ async retrieve(definition) {
11
+ // Open the omni-channel setup page
12
+ const page = await this.browserforce.openPage(PATHS.BASE);
13
+ // Retrieve the service channel config
14
+ await page.waitForSelector(SELECTORS.STATUS_CAPACITY_TOGGLE);
15
+ const enableStatusBasedCapacityModel = await page.$eval(SELECTORS.STATUS_CAPACITY_TOGGLE, el => (el.getAttribute('checked') === "checked" ? true : false));
16
+ return { enableStatusBasedCapacityModel };
17
+ }
18
+ async apply(config) {
19
+ // Open the omni-channel setup page
20
+ const page = await this.browserforce.openPage(PATHS.BASE);
21
+ // Click the checkbox
22
+ const capacityModel = await page.waitForSelector(SELECTORS.STATUS_CAPACITY_TOGGLE);
23
+ await capacityModel.click();
24
+ // Save the settings
25
+ const saveButton = await page.waitForSelector(SELECTORS.SAVE_BUTTON);
26
+ await saveButton.click();
27
+ // Wait for the page to refresh
28
+ await page.waitForNavigation();
29
+ // Close the page
30
+ await page.close();
31
+ }
32
+ }
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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,KAAK,GAAG;IACZ,IAAI,EAAE,4BAA4B;CACnC,CAAC;AAEF,MAAM,SAAS,GAAG;IAChB,WAAW,EAAE,oBAAoB;IACjC,sBAAsB,EAAE,4CAA4C;CACrE,CAAC;AAMF,MAAM,OAAO,mBAAoB,SAAQ,kBAAkB;IAClD,KAAK,CAAC,QAAQ,CAAC,UAAmB;QACvC,mCAAmC;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE1D,sCAAsC;QACtC,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAC7D,MAAM,8BAA8B,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,sBAAsB,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAE3J,OAAO,EAAE,8BAA8B,EAAE,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,mCAAmC;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE1D,qBAAqB;QACrB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACnF,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;QAE5B,oBAAoB;QACpB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACrE,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;QAEzB,+BAA+B;QAC/B,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAE9B,iBAAiB;QACjB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
@@ -5,6 +5,7 @@ import * as path from 'path';
5
5
  import { OpportunitySplits } from './index.js';
6
6
  const __dirname = fileURLToPath(new URL('.', import.meta.url));
7
7
  describe(OpportunitySplits.name, function () {
8
+ this.timeout('10m');
8
9
  let plugin;
9
10
  before(() => {
10
11
  plugin = new OpportunitySplits(global.bf);
@@ -1 +1 @@
1
- {"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/opportunity-splits/index.e2e-spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,KAAK,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE;IAC/B,IAAI,MAAyB,CAAC;IAC9B,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG;QACpB,OAAO,EAAE,IAAI;KACd,CAAC;IACF,MAAM,cAAc,GAAG;QACrB,OAAO,EAAE,KAAK;KACf,CAAC;IACF,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE;YAC5C,SAAS;YACT,QAAQ;YACR,OAAO;YACP,IAAI;YACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC;YACnC,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/opportunity-splits/index.e2e-spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,KAAK,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE;IAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,IAAI,MAAyB,CAAC;IAC9B,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG;QACpB,OAAO,EAAE,IAAI;KACd,CAAC;IACF,MAAM,cAAc,GAAG;QACrB,OAAO,EAAE,KAAK;KACf,CAAC;IACF,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE;YAC5C,SAAS;YACT,QAAQ;YACR,OAAO;YACP,IAAI;YACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC;YACnC,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -18,13 +18,13 @@ export class OpportunitySplits extends BrowserforcePlugin {
18
18
  const setupPage = new SetupPage(page);
19
19
  const layoutSelectionPage = await setupPage.enable();
20
20
  const overviewPage = await layoutSelectionPage.choose();
21
- await overviewPage.waitUntilEnabled();
21
+ await overviewPage.waitUntilCompleted();
22
22
  }
23
23
  else {
24
24
  page = await this.browserforce.openPage(OverviewPage.PATH);
25
25
  const overviewPage = new OverviewPage(page);
26
26
  await overviewPage.disable();
27
- await overviewPage.waitUntilDisabled();
27
+ await overviewPage.waitUntilCompleted();
28
28
  }
29
29
  await page.close();
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/opportunity-splits/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAM7C,MAAM,OAAO,iBAAkB,SAAQ,kBAAkB;IAChD,KAAK,CAAC,QAAQ,CAAC,UAAmB;QACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,MAAM,YAAY,CAAC,SAAS,EAAE;SACxC,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,IAAI,IAAU,CAAC;QACf,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,mBAAmB,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC;YACrD,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,CAAC;YACxD,MAAM,YAAY,CAAC,gBAAgB,EAAE,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC3D,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;YAC7B,MAAM,YAAY,CAAC,iBAAiB,EAAE,CAAC;QACzC,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/opportunity-splits/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAM7C,MAAM,OAAO,iBAAkB,SAAQ,kBAAkB;IAChD,KAAK,CAAC,QAAQ,CAAC,UAAmB;QACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,MAAM,YAAY,CAAC,SAAS,EAAE;SACxC,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,IAAI,IAAU,CAAC;QACf,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,mBAAmB,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC;YACrD,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,CAAC;YACxD,MAAM,YAAY,CAAC,kBAAkB,EAAE,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC3D,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;YAC7B,MAAM,YAAY,CAAC,kBAAkB,EAAE,CAAC;QAC1C,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
@@ -4,7 +4,6 @@ export declare class OverviewPage {
4
4
  private page;
5
5
  constructor(page: Page);
6
6
  isEnabled(): Promise<boolean>;
7
- waitUntilEnabled(): Promise<void>;
7
+ waitUntilCompleted(): Promise<void>;
8
8
  disable(): Promise<OverviewPage>;
9
- waitUntilDisabled(): Promise<void>;
10
9
  }
@@ -1,4 +1,3 @@
1
- const IN_PRGOGRESS = '#enablingInProgress';
2
1
  const COMPLETED = '#prefSettingSucceeded';
3
2
  const DISABLE_LINK = 'div[id*=":disable_form:"] a';
4
3
  const DISABLE_CONFIRM_CHECKBOX = 'input#dis_confirm';
@@ -12,8 +11,7 @@ export class OverviewPage {
12
11
  async isEnabled() {
13
12
  return (await this.page.$(DISABLE_LINK)) !== null;
14
13
  }
15
- async waitUntilEnabled() {
16
- await this.page.waitForSelector(IN_PRGOGRESS);
14
+ async waitUntilCompleted() {
17
15
  // 10 minutes
18
16
  await this.page.waitForSelector(COMPLETED, { timeout: 10 * 60 * 1000 });
19
17
  }
@@ -26,8 +24,5 @@ export class OverviewPage {
26
24
  await Promise.all([this.page.waitForNavigation(), this.page.click(DISABLE_CONFIRM_BUTTON)]);
27
25
  return this;
28
26
  }
29
- async waitUntilDisabled() {
30
- await this.page.waitForSelector(COMPLETED);
31
- }
32
27
  }
33
28
  //# sourceMappingURL=overview.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"overview.js","sourceRoot":"","sources":["../../../../src/plugins/opportunity-splits/pages/overview.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAC3C,MAAM,SAAS,GAAG,uBAAuB,CAAC;AAC1C,MAAM,YAAY,GAAG,6BAA6B,CAAC;AACnD,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AACrD,MAAM,sBAAsB,GAAG,uDAAuD,CAAC;AAEvF,MAAM,OAAO,YAAY;IACvB,MAAM,CAAC,IAAI,GAAG,uEAAuE,CAAC;IAC9E,IAAI,CAAC;IAEb,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,SAAS;QACpB,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,CAAC;IACpD,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC3B,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAC9C,aAAa;QACb,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;QACxD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC5F,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC"}
1
+ {"version":3,"file":"overview.js","sourceRoot":"","sources":["../../../../src/plugins/opportunity-splits/pages/overview.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAG,uBAAuB,CAAC;AAC1C,MAAM,YAAY,GAAG,6BAA6B,CAAC;AACnD,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AACrD,MAAM,sBAAsB,GAAG,uDAAuD,CAAC;AAEvF,MAAM,OAAO,YAAY;IACvB,MAAM,CAAC,IAAI,GAAG,uEAAuE,CAAC;IAC9E,IAAI,CAAC;IAEb,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,SAAS;QACpB,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,CAAC;IACpD,CAAC;IAEM,KAAK,CAAC,kBAAkB;QAC7B,aAAa;QACb,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;QACxD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC5F,OAAO,IAAI,CAAC;IACd,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { BrowserforcePlugin } from '../../plugin.js';
2
+ type PermissionSet = {
3
+ permissionSetName: string;
4
+ servicePresenceStatuses: string[];
5
+ };
6
+ export declare class PermissionSets extends BrowserforcePlugin {
7
+ retrieve(definition?: PermissionSet[]): Promise<PermissionSet[]>;
8
+ apply(plan: PermissionSet[]): Promise<void>;
9
+ }
10
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,36 @@
1
+ import assert from 'assert';
2
+ import * as child from 'child_process';
3
+ import { fileURLToPath } from 'node:url';
4
+ import * as path from 'path';
5
+ import { PermissionSets } from './index.js';
6
+ const __dirname = fileURLToPath(new URL('.', import.meta.url));
7
+ describe(PermissionSets.name, function () {
8
+ this.timeout('10m');
9
+ let plugin;
10
+ before(() => {
11
+ plugin = new PermissionSets(global.bf);
12
+ });
13
+ const configurePermissionSet = [
14
+ {
15
+ permissionSetName: "ServicePresenceTest",
16
+ servicePresenceStatuses: ["TestStatus", "TestStatus3"]
17
+ }
18
+ ];
19
+ it('should create permission set and service presence status as a prerequisite', () => {
20
+ const sourceDeployCmd = child.spawnSync('sf', [
21
+ 'project',
22
+ 'deploy',
23
+ 'start',
24
+ '-d',
25
+ path.join(__dirname, 'sfdx-source'),
26
+ '--json'
27
+ ]);
28
+ assert.deepStrictEqual(sourceDeployCmd.status, 0, sourceDeployCmd.output.toString());
29
+ });
30
+ it('should configure permission set presence status', async () => {
31
+ await plugin.run(configurePermissionSet);
32
+ const res = await plugin.retrieve(configurePermissionSet);
33
+ assert.deepStrictEqual(res, configurePermissionSet);
34
+ });
35
+ });
36
+ //# sourceMappingURL=index.e2e-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/permission-sets/index.e2e-spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,KAAK,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE;IAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,IAAI,MAAsB,CAAC;IAC3B,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG;QAC7B;YACE,iBAAiB,EAAE,qBAAqB;YACxC,uBAAuB,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;SACvD;KACF,CAAC;IAEF,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE;YAC5C,SAAS;YACT,QAAQ;YACR,OAAO;YACP,IAAI;YACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC;YACnC,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAC1D,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { BrowserforcePlugin } from '../../plugin.js';
2
+ import { ServicePresenceStatus } from './service-presence-status/index.js';
3
+ export class PermissionSets extends BrowserforcePlugin {
4
+ async retrieve(definition) {
5
+ const pluginServicePresenceStatus = new ServicePresenceStatus(this.browserforce);
6
+ const permissionSets = [];
7
+ for await (const permissionSet of definition) {
8
+ permissionSets.push({
9
+ permissionSetName: permissionSet.permissionSetName,
10
+ servicePresenceStatuses: await pluginServicePresenceStatus.retrieve(permissionSet)
11
+ });
12
+ }
13
+ return permissionSets;
14
+ }
15
+ async apply(plan) {
16
+ const pluginServicePresenceStatus = new ServicePresenceStatus(this.browserforce);
17
+ for await (const permissionSet of plan) {
18
+ await pluginServicePresenceStatus.apply(permissionSet);
19
+ }
20
+ }
21
+ }
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/permission-sets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAO3E,MAAM,OAAO,cAAe,SAAQ,kBAAkB;IAC7C,KAAK,CAAC,QAAQ,CAAC,UAA4B;QAChD,MAAM,2BAA2B,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEjF,MAAM,cAAc,GAAoB,EAAE,CAAC;QAE3C,IAAI,KAAK,EAAE,MAAM,aAAa,IAAI,UAAU,EAAE,CAAC;YAC7C,cAAc,CAAC,IAAI,CAAC;gBAClB,iBAAiB,EAAE,aAAa,CAAC,iBAAiB;gBAClD,uBAAuB,EAAE,MAAM,2BAA2B,CAAC,QAAQ,CAAC,aAAa,CAAC;aACnF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,IAAqB;QACtC,MAAM,2BAA2B,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEjF,IAAI,KAAK,EAAE,MAAM,aAAa,IAAI,IAAI,EAAE,CAAC;YACvC,MAAM,2BAA2B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import { BrowserforcePlugin } from '../../../plugin.js';
2
+ type PermissionSet = {
3
+ permissionSetName: string;
4
+ servicePresenceStatuses: string[];
5
+ };
6
+ export declare class ServicePresenceStatus extends BrowserforcePlugin {
7
+ retrieve(definition: PermissionSet): Promise<string[]>;
8
+ apply(config: PermissionSet): Promise<void>;
9
+ }
10
+ export {};
@@ -0,0 +1,56 @@
1
+ import { BrowserforcePlugin } from '../../../plugin.js';
2
+ const SELECTORS = {
3
+ ADD_BUTTON: 'a[id$=":duelingListBox:backingList_add"]',
4
+ REMOVE_BUTTON: 'a[id$=":duelingListBox:backingList_remove"]',
5
+ SAVE_BUTTON: 'input[id$=":button_pc_save"]',
6
+ VALUES_AVAILABLE: 'select[id$=":duelingListBox:backingList_a"]:not([disabled="disabled"])',
7
+ VALUES_ENABLED: 'select[id$=":duelingListBox:backingList_s"]:not([disabled="disabled"])'
8
+ };
9
+ export class ServicePresenceStatus extends BrowserforcePlugin {
10
+ async retrieve(definition) {
11
+ // Query for the permission set
12
+ const permissionSetName = definition.permissionSetName;
13
+ const permissionSet = await this.org.getConnection().singleRecordQuery(`SELECT Id FROM PermissionSet WHERE Name='${permissionSetName}'`);
14
+ // Open the permission set setup page
15
+ const page = await this.browserforce.openPage(`${permissionSet.Id}/e?s=ServicePresenceStatusAccess`);
16
+ const enabledServicePresenceStatuses = await page.$$eval(`${SELECTORS.VALUES_ENABLED} > option`, (options) => {
17
+ return options.map((option) => option.title ?? '');
18
+ });
19
+ return enabledServicePresenceStatuses;
20
+ }
21
+ async apply(config) {
22
+ // Query for the permission set
23
+ const permissionSetName = config.permissionSetName;
24
+ const permissionSet = await this.org.getConnection().singleRecordQuery(`SELECT Id FROM PermissionSet WHERE Name='${permissionSetName}'`);
25
+ // Open the permission set setup page
26
+ const page = await this.browserforce.openPage(`${permissionSet.Id}/e?s=ServicePresenceStatusAccess`);
27
+ if (config?.servicePresenceStatuses) {
28
+ await page.waitForSelector(`${SELECTORS.VALUES_AVAILABLE} > option`);
29
+ const availableElements = await page.$$(`${SELECTORS.VALUES_AVAILABLE} > option`);
30
+ for (const availableElement of availableElements) {
31
+ const optionTitle = (await availableElement.evaluate(node => node.getAttribute('title')))?.toString();
32
+ if (optionTitle && config.servicePresenceStatuses.includes(optionTitle)) {
33
+ await availableElement.click();
34
+ await page.click(SELECTORS.ADD_BUTTON);
35
+ }
36
+ }
37
+ await page.waitForSelector(`${SELECTORS.VALUES_ENABLED} > option`);
38
+ const enabledElements = await page.$$(`${SELECTORS.VALUES_ENABLED} > option`);
39
+ for (const enabledElement of enabledElements) {
40
+ const optionTitle = (await enabledElement.evaluate(node => node.getAttribute('title')))?.toString();
41
+ if (optionTitle && !config.servicePresenceStatuses.includes(optionTitle)) {
42
+ await enabledElement.click();
43
+ await page.click(SELECTORS.REMOVE_BUTTON);
44
+ }
45
+ }
46
+ }
47
+ // Save the settings and wait for page refresh
48
+ await Promise.all([
49
+ page.waitForNavigation(),
50
+ page.click(SELECTORS.SAVE_BUTTON)
51
+ ]);
52
+ // Close the page
53
+ await page.close();
54
+ }
55
+ }
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/permission-sets/service-presence-status/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { BrowserforcePlugin } from '../../../plugin.js';
2
+ type ServiceChannel = {
3
+ serviceChannelDeveloperName: string;
4
+ capacity: CapacityConfig;
5
+ };
6
+ export type CapacityConfig = {
7
+ capacityModel?: string;
8
+ statusField?: string;
9
+ valuesForInProgress?: string[];
10
+ checkAgentCapacityOnReopenedWorkItems?: boolean;
11
+ checkAgentCapacityOnReassignedWorkItems?: boolean;
12
+ };
13
+ export declare class Capacity extends BrowserforcePlugin {
14
+ retrieve(definition: ServiceChannel): Promise<CapacityConfig>;
15
+ diff(state?: CapacityConfig, definition?: CapacityConfig): CapacityConfig | undefined;
16
+ apply(config: ServiceChannel): Promise<void>;
17
+ }
18
+ export {};
@@ -0,0 +1,126 @@
1
+ import { BrowserforcePlugin } from '../../../plugin.js';
2
+ const SELECTORS = {
3
+ ADD_BUTTON: 'a[id$=":duelingListBox:backingList_add"]',
4
+ CAPACITY_MODEL: 'select[id$=":capacityModelSection:editCapacityModel"]',
5
+ OWNER_CHANGE_CAPACITY: 'input[name*=":ownerChangeCapacityCheck"]',
6
+ REMOVE_BUTTON: 'a[id$=":duelingListBox:backingList_remove"]',
7
+ SAVE_BUTTON: 'input[id$=":save"]',
8
+ STATUS_FIELD: 'select[id$=":statusFieldSection:editCapacityModel"]',
9
+ STATUS_CHANGE_CAPACITY: 'input[name*=":statusChangeCapacityCheck"]',
10
+ VALUES_COMPLETED: 'select[id$=":statusFieldValues:duelingListBox:backingList_a"]:not([disabled="disabled"])',
11
+ VALUES_IN_PROGRESS: 'select[id$=":statusFieldValues:duelingListBox:backingList_s"]:not([disabled="disabled"])'
12
+ };
13
+ export class Capacity extends BrowserforcePlugin {
14
+ async retrieve(definition) {
15
+ // Query for the service channel
16
+ const serviceChannelDeveloperName = definition.serviceChannelDeveloperName;
17
+ const serviceChannel = await this.org.getConnection().singleRecordQuery(`SELECT Id FROM ServiceChannel WHERE DeveloperName='${serviceChannelDeveloperName}'`);
18
+ // Open the service channel setup page
19
+ const page = await this.browserforce.openPage(`${serviceChannel.Id}/e`);
20
+ // Retrieve the service channel config
21
+ if (!await page.$(SELECTORS.CAPACITY_MODEL)) {
22
+ return {};
23
+ }
24
+ const capacityModel = (await page.$eval(`${SELECTORS.CAPACITY_MODEL} > option[selected]`, (el) => el.value)) ?? '';
25
+ if (capacityModel === 'StatusBased') {
26
+ const statusField = (await page.$eval(`${SELECTORS.STATUS_FIELD} > option[selected]`, (el) => el.value)) ?? '';
27
+ const valuesForInProgress = await page.$$eval(`${SELECTORS.VALUES_IN_PROGRESS} > option`, (options) => {
28
+ return options.map((option) => option.title ?? '');
29
+ });
30
+ const checkAgentCapacityOnReopenedWorkItems = await page.$eval(SELECTORS.STATUS_CHANGE_CAPACITY, (el) => el.getAttribute('checked') === 'checked' ? true : false);
31
+ const checkAgentCapacityOnReassignedWorkItems = await page.$eval(SELECTORS.OWNER_CHANGE_CAPACITY, (el) => el.getAttribute('checked') === 'checked' ? true : false);
32
+ return {
33
+ capacityModel,
34
+ statusField,
35
+ valuesForInProgress,
36
+ checkAgentCapacityOnReopenedWorkItems,
37
+ checkAgentCapacityOnReassignedWorkItems
38
+ };
39
+ }
40
+ return { capacityModel };
41
+ }
42
+ diff(state, definition) {
43
+ const response = {};
44
+ if (state && definition) {
45
+ if (definition.capacityModel === 'Tab-based') {
46
+ if (definition.capacityModel !== state.capacityModel) {
47
+ response.capacityModel = definition.capacityModel;
48
+ return response;
49
+ }
50
+ return undefined;
51
+ }
52
+ if (definition.capacityModel !== state.capacityModel) {
53
+ response.capacityModel = definition.capacityModel;
54
+ }
55
+ if (definition.statusField !== state.statusField) {
56
+ response.statusField = definition.statusField;
57
+ }
58
+ if (JSON.stringify(definition.valuesForInProgress) !== JSON.stringify(state.valuesForInProgress)) {
59
+ response.valuesForInProgress = definition.valuesForInProgress;
60
+ }
61
+ if (definition.checkAgentCapacityOnReassignedWorkItems !== state.checkAgentCapacityOnReassignedWorkItems) {
62
+ response.checkAgentCapacityOnReassignedWorkItems = definition.checkAgentCapacityOnReassignedWorkItems;
63
+ }
64
+ if (definition.checkAgentCapacityOnReopenedWorkItems !== state.checkAgentCapacityOnReopenedWorkItems) {
65
+ response.checkAgentCapacityOnReopenedWorkItems = definition.checkAgentCapacityOnReopenedWorkItems;
66
+ }
67
+ }
68
+ return Object.keys(response).length ? response : undefined;
69
+ }
70
+ async apply(config) {
71
+ const conn = this.org.getConnection();
72
+ // Query for the service channel
73
+ const serviceChannelDeveloperName = config.serviceChannelDeveloperName;
74
+ const serviceChannel = await conn.singleRecordQuery(`SELECT Id FROM ServiceChannel WHERE DeveloperName='${serviceChannelDeveloperName}'`);
75
+ // Open the service channel setup page
76
+ const page = await this.browserforce.openPage(`${serviceChannel.Id}/e`);
77
+ // Update the service channel config
78
+ const configCapacity = config.capacity;
79
+ if (configCapacity?.capacityModel) {
80
+ await page.waitForSelector(SELECTORS.CAPACITY_MODEL);
81
+ await page.select(SELECTORS.CAPACITY_MODEL, configCapacity.capacityModel);
82
+ }
83
+ if (configCapacity?.statusField) {
84
+ await page.waitForSelector(SELECTORS.STATUS_FIELD);
85
+ await page.select(SELECTORS.STATUS_FIELD, configCapacity.statusField);
86
+ }
87
+ if (configCapacity?.valuesForInProgress) {
88
+ await page.waitForSelector(`${SELECTORS.VALUES_COMPLETED} > option`);
89
+ const completedElements = await page.$$(`${SELECTORS.VALUES_COMPLETED} > option`);
90
+ for (const completedElement of completedElements) {
91
+ const optionTitle = (await completedElement.evaluate(node => node.getAttribute('title')))?.toString();
92
+ if (optionTitle && configCapacity.valuesForInProgress.includes(optionTitle)) {
93
+ await completedElement.click();
94
+ await page.click(SELECTORS.ADD_BUTTON);
95
+ }
96
+ }
97
+ await page.waitForSelector(`${SELECTORS.VALUES_IN_PROGRESS} > option`);
98
+ const inprogressElements = await page.$$(`${SELECTORS.VALUES_IN_PROGRESS} > option`);
99
+ for (const inprogressElement of inprogressElements) {
100
+ const optionTitle = (await inprogressElement.evaluate(node => node.getAttribute('title')))?.toString();
101
+ if (optionTitle && !configCapacity.valuesForInProgress.includes(optionTitle)) {
102
+ await inprogressElement.click();
103
+ await page.click(SELECTORS.REMOVE_BUTTON);
104
+ }
105
+ }
106
+ }
107
+ if (configCapacity?.checkAgentCapacityOnReassignedWorkItems !== undefined) {
108
+ await page.$eval(SELECTORS.STATUS_CHANGE_CAPACITY, (e, v) => {
109
+ e.checked = v;
110
+ }, configCapacity.checkAgentCapacityOnReassignedWorkItems);
111
+ }
112
+ if (configCapacity?.checkAgentCapacityOnReopenedWorkItems !== undefined) {
113
+ await page.$eval(SELECTORS.OWNER_CHANGE_CAPACITY, (e, v) => {
114
+ e.checked = v;
115
+ }, configCapacity.checkAgentCapacityOnReopenedWorkItems);
116
+ }
117
+ // Save the settings and wait for page refresh
118
+ await Promise.all([
119
+ page.waitForNavigation(),
120
+ page.click(SELECTORS.SAVE_BUTTON)
121
+ ]);
122
+ // Close the page
123
+ await page.close();
124
+ }
125
+ }
126
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/service-channels/capacity/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { BrowserforcePlugin } from '../../plugin.js';
2
+ import { CapacityConfig } from './capacity/index.js';
3
+ type ServiceChannel = {
4
+ serviceChannelDeveloperName: string;
5
+ capacity: CapacityConfig;
6
+ };
7
+ export declare class ServiceChannels extends BrowserforcePlugin {
8
+ retrieve(definition?: ServiceChannel[]): Promise<ServiceChannel[]>;
9
+ diff(state: ServiceChannel[], definition: ServiceChannel[]): ServiceChannel[] | undefined;
10
+ apply(plan: ServiceChannel[]): Promise<void>;
11
+ }
12
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,57 @@
1
+ import assert from 'assert';
2
+ import * as child from 'child_process';
3
+ import { fileURLToPath } from 'node:url';
4
+ import * as path from 'path';
5
+ import { ServiceChannels } from './index.js';
6
+ import { OmniChannelSettings } from '../omni-channel-settings/index.js';
7
+ const __dirname = fileURLToPath(new URL('.', import.meta.url));
8
+ describe(ServiceChannels.name, function () {
9
+ this.timeout('10m');
10
+ let plugin;
11
+ before(() => {
12
+ plugin = new ServiceChannels(global.bf);
13
+ });
14
+ const configureServiceChannels = [
15
+ {
16
+ serviceChannelDeveloperName: "CaseTest",
17
+ capacity: {
18
+ capacityModel: "StatusBased",
19
+ statusField: "Case.Type",
20
+ valuesForInProgress: ["Electrical", "Mechanical"],
21
+ checkAgentCapacityOnReopenedWorkItems: true,
22
+ checkAgentCapacityOnReassignedWorkItems: true
23
+ }
24
+ },
25
+ {
26
+ serviceChannelDeveloperName: "LeadTest",
27
+ capacity: {
28
+ capacityModel: "StatusBased",
29
+ statusField: "Lead.Industry",
30
+ valuesForInProgress: ["Agriculture", "Chemicals"],
31
+ checkAgentCapacityOnReopenedWorkItems: true,
32
+ checkAgentCapacityOnReassignedWorkItems: true
33
+ }
34
+ }
35
+ ];
36
+ it('should create service channel as a prerequisite', () => {
37
+ const sourceDeployCmd = child.spawnSync('sf', [
38
+ 'project',
39
+ 'deploy',
40
+ 'start',
41
+ '-d',
42
+ path.join(__dirname, 'sfdx-source'),
43
+ '--json'
44
+ ]);
45
+ assert.deepStrictEqual(sourceDeployCmd.status, 0, sourceDeployCmd.output.toString());
46
+ });
47
+ it('should enable status based capacity model as a prerequisite', async () => {
48
+ const omnniChannelPlugin = new OmniChannelSettings(global.bf);
49
+ await omnniChannelPlugin.run({ enableStatusBasedCapacityModel: true });
50
+ });
51
+ it('should configure status based capacity model for service channels', async () => {
52
+ await plugin.run(configureServiceChannels);
53
+ const res = await plugin.retrieve(configureServiceChannels);
54
+ assert.deepStrictEqual(res, configureServiceChannels);
55
+ });
56
+ });
57
+ //# sourceMappingURL=index.e2e-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/service-channels/index.e2e-spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,KAAK,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE;IAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,IAAI,MAAuB,CAAC;IAC5B,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,MAAM,wBAAwB,GAAG;QAC/B;YACE,2BAA2B,EAAE,UAAU;YACvC,QAAQ,EAAE;gBACR,aAAa,EAAE,aAAa;gBAC5B,WAAW,EAAE,WAAW;gBACxB,mBAAmB,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;gBACjD,qCAAqC,EAAE,IAAI;gBAC3C,uCAAuC,EAAE,IAAI;aAC9C;SACF;QACD;YACE,2BAA2B,EAAE,UAAU;YACvC,QAAQ,EAAE;gBACR,aAAa,EAAE,aAAa;gBAC5B,WAAW,EAAE,eAAe;gBAC5B,mBAAmB,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC;gBACjD,qCAAqC,EAAE,IAAI;gBAC3C,uCAAuC,EAAE,IAAI;aAC9C;SACF;KACF,CAAC;IAEF,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE;YAC5C,SAAS;YACT,QAAQ;YACR,OAAO;YACP,IAAI;YACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC;YACnC,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,kBAAkB,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9D,MAAM,kBAAkB,CAAC,GAAG,CAAC,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;QAC5D,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { BrowserforcePlugin } from '../../plugin.js';
2
+ import { Capacity } from './capacity/index.js';
3
+ export class ServiceChannels extends BrowserforcePlugin {
4
+ async retrieve(definition) {
5
+ const pluginCapacity = new Capacity(this.browserforce);
6
+ const serviceChannels = [];
7
+ for await (const serviceChannel of definition) {
8
+ serviceChannels.push({
9
+ serviceChannelDeveloperName: serviceChannel.serviceChannelDeveloperName,
10
+ capacity: await pluginCapacity.retrieve(serviceChannel)
11
+ });
12
+ }
13
+ return serviceChannels;
14
+ }
15
+ diff(state, definition) {
16
+ const pluginCapacity = new Capacity(this.browserforce);
17
+ const serviceChannels = [];
18
+ for (const serviceChannelDefinition of definition) {
19
+ const serviceChannelState = state.find((serviceChannelState) => serviceChannelState.serviceChannelDeveloperName === serviceChannelDefinition.serviceChannelDeveloperName);
20
+ const capacity = pluginCapacity.diff(serviceChannelState.capacity, serviceChannelDefinition.capacity);
21
+ if (capacity !== undefined) {
22
+ serviceChannels.push({
23
+ serviceChannelDeveloperName: serviceChannelDefinition.serviceChannelDeveloperName,
24
+ capacity
25
+ });
26
+ }
27
+ }
28
+ return serviceChannels.length ? serviceChannels : undefined;
29
+ }
30
+ async apply(plan) {
31
+ const pluginCapacity = new Capacity(this.browserforce);
32
+ for await (const serviceChannel of plan) {
33
+ await pluginCapacity.apply(serviceChannel);
34
+ }
35
+ }
36
+ }
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/service-channels/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAkB,MAAM,qBAAqB,CAAC;AAO/D,MAAM,OAAO,eAAgB,SAAQ,kBAAkB;IAC9C,KAAK,CAAC,QAAQ,CAAC,UAA6B;QACjD,MAAM,cAAc,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEvD,MAAM,eAAe,GAAqB,EAAE,CAAC;QAE7C,IAAI,KAAK,EAAE,MAAM,cAAc,IAAI,UAAU,EAAE,CAAC;YAC9C,eAAe,CAAC,IAAI,CAAC;gBACnB,2BAA2B,EAAE,cAAc,CAAC,2BAA2B;gBACvE,QAAQ,EAAE,MAAM,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAEM,IAAI,CAAC,KAAuB,EAAE,UAA4B;QAC/D,MAAM,cAAc,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEvD,MAAM,eAAe,GAAqB,EAAE,CAAC;QAE7C,KAAK,MAAM,wBAAwB,IAAI,UAAU,EAAE,CAAC;YAClD,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CACpC,CAAC,mBAAmB,EAAE,EAAE,CAAC,mBAAmB,CAAC,2BAA2B,KAAK,wBAAwB,CAAC,2BAA2B,CAClI,CAAC;YAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;YAEtG,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,eAAe,CAAC,IAAI,CAAC;oBACnB,2BAA2B,EAAE,wBAAwB,CAAC,2BAA2B;oBACjF,QAAQ;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,IAAsB;QACvC,MAAM,cAAc,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEvD,IAAI,KAAK,EAAE,MAAM,cAAc,IAAI,IAAI,EAAE,CAAC;YACxC,MAAM,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CACF"}
@@ -17,10 +17,10 @@ describe(Slack.name, function () {
17
17
  agreeToTermsAndConditions: false,
18
18
  enableSalesCloudForSlack: false
19
19
  };
20
- it('should accept terms and conditions', async () => {
20
+ it('should accept terms and conditions and enable Sales Cloud for Slack', async () => {
21
21
  await plugin.run(configEnable);
22
22
  });
23
- it('should already be accepted', async () => {
23
+ it('should already be accepted and enabled', async () => {
24
24
  const res = await plugin.run(configEnable);
25
25
  assert.deepStrictEqual(res, { message: 'no action necessary' });
26
26
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/slack/index.e2e-spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAe,KAAK,EAAE,MAAM,YAAY,CAAC;AAEhD,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB,IAAI,MAAa,CAAC;IAClB,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAW;QAC3B,yBAAyB,EAAE,IAAI;QAC/B,wBAAwB,EAAE,IAAI;KAC/B,CAAC;IACF,MAAM,wBAAwB,GAAW;QACvC,yBAAyB,EAAE,IAAI;QAC/B,wBAAwB,EAAE,KAAK;KAChC,CAAC;IACF,MAAM,cAAc,GAAW;QAC7B,yBAAyB,EAAE,KAAK;QAChC,wBAAwB,EAAE,KAAK;KAChC,CAAC;IACF,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACvD,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,IAAI,GAAG,CAAC;QACR,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,GAAG,CAAC,CAAC;QACV,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;YACjB,MAAM,GAAG,CAAC;QACZ,CAAC,EAAE,sBAAsB,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/slack/index.e2e-spec.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAe,KAAK,EAAE,MAAM,YAAY,CAAC;AAEhD,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB,IAAI,MAAa,CAAC;IAClB,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAW;QAC3B,yBAAyB,EAAE,IAAI;QAC/B,wBAAwB,EAAE,IAAI;KAC/B,CAAC;IACF,MAAM,wBAAwB,GAAW;QACvC,yBAAyB,EAAE,IAAI;QAC/B,wBAAwB,EAAE,KAAK;KAChC,CAAC;IACF,MAAM,cAAc,GAAW;QAC7B,yBAAyB,EAAE,KAAK;QAChC,wBAAwB,EAAE,KAAK;KAChC,CAAC;IACF,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACvD,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,IAAI,GAAG,CAAC;QACR,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,GAAG,CAAC,CAAC;QACV,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;YACjB,MAAM,GAAG,CAAC;QACZ,CAAC,EAAE,sBAAsB,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -3,8 +3,8 @@ const PATHS = {
3
3
  BASE: 'lightning/setup/SlackSetupAssistant/home'
4
4
  };
5
5
  const SELECTORS = {
6
- TOS_LIGHTNING_INPUT: 'pierce/setup_service-slack-setup-assistant-container setup_service-slack-agree-to-terms lightning-input',
7
- SALES_CLOUD_FOR_SLACK_TOGGLE: 'pierce/setup_service-slack-setup-assistant-container setup_service-stage setup_service-steps setup_service-step lightning-input:has(lightning-primitive-input-toggle input[name="SlkSetupStepSalesCloudForSlack"])',
6
+ TOS_LIGHTNING_INPUT: 'setup_service-slack-setup-assistant-container setup_service-slack-agree-to-terms lightning-input',
7
+ SALES_CLOUD_FOR_SLACK_TOGGLE: 'setup_service-slack-setup-assistant-container setup_service-stage setup_service-steps setup_service-step lightning-input:has(lightning-primitive-input-toggle input[name="SlkSetupStepSalesCloudForSlack"])',
8
8
  TOAST_MESSAGE: 'div[id^="toastDescription"]'
9
9
  };
10
10
  export class Slack extends BrowserforcePlugin {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/slack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,0CAA0C;CACjD,CAAC;AACF,MAAM,SAAS,GAAG;IAChB,mBAAmB,EACjB,yGAAyG;IAC3G,4BAA4B,EAC1B,oNAAoN;IACtN,aAAa,EAAE,6BAA6B;CAC7C,CAAC;AAOF,MAAM,OAAO,KAAM,SAAQ,kBAAkB;IACpC,KAAK,CAAC,QAAQ,CAAC,UAAmB;QACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,4BAA4B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACtF,MAAM,QAAQ,GAAG;YACf,yBAAyB,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC9G,wBAAwB,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,4BAA4B,EAAE,CAAC,EAAE,EAAE,EAAE,CACxF,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAC3B;SACF,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,IAAI,MAAM,CAAC,yBAAyB,KAAK,KAAK,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,IAAI,KAAK,CAAC,yBAAyB,KAAK,MAAM,CAAC,yBAAyB,EAAE,CAAC;YACzE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YAC9G,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,4BAA4B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACtF,IAAI,KAAK,CAAC,wBAAwB,KAAK,MAAM,CAAC,wBAAwB,EAAE,CAAC;YACvE,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,aAAa,CAAC;gBAC7C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,4BAA4B,CAAC;aACnD,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/slack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,0CAA0C;CACjD,CAAC;AACF,MAAM,SAAS,GAAG;IAChB,mBAAmB,EACjB,kGAAkG;IACpG,4BAA4B,EAC1B,6MAA6M;IAC/M,aAAa,EAAE,6BAA6B;CAC7C,CAAC;AAOF,MAAM,OAAO,KAAM,SAAQ,kBAAkB;IACpC,KAAK,CAAC,QAAQ,CAAC,UAAmB;QACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,4BAA4B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACtF,MAAM,QAAQ,GAAG;YACf,yBAAyB,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC9G,wBAAwB,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,4BAA4B,EAAE,CAAC,EAAE,EAAE,EAAE,CACxF,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAC3B;SACF,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,IAAI,MAAM,CAAC,yBAAyB,KAAK,KAAK,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,IAAI,KAAK,CAAC,yBAAyB,KAAK,MAAM,CAAC,yBAAyB,EAAE,CAAC;YACzE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YAC9G,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,4BAA4B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACtF,IAAI,KAAK,CAAC,wBAAwB,KAAK,MAAM,CAAC,wBAAwB,EAAE,CAAC;YACvE,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,aAAa,CAAC;gBAC7C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,4BAA4B,CAAC;aACnD,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
@@ -159,5 +159,5 @@
159
159
  ]
160
160
  }
161
161
  },
162
- "version": "4.4.3"
162
+ "version": "4.6.0"
163
163
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sfdx-browserforce-plugin",
3
- "version": "4.4.3",
3
+ "version": "4.6.0",
4
4
  "description": "sfdx plugin for browser automation",
5
5
  "author": "Matthias Rolke <mr.amtrack@gmail.com>",
6
6
  "type": "module",
@@ -9,13 +9,13 @@
9
9
  },
10
10
  "dependencies": {
11
11
  "@mdapi-issues/listmetadata-standardvalueset": "3.1.0",
12
- "@salesforce/sf-plugins-core": "12.0.11",
12
+ "@salesforce/sf-plugins-core": "12.1.0",
13
13
  "p-retry": "6.2.1",
14
- "puppeteer": "23.6.0"
14
+ "puppeteer": "23.10.1"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@salesforce/dev-scripts": "10.2.11",
18
- "oclif": "4.15.24"
18
+ "oclif": "4.17.7"
19
19
  },
20
20
  "files": [
21
21
  "/bin",