sfdx-browserforce-plugin 2.11.2 → 3.0.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 (182) hide show
  1. package/README.md +10 -10
  2. package/lib/browserforce-command.js +25 -19
  3. package/lib/browserforce-command.js.map +1 -1
  4. package/lib/browserforce.js +11 -28
  5. package/lib/browserforce.js.map +1 -1
  6. package/lib/commands/browserforce/apply.js +14 -14
  7. package/lib/commands/browserforce/apply.js.map +1 -1
  8. package/lib/commands/browserforce/plan.js +16 -15
  9. package/lib/commands/browserforce/plan.js.map +1 -1
  10. package/lib/config-parser.js +1 -1
  11. package/lib/config-parser.js.map +1 -1
  12. package/lib/jsforce-utils.js.map +1 -1
  13. package/lib/plugin.js +11 -30
  14. package/lib/plugin.js.map +1 -1
  15. package/lib/plugins/activity-settings/index.e2e-spec.js +41 -0
  16. package/lib/plugins/activity-settings/index.e2e-spec.js.map +1 -0
  17. package/lib/plugins/activity-settings/index.js +1 -4
  18. package/lib/plugins/activity-settings/index.js.map +1 -1
  19. package/lib/plugins/communities/index.e2e-spec.js +39 -0
  20. package/lib/plugins/communities/index.e2e-spec.js.map +1 -0
  21. package/lib/plugins/communities/index.js +2 -7
  22. package/lib/plugins/communities/index.js.map +1 -1
  23. package/lib/plugins/company-information/index.e2e-spec.js +42 -0
  24. package/lib/plugins/company-information/index.e2e-spec.js.map +1 -0
  25. package/lib/plugins/company-information/index.js +8 -12
  26. package/lib/plugins/company-information/index.js.map +1 -1
  27. package/lib/plugins/customer-portal/available-custom-objects/index.js +20 -48
  28. package/lib/plugins/customer-portal/available-custom-objects/index.js.map +1 -1
  29. package/lib/plugins/customer-portal/available-custom-objects/index.test.js +44 -0
  30. package/lib/plugins/customer-portal/available-custom-objects/index.test.js.map +1 -0
  31. package/lib/plugins/customer-portal/enabled/index.js +3 -11
  32. package/lib/plugins/customer-portal/enabled/index.js.map +1 -1
  33. package/lib/plugins/customer-portal/enabled/index.test.js +39 -0
  34. package/lib/plugins/customer-portal/enabled/index.test.js.map +1 -0
  35. package/lib/plugins/customer-portal/index.e2e-spec.js +222 -0
  36. package/lib/plugins/customer-portal/index.e2e-spec.js.map +1 -0
  37. package/lib/plugins/customer-portal/index.js +17 -13
  38. package/lib/plugins/customer-portal/index.js.map +1 -1
  39. package/lib/plugins/customer-portal/index.test.js +89 -0
  40. package/lib/plugins/customer-portal/index.test.js.map +1 -0
  41. package/lib/plugins/customer-portal/portals/index.js +17 -25
  42. package/lib/plugins/customer-portal/portals/index.js.map +1 -1
  43. package/lib/plugins/customer-portal/portals/index.test.js +145 -0
  44. package/lib/plugins/customer-portal/portals/index.test.js.map +1 -0
  45. package/lib/plugins/defer-sharing-calculation/index.e2e-spec.js +96 -0
  46. package/lib/plugins/defer-sharing-calculation/index.e2e-spec.js.map +1 -0
  47. package/lib/plugins/defer-sharing-calculation/index.js +2 -7
  48. package/lib/plugins/defer-sharing-calculation/index.js.map +1 -1
  49. package/lib/plugins/density-settings/index.e2e-spec.js +44 -0
  50. package/lib/plugins/density-settings/index.e2e-spec.js.map +1 -0
  51. package/lib/plugins/density-settings/index.js +8 -6
  52. package/lib/plugins/density-settings/index.js.map +1 -1
  53. package/lib/plugins/email-deliverability/index.e2e-spec.js +60 -0
  54. package/lib/plugins/email-deliverability/index.e2e-spec.js.map +1 -0
  55. package/lib/plugins/email-deliverability/index.js +7 -10
  56. package/lib/plugins/email-deliverability/index.js.map +1 -1
  57. package/lib/plugins/high-velocity-sales-settings/index.e2e-spec.js +34 -0
  58. package/lib/plugins/high-velocity-sales-settings/index.e2e-spec.js.map +1 -0
  59. package/lib/plugins/high-velocity-sales-settings/index.js +1 -2
  60. package/lib/plugins/high-velocity-sales-settings/index.js.map +1 -1
  61. package/lib/plugins/high-velocity-sales-settings/page.js +13 -4
  62. package/lib/plugins/high-velocity-sales-settings/page.js.map +1 -1
  63. package/lib/plugins/home-page-layouts/index.e2e-spec.js +52 -0
  64. package/lib/plugins/home-page-layouts/index.e2e-spec.js.map +1 -0
  65. package/lib/plugins/home-page-layouts/index.js +14 -32
  66. package/lib/plugins/home-page-layouts/index.js.map +1 -1
  67. package/lib/plugins/home-page-layouts/index.test.js +109 -0
  68. package/lib/plugins/home-page-layouts/index.test.js.map +1 -0
  69. package/lib/plugins/lightning-experience-settings/index.e2e-spec.js +44 -0
  70. package/lib/plugins/lightning-experience-settings/index.e2e-spec.js.map +1 -0
  71. package/lib/plugins/lightning-experience-settings/index.js +11 -9
  72. package/lib/plugins/lightning-experience-settings/index.js.map +1 -1
  73. package/lib/plugins/opportunity-splits/index.e2e-spec.js +70 -0
  74. package/lib/plugins/opportunity-splits/index.e2e-spec.js.map +1 -0
  75. package/lib/plugins/opportunity-splits/pages/layout-selection.js +1 -4
  76. package/lib/plugins/opportunity-splits/pages/layout-selection.js.map +1 -1
  77. package/lib/plugins/opportunity-splits/pages/overview.js +1 -4
  78. package/lib/plugins/opportunity-splits/pages/overview.js.map +1 -1
  79. package/lib/plugins/opportunity-splits/pages/setup.js +1 -4
  80. package/lib/plugins/opportunity-splits/pages/setup.js.map +1 -1
  81. package/lib/plugins/picklists/field-dependencies/index.js +15 -10
  82. package/lib/plugins/picklists/field-dependencies/index.js.map +1 -1
  83. package/lib/plugins/picklists/field-dependencies/index.test.js +69 -0
  84. package/lib/plugins/picklists/field-dependencies/index.test.js.map +1 -0
  85. package/lib/plugins/picklists/field-dependencies/pages.js +3 -12
  86. package/lib/plugins/picklists/field-dependencies/pages.js.map +1 -1
  87. package/lib/plugins/picklists/index.e2e-spec.js +118 -0
  88. package/lib/plugins/picklists/index.e2e-spec.js.map +1 -0
  89. package/lib/plugins/picklists/index.js +36 -27
  90. package/lib/plugins/picklists/index.js.map +1 -1
  91. package/lib/plugins/picklists/pages.js +7 -28
  92. package/lib/plugins/picklists/pages.js.map +1 -1
  93. package/lib/plugins/picklists/standard-value-set.js +1 -1
  94. package/lib/plugins/picklists/standard-value-set.js.map +1 -1
  95. package/lib/plugins/record-types/index.e2e-spec.js +99 -0
  96. package/lib/plugins/record-types/index.e2e-spec.js.map +1 -0
  97. package/lib/plugins/record-types/index.js +1 -2
  98. package/lib/plugins/record-types/index.js.map +1 -1
  99. package/lib/plugins/record-types/pages.js +4 -10
  100. package/lib/plugins/record-types/pages.js.map +1 -1
  101. package/lib/plugins/relate-contact-to-multiple-accounts/index.e2e-spec.js +34 -0
  102. package/lib/plugins/relate-contact-to-multiple-accounts/index.e2e-spec.js.map +1 -0
  103. package/lib/plugins/relate-contact-to-multiple-accounts/index.js +3 -12
  104. package/lib/plugins/relate-contact-to-multiple-accounts/index.js.map +1 -1
  105. package/lib/plugins/reports-and-dashboards/folder-sharing/index.e2e-spec.js +3 -0
  106. package/lib/plugins/reports-and-dashboards/folder-sharing/index.e2e-spec.js.map +1 -0
  107. package/lib/plugins/reports-and-dashboards/folder-sharing/index.js +1 -4
  108. package/lib/plugins/reports-and-dashboards/folder-sharing/index.js.map +1 -1
  109. package/lib/plugins/reports-and-dashboards/index.e2e-spec.js +3 -0
  110. package/lib/plugins/reports-and-dashboards/index.e2e-spec.js.map +1 -0
  111. package/lib/plugins/reports-and-dashboards/index.js +6 -6
  112. package/lib/plugins/reports-and-dashboards/index.js.map +1 -1
  113. package/lib/plugins/salesforce-to-salesforce/index.e2e-spec.js +39 -0
  114. package/lib/plugins/salesforce-to-salesforce/index.e2e-spec.js.map +1 -0
  115. package/lib/plugins/salesforce-to-salesforce/index.js +1 -4
  116. package/lib/plugins/salesforce-to-salesforce/index.js.map +1 -1
  117. package/lib/plugins/security/certificate-and-key-management/index.js +25 -36
  118. package/lib/plugins/security/certificate-and-key-management/index.js.map +1 -1
  119. package/lib/plugins/security/certificate-and-key-management/index.test.js +66 -0
  120. package/lib/plugins/security/certificate-and-key-management/index.test.js.map +1 -0
  121. package/lib/plugins/security/identity-provider/index.js +13 -24
  122. package/lib/plugins/security/identity-provider/index.js.map +1 -1
  123. package/lib/plugins/security/index.e2e-spec.js +86 -0
  124. package/lib/plugins/security/index.e2e-spec.js.map +1 -0
  125. package/lib/plugins/security/index.js +24 -15
  126. package/lib/plugins/security/index.js.map +1 -1
  127. package/lib/plugins/security/login-access-policies/index.e2e-spec.js +32 -0
  128. package/lib/plugins/security/login-access-policies/index.e2e-spec.js.map +1 -0
  129. package/lib/plugins/security/login-access-policies/index.js +2 -5
  130. package/lib/plugins/security/login-access-policies/index.js.map +1 -1
  131. package/lib/plugins/security/sharing/index.e2e-spec.js +34 -0
  132. package/lib/plugins/security/sharing/index.e2e-spec.js.map +1 -0
  133. package/lib/plugins/security/sharing/index.js +5 -11
  134. package/lib/plugins/security/sharing/index.js.map +1 -1
  135. package/lib/plugins/utils.js +38 -41
  136. package/lib/plugins/utils.js.map +1 -1
  137. package/oclif.manifest.json +104 -112
  138. package/package.json +12 -10
  139. package/lib/browserforce-command.d.ts +0 -15
  140. package/lib/browserforce.d.ts +0 -26
  141. package/lib/commands/browserforce/apply.d.ts +0 -6
  142. package/lib/commands/browserforce/plan.d.ts +0 -6
  143. package/lib/config-parser.d.ts +0 -16
  144. package/lib/index.d.ts +0 -1
  145. package/lib/jsforce-utils.d.ts +0 -5
  146. package/lib/plugin.d.ts +0 -11
  147. package/lib/plugins/activity-settings/index.d.ts +0 -9
  148. package/lib/plugins/communities/index.d.ts +0 -10
  149. package/lib/plugins/company-information/index.d.ts +0 -9
  150. package/lib/plugins/customer-portal/available-custom-objects/index.d.ts +0 -14
  151. package/lib/plugins/customer-portal/enabled/index.d.ts +0 -7
  152. package/lib/plugins/customer-portal/index.d.ts +0 -15
  153. package/lib/plugins/customer-portal/portals/index.d.ts +0 -25
  154. package/lib/plugins/defer-sharing-calculation/index.d.ts +0 -9
  155. package/lib/plugins/density-settings/index.d.ts +0 -17
  156. package/lib/plugins/email-deliverability/index.d.ts +0 -9
  157. package/lib/plugins/high-velocity-sales-settings/index.d.ts +0 -11
  158. package/lib/plugins/high-velocity-sales-settings/page.d.ts +0 -7
  159. package/lib/plugins/home-page-layouts/index.d.ts +0 -14
  160. package/lib/plugins/index.d.ts +0 -18
  161. package/lib/plugins/lightning-experience-settings/index.d.ts +0 -17
  162. package/lib/plugins/opportunity-splits/index.d.ts +0 -9
  163. package/lib/plugins/opportunity-splits/pages/layout-selection.d.ts +0 -8
  164. package/lib/plugins/opportunity-splits/pages/overview.d.ts +0 -10
  165. package/lib/plugins/opportunity-splits/pages/setup.d.ts +0 -8
  166. package/lib/plugins/picklists/field-dependencies/index.d.ts +0 -11
  167. package/lib/plugins/picklists/field-dependencies/pages.d.ts +0 -14
  168. package/lib/plugins/picklists/index.d.ts +0 -23
  169. package/lib/plugins/picklists/pages.d.ts +0 -40
  170. package/lib/plugins/picklists/standard-value-set.d.ts +0 -1
  171. package/lib/plugins/record-types/index.d.ts +0 -13
  172. package/lib/plugins/record-types/pages.d.ts +0 -15
  173. package/lib/plugins/relate-contact-to-multiple-accounts/index.d.ts +0 -9
  174. package/lib/plugins/reports-and-dashboards/folder-sharing/index.d.ts +0 -8
  175. package/lib/plugins/reports-and-dashboards/index.d.ts +0 -11
  176. package/lib/plugins/salesforce-to-salesforce/index.d.ts +0 -9
  177. package/lib/plugins/security/certificate-and-key-management/index.d.ts +0 -23
  178. package/lib/plugins/security/identity-provider/index.d.ts +0 -10
  179. package/lib/plugins/security/index.d.ts +0 -17
  180. package/lib/plugins/security/login-access-policies/index.d.ts +0 -8
  181. package/lib/plugins/security/sharing/index.d.ts +0 -8
  182. package/lib/plugins/utils.d.ts +0 -4
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const assert_1 = __importDefault(require("assert"));
7
+ const _1 = require(".");
8
+ describe(_1.HomePageLayouts.name, function () {
9
+ let plugin;
10
+ before(() => {
11
+ plugin = new _1.HomePageLayouts(global.bf);
12
+ });
13
+ const configPageDefault = {
14
+ homePageLayoutAssignments: [
15
+ {
16
+ profile: 'Standard User',
17
+ layout: ''
18
+ },
19
+ {
20
+ profile: 'System Administrator',
21
+ layout: ''
22
+ }
23
+ ]
24
+ };
25
+ const configOrgDefault = {
26
+ homePageLayoutAssignments: [
27
+ {
28
+ profile: 'Standard User',
29
+ layout: 'DE Default'
30
+ },
31
+ {
32
+ profile: 'System Administrator',
33
+ layout: 'DE Default'
34
+ }
35
+ ]
36
+ };
37
+ it('should assign some layouts', async () => {
38
+ await plugin.run(configPageDefault);
39
+ });
40
+ it('should be assigned', async () => {
41
+ const res = await plugin.run(configPageDefault);
42
+ assert_1.default.deepStrictEqual(res, { message: 'no action necessary' });
43
+ });
44
+ it('should unassign some layouts', async () => {
45
+ await plugin.apply(configOrgDefault);
46
+ });
47
+ it('should be unassigned', async () => {
48
+ const res = await plugin.run(configOrgDefault);
49
+ assert_1.default.deepStrictEqual(res, { message: 'no action necessary' });
50
+ });
51
+ });
52
+ //# sourceMappingURL=index.e2e-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/home-page-layouts/index.e2e-spec.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,wBAAoC;AAEpC,QAAQ,CAAC,kBAAe,CAAC,IAAI,EAAE;IAC7B,IAAI,MAAM,CAAC;IACX,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,kBAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG;QACxB,yBAAyB,EAAE;YACzB;gBACE,OAAO,EAAE,eAAe;gBACxB,MAAM,EAAE,EAAE;aACX;YACD;gBACE,OAAO,EAAE,sBAAsB;gBAC/B,MAAM,EAAE,EAAE;aACX;SACF;KACF,CAAC;IACF,MAAM,gBAAgB,GAAG;QACvB,yBAAyB,EAAE;YACzB;gBACE,OAAO,EAAE,eAAe;gBACxB,MAAM,EAAE,YAAY;aACrB;YACD;gBACE,OAAO,EAAE,sBAAsB;gBAC/B,MAAM,EAAE,YAAY;aACrB;SACF;KACF,CAAC;IACF,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAChD,gBAAM,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC/C,gBAAM,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,30 +1,6 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.HomePageLayouts = void 0;
27
- const jsonMergePatch = __importStar(require("json-merge-patch"));
28
4
  const plugin_1 = require("../../plugin");
29
5
  const PATHS = {
30
6
  BASE: 'setup/ui/assignhomelayoutedit.jsp'
@@ -34,14 +10,14 @@ const SELECTORS = {
34
10
  SAVE_BUTTON: 'input[name="save"]'
35
11
  };
36
12
  class HomePageLayouts extends plugin_1.BrowserforcePlugin {
37
- async retrieve(definition) {
13
+ async retrieve() {
38
14
  const page = await this.browserforce.openPage(PATHS.BASE);
39
15
  await page.waitForSelector(SELECTORS.BASE);
40
16
  const profiles = await page.$$eval('table.detailList tbody tr td label', (labels) => {
41
17
  return labels.map((label) => {
42
18
  for (let i = 0; label.childNodes.length; i++) {
43
19
  if (label.childNodes[i].nodeType === label.TEXT_NODE) {
44
- return label.childNodes[i].nodeValue;
20
+ return label.childNodes[i].nodeValue ?? '';
45
21
  }
46
22
  }
47
23
  throw new Error('retrieving HomePageLayouts failed');
@@ -65,9 +41,12 @@ class HomePageLayouts extends plugin_1.BrowserforcePlugin {
65
41
  };
66
42
  }
67
43
  diff(source, target) {
44
+ target.homePageLayoutAssignments.sort(compareAssignment);
68
45
  const profileNames = target.homePageLayoutAssignments.map((assignment) => assignment.profile);
69
- source.homePageLayoutAssignments = source.homePageLayoutAssignments.filter((assignment) => profileNames.includes(assignment.profile));
70
- return jsonMergePatch.generate(source, target);
46
+ source.homePageLayoutAssignments = source.homePageLayoutAssignments
47
+ .filter((assignment) => profileNames.includes(assignment.profile))
48
+ .sort(compareAssignment);
49
+ return super.diff(source, target);
71
50
  }
72
51
  async apply(config) {
73
52
  const profilesList = config.homePageLayoutAssignments
@@ -98,16 +77,19 @@ class HomePageLayouts extends plugin_1.BrowserforcePlugin {
98
77
  if (homePageLayoutName === '') {
99
78
  homePageLayout = { Id: 'default', Name: 'default' };
100
79
  }
80
+ if (homePageLayout === undefined) {
81
+ throw new Error(`Could not find home page layout "${homePageLayoutName}" in list of home page layouts: ${homePageLayouts.records.map((l) => l.Name)}`);
82
+ }
101
83
  const profileSelector = `select[id='${profile.Id.substring(0, 15)}']`;
102
84
  await page.waitForSelector(profileSelector);
103
85
  await page.select(profileSelector, homePageLayout.Id.substring(0, 15));
104
86
  }
105
- await Promise.all([
106
- page.waitForNavigation(),
107
- page.click(SELECTORS.SAVE_BUTTON)
108
- ]);
87
+ await Promise.all([page.waitForNavigation(), page.click(SELECTORS.SAVE_BUTTON)]);
109
88
  await page.close();
110
89
  }
111
90
  }
112
91
  exports.HomePageLayouts = HomePageLayouts;
92
+ function compareAssignment(a, b) {
93
+ return `${a.profile}:${a.layout}`.localeCompare(`${b.profile}:${b.layout}`, 'en', { numeric: true });
94
+ }
113
95
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/home-page-layouts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iEAAmD;AACnD,yCAAkD;AAElD,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,mCAAmC;CAC1C,CAAC;AACF,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,oBAAoB;CAClC,CAAC;AAmBF,MAAa,eAAgB,SAAQ,2BAAkB;IAC9C,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,IAAI,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAChC,oCAAoC,EACpC,CAAC,MAA0B,EAAE,EAAE;YAC7B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC5C,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,SAAS,EAAE;wBACpD,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;qBACtC;iBACF;gBACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAC/B,qCAAqC,EACrC,CAAC,OAA4B,EAAE,EAAE;YAC/B,OAAO,OAAO;iBACX,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;iBAC/C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,CAAC,CACF,CAAC;QACF,MAAM,yBAAyB,GAAG,EAAE,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,yBAAyB,CAAC,IAAI,CAAC;gBAC7B,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACpB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;aACnB,CAAC,CAAC;SACJ;QACD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO;YACL,yBAAyB;SAC1B,CAAC;IACJ,CAAC;IAEM,IAAI,CAAC,MAAc,EAAE,MAAc;QACxC,MAAM,YAAY,GAAG,MAAM,CAAC,yBAAyB,CAAC,GAAG,CACvD,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CACnC,CAAC;QACF,MAAM,CAAC,yBAAyB,GAAG,MAAM,CAAC,yBAAyB,CAAC,MAAM,CACxE,CAAC,UAAU,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAC1D,CAAC;QACF,OAAO,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,MAAc;QAC/B,MAAM,YAAY,GAAG,MAAM,CAAC,yBAAyB;aAClD,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAClB,OAAO,IAAI,UAAU,CAAC,OAAO,GAAG,CAAC;QACnC,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,WAAW,GAAG,MAAM,CAAC,yBAAyB;aACjD,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAClB,OAAO,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAClC,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG;aAC5B,aAAa,EAAE;aACf,OAAO,CAAC,KAAK,CACZ,+CAA+C,YAAY,GAAG,CAC/D,CAAC;QACJ,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,GAAG;aACnC,aAAa,EAAE;aACf,OAAO,CAAC,KAAK,CACZ,sDAAsD,WAAW,GAAG,CACrE,CAAC;QAEJ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3C,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,yBAAyB,EAAE;YACzD,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC;YAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,OAAO,CACrC,CAAC;YACF,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,2BAA2B,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC;aACnE;YACD,IAAI,cAAc,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CACrC,CAAC;YACF,IAAI,kBAAkB,KAAK,EAAE,EAAE;gBAC7B,cAAc,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;aACrD;YACD,MAAM,eAAe,GAAG,cAAc,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;YACtE,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;YAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACxE;QACD,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC;SAClC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AAhGD,0CAgGC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/home-page-layouts/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const assert_1 = __importDefault(require("assert"));
7
+ const _1 = require(".");
8
+ const tests = [
9
+ {
10
+ description: 'should return no change',
11
+ source: {
12
+ homePageLayoutAssignments: [
13
+ {
14
+ profile: 'Standard User',
15
+ layout: ''
16
+ },
17
+ {
18
+ profile: 'System Administrator',
19
+ layout: ''
20
+ }
21
+ ]
22
+ },
23
+ target: {
24
+ homePageLayoutAssignments: [
25
+ {
26
+ profile: 'Standard User',
27
+ layout: ''
28
+ },
29
+ {
30
+ profile: 'System Administrator',
31
+ layout: ''
32
+ }
33
+ ]
34
+ },
35
+ expected: undefined
36
+ },
37
+ {
38
+ description: 'should filter irrelevant assignments',
39
+ source: {
40
+ homePageLayoutAssignments: [
41
+ {
42
+ profile: 'Foo User',
43
+ layout: ''
44
+ },
45
+ {
46
+ profile: 'Standard User',
47
+ layout: ''
48
+ },
49
+ {
50
+ profile: 'System Administrator',
51
+ layout: ''
52
+ }
53
+ ]
54
+ },
55
+ target: {
56
+ homePageLayoutAssignments: [
57
+ {
58
+ profile: 'Standard User',
59
+ layout: ''
60
+ },
61
+ {
62
+ profile: 'System Administrator',
63
+ layout: ''
64
+ }
65
+ ]
66
+ },
67
+ expected: undefined
68
+ },
69
+ {
70
+ description: 'should match when unsorted',
71
+ source: {
72
+ homePageLayoutAssignments: [
73
+ {
74
+ profile: 'System Administrator',
75
+ layout: ''
76
+ },
77
+ {
78
+ profile: 'Standard User',
79
+ layout: ''
80
+ }
81
+ ]
82
+ },
83
+ target: {
84
+ homePageLayoutAssignments: [
85
+ {
86
+ profile: 'Standard User',
87
+ layout: ''
88
+ },
89
+ {
90
+ profile: 'System Administrator',
91
+ layout: ''
92
+ }
93
+ ]
94
+ },
95
+ expected: undefined
96
+ }
97
+ ];
98
+ describe('HomePageLayouts', () => {
99
+ describe('diff()', () => {
100
+ const p = new _1.HomePageLayouts(global.bf);
101
+ for (const t of tests) {
102
+ it(t.description, () => {
103
+ const actual = p.diff(t.source, t.target);
104
+ assert_1.default.deepStrictEqual(actual, t.expected);
105
+ });
106
+ }
107
+ });
108
+ });
109
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/plugins/home-page-layouts/index.test.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,wBAAoC;AAEpC,MAAM,KAAK,GAAG;IACZ;QACE,WAAW,EAAE,yBAAyB;QACtC,MAAM,EAAE;YACN,yBAAyB,EAAE;gBACzB;oBACE,OAAO,EAAE,eAAe;oBACxB,MAAM,EAAE,EAAE;iBACX;gBACD;oBACE,OAAO,EAAE,sBAAsB;oBAC/B,MAAM,EAAE,EAAE;iBACX;aACF;SACF;QACD,MAAM,EAAE;YACN,yBAAyB,EAAE;gBACzB;oBACE,OAAO,EAAE,eAAe;oBACxB,MAAM,EAAE,EAAE;iBACX;gBACD;oBACE,OAAO,EAAE,sBAAsB;oBAC/B,MAAM,EAAE,EAAE;iBACX;aACF;SACF;QACD,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,WAAW,EAAE,sCAAsC;QACnD,MAAM,EAAE;YACN,yBAAyB,EAAE;gBACzB;oBACE,OAAO,EAAE,UAAU;oBACnB,MAAM,EAAE,EAAE;iBACX;gBACD;oBACE,OAAO,EAAE,eAAe;oBACxB,MAAM,EAAE,EAAE;iBACX;gBACD;oBACE,OAAO,EAAE,sBAAsB;oBAC/B,MAAM,EAAE,EAAE;iBACX;aACF;SACF;QACD,MAAM,EAAE;YACN,yBAAyB,EAAE;gBACzB;oBACE,OAAO,EAAE,eAAe;oBACxB,MAAM,EAAE,EAAE;iBACX;gBACD;oBACE,OAAO,EAAE,sBAAsB;oBAC/B,MAAM,EAAE,EAAE;iBACX;aACF;SACF;QACD,QAAQ,EAAE,SAAS;KACpB;IACD;QACE,WAAW,EAAE,4BAA4B;QACzC,MAAM,EAAE;YACN,yBAAyB,EAAE;gBACzB;oBACE,OAAO,EAAE,sBAAsB;oBAC/B,MAAM,EAAE,EAAE;iBACX;gBACD;oBACE,OAAO,EAAE,eAAe;oBACxB,MAAM,EAAE,EAAE;iBACX;aACF;SACF;QACD,MAAM,EAAE;YACN,yBAAyB,EAAE;gBACzB;oBACE,OAAO,EAAE,eAAe;oBACxB,MAAM,EAAE,EAAE;iBACX;gBACD;oBACE,OAAO,EAAE,sBAAsB;oBAC/B,MAAM,EAAE,EAAE;iBACX;aACF;SACF;QACD,QAAQ,EAAE,SAAS;KACpB;CACF,CAAC;AAEF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,MAAM,CAAC,GAAG,IAAI,kBAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;YACrB,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE;gBACrB,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC1C,gBAAM,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const assert_1 = __importDefault(require("assert"));
7
+ const _1 = require(".");
8
+ describe(_1.LightningExperienceSettings.name, function () {
9
+ describe('activeThemeName', () => {
10
+ let plugin;
11
+ before(() => {
12
+ plugin = new _1.LightningExperienceSettings(global.bf);
13
+ });
14
+ const configLightningLite = { activeThemeName: 'LightningLite' };
15
+ const configLightning = { activeThemeName: 'Lightning' };
16
+ it('should activate LightningLite theme', async () => {
17
+ await plugin.run(configLightningLite);
18
+ });
19
+ it('LightningLite theme should already be activated', async () => {
20
+ const state = await plugin.retrieve();
21
+ assert_1.default.deepStrictEqual(state, configLightningLite);
22
+ });
23
+ it('should activate Lightning theme', async () => {
24
+ await plugin.apply(configLightning);
25
+ });
26
+ it('Lightning theme should already be activated', async () => {
27
+ const state = await plugin.retrieve();
28
+ assert_1.default.deepStrictEqual(state, configLightning);
29
+ });
30
+ it('should throw for invalid theme', async () => {
31
+ let err;
32
+ try {
33
+ await plugin.run({ activeThemeName: 'Foo' });
34
+ }
35
+ catch (e) {
36
+ err = e;
37
+ }
38
+ assert_1.default.throws(() => {
39
+ throw err;
40
+ }, /Could not find theme/);
41
+ });
42
+ });
43
+ });
44
+ //# sourceMappingURL=index.e2e-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/lightning-experience-settings/index.e2e-spec.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,wBAAgD;AAEhD,QAAQ,CAAC,8BAA2B,CAAC,IAAI,EAAE;IACzC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,IAAI,MAAM,CAAC;QACX,MAAM,CAAC,GAAG,EAAE;YACV,MAAM,GAAG,IAAI,8BAA2B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,MAAM,mBAAmB,GAAG,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC;QACjE,MAAM,eAAe,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;QACzD,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,gBAAM,CAAC,eAAe,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,gBAAM,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,IAAI,GAAG,CAAC;YACR,IAAI;gBACF,MAAM,MAAM,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;aAC9C;YAAC,OAAO,CAAC,EAAE;gBACV,GAAG,GAAG,CAAC,CAAC;aACT;YACD,gBAAM,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"}
@@ -14,7 +14,7 @@ class LightningExperienceSettings extends plugin_1.BrowserforcePlugin {
14
14
  async retrieve() {
15
15
  const page = await this.browserforce.openPage(PATHS.BASE);
16
16
  const themes = await this.getThemeData(page);
17
- const activeTheme = themes.find(theme => theme.isActive);
17
+ const activeTheme = themes.find((theme) => theme.isActive);
18
18
  const response = {
19
19
  activeThemeName: activeTheme.developerName
20
20
  };
@@ -30,8 +30,8 @@ class LightningExperienceSettings extends plugin_1.BrowserforcePlugin {
30
30
  await page.waitForSelector(THEME_ROW_SELECTOR);
31
31
  const rowElementHandles = await page.$$(THEME_ROW_SELECTOR);
32
32
  await page.waitForSelector(SELECTORS.DEVELOPER_NAMES);
33
- const developerNames = await page.$$eval(SELECTORS.DEVELOPER_NAMES, cells => cells.map((cell) => cell.innerText));
34
- const states = await page.$$eval(SELECTORS.STATES, cells => cells.map(cell => cell.shadowRoot?.querySelector('lightning-primitive-icon') !== null));
33
+ const developerNames = await page.$$eval(SELECTORS.DEVELOPER_NAMES, (cells) => cells.map((cell) => cell.innerText));
34
+ const states = await page.$$eval(SELECTORS.STATES, (cells) => cells.map((cell) => cell.shadowRoot?.querySelector('lightning-primitive-icon') !== null));
35
35
  return developerNames.map((developerName, i) => {
36
36
  return {
37
37
  developerName,
@@ -42,21 +42,23 @@ class LightningExperienceSettings extends plugin_1.BrowserforcePlugin {
42
42
  }
43
43
  async setActiveTheme(page, themeDeveloperName) {
44
44
  const data = await this.getThemeData(page);
45
- const theme = data.find(theme => theme.developerName === themeDeveloperName);
45
+ const theme = data.find((theme) => theme.developerName === themeDeveloperName);
46
+ if (!theme) {
47
+ throw new Error(`Could not find theme "${themeDeveloperName}" in list of themes: ${data.map((d) => d.developerName)}`);
48
+ }
46
49
  const newActiveThemeRowElementHandle = theme.rowElementHandle;
47
50
  await page.waitForSelector(`${THEME_ROW_SELECTOR} lightning-button-menu`, {
48
51
  visible: true
49
52
  });
50
53
  const menuButton = await newActiveThemeRowElementHandle.$('pierce/td lightning-primitive-cell-factory lightning-primitive-cell-actions lightning-button-menu');
51
54
  await menuButton.click();
52
- await page.waitForSelector(`${THEME_ROW_SELECTOR} lightning-button-menu slot lightning-menu-item`, { visible: true });
55
+ await page.waitForSelector(`${THEME_ROW_SELECTOR} lightning-button-menu slot lightning-menu-item`, {
56
+ visible: true
57
+ });
53
58
  const menuItems = await menuButton.$$('pierce/slot lightning-menu-item');
54
59
  // second last item: [show, activate, preview]
55
60
  const activateMenuItem = menuItems[menuItems.length - 2];
56
- await Promise.all([
57
- page.waitForNavigation(),
58
- activateMenuItem.click()
59
- ]);
61
+ await Promise.all([page.waitForNavigation(), activateMenuItem.click()]);
60
62
  }
61
63
  }
62
64
  exports.LightningExperienceSettings = LightningExperienceSettings;
@@ -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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"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const assert_1 = __importDefault(require("assert"));
30
+ const child = __importStar(require("child_process"));
31
+ const path = __importStar(require("path"));
32
+ const _1 = require(".");
33
+ describe(_1.OpportunitySplits.name, function () {
34
+ let plugin;
35
+ before(() => {
36
+ plugin = new _1.OpportunitySplits(global.bf);
37
+ });
38
+ const configEnabled = {
39
+ enabled: true
40
+ };
41
+ const configDisabled = {
42
+ enabled: false
43
+ };
44
+ it('should enable Opportunity Teams as prerequisite', () => {
45
+ const sourceDeployCmd = child.spawnSync('sf', [
46
+ 'project',
47
+ 'deploy',
48
+ 'start',
49
+ '-d',
50
+ path.join(__dirname, 'sfdx-source'),
51
+ '--json'
52
+ ]);
53
+ assert_1.default.deepStrictEqual(sourceDeployCmd.status, 0, sourceDeployCmd.output.toString());
54
+ });
55
+ it('should enable', async () => {
56
+ await plugin.run(configEnabled);
57
+ });
58
+ it('should be enabled', async () => {
59
+ const state = await plugin.retrieve();
60
+ assert_1.default.deepStrictEqual(state, configEnabled);
61
+ });
62
+ it('should disable', async () => {
63
+ await plugin.apply(configDisabled);
64
+ });
65
+ it('should be disabled', async () => {
66
+ const state = await plugin.retrieve();
67
+ assert_1.default.deepStrictEqual(state, configDisabled);
68
+ });
69
+ });
70
+ //# sourceMappingURL=index.e2e-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.e2e-spec.js","sourceRoot":"","sources":["../../../src/plugins/opportunity-splits/index.e2e-spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA4B;AAC5B,qDAAuC;AACvC,2CAA6B;AAC7B,wBAAsC;AAEtC,QAAQ,CAAC,oBAAiB,CAAC,IAAI,EAAE;IAC/B,IAAI,MAAM,CAAC;IACX,MAAM,CAAC,GAAG,EAAE;QACV,MAAM,GAAG,IAAI,oBAAiB,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,gBAAM,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,gBAAM,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,gBAAM,CAAC,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -9,10 +9,7 @@ class LayoutSelectionPage {
9
9
  }
10
10
  async choose() {
11
11
  await this.page.waitForSelector(SAVE_BUTTON);
12
- await Promise.all([
13
- this.page.waitForNavigation(),
14
- this.page.click(SAVE_BUTTON)
15
- ]);
12
+ await Promise.all([this.page.waitForNavigation(), this.page.click(SAVE_BUTTON)]);
16
13
  return new overview_1.OverviewPage(this.page);
17
14
  }
18
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"layout-selection.js","sourceRoot":"","sources":["../../../../src/plugins/opportunity-splits/pages/layout-selection.ts"],"names":[],"mappings":";;;AACA,yCAA0C;AAE1C,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAEzC,MAAa,mBAAmB;IAK9B,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;SAC7B,CAAC,CAAC;QACH,OAAO,IAAI,uBAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;;AAhBH,kDAiBC;AAhBQ,wBAAI,GACT,qEAAqE,CAAC"}
1
+ {"version":3,"file":"layout-selection.js","sourceRoot":"","sources":["../../../../src/plugins/opportunity-splits/pages/layout-selection.ts"],"names":[],"mappings":";;;AACA,yCAA0C;AAE1C,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAEzC,MAAa,mBAAmB;IAI9B,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACjF,OAAO,IAAI,uBAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;;AAZH,kDAaC;AAZQ,wBAAI,GAAG,qEAAqE,CAAC"}
@@ -24,10 +24,7 @@ class OverviewPage {
24
24
  await this.page.waitForSelector(DISABLE_CONFIRM_CHECKBOX);
25
25
  await this.page.click(DISABLE_CONFIRM_CHECKBOX);
26
26
  await this.page.waitForSelector(DISABLE_CONFIRM_BUTTON);
27
- await Promise.all([
28
- this.page.waitForNavigation(),
29
- this.page.click(DISABLE_CONFIRM_BUTTON)
30
- ]);
27
+ await Promise.all([this.page.waitForNavigation(), this.page.click(DISABLE_CONFIRM_BUTTON)]);
31
28
  return this;
32
29
  }
33
30
  async waitUntilDisabled() {
@@ -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,GAC1B,uDAAuD,CAAC;AAE1D,MAAa,YAAY;IAKvB,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;YAChB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC;SACxC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;;AAlCH,oCAmCC;AAlCQ,iBAAI,GACT,uEAAuE,CAAC"}
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,MAAa,YAAY;IAIvB,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;;AA9BH,oCA+BC;AA9BQ,iBAAI,GAAG,uEAAuE,CAAC"}
@@ -12,10 +12,7 @@ class SetupPage {
12
12
  await this.page.waitForSelector(SAVE_BUTTON);
13
13
  await this.page.click(SAVE_BUTTON);
14
14
  await this.page.waitForSelector(MODAL_CONFIRM_BUTTON);
15
- await Promise.all([
16
- this.page.waitForNavigation(),
17
- this.page.click(MODAL_CONFIRM_BUTTON)
18
- ]);
15
+ await Promise.all([this.page.waitForNavigation(), this.page.click(MODAL_CONFIRM_BUTTON)]);
19
16
  return new layout_selection_1.LayoutSelectionPage(this.page);
20
17
  }
21
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../../src/plugins/opportunity-splits/pages/setup.ts"],"names":[],"mappings":";;;AACA,yDAAyD;AAEzD,MAAM,WAAW,GAAG,+BAA+B,CAAC;AACpD,MAAM,oBAAoB,GACxB,mEAAmE,CAAC;AAEtE,MAAa,SAAS;IAKpB,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;QACtD,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;SACtC,CAAC,CAAC;QACH,OAAO,IAAI,sCAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;;AAlBH,8BAmBC;AAlBQ,cAAI,GACT,mEAAmE,CAAC"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../../src/plugins/opportunity-splits/pages/setup.ts"],"names":[],"mappings":";;;AACA,yDAAyD;AAEzD,MAAM,WAAW,GAAG,+BAA+B,CAAC;AACpD,MAAM,oBAAoB,GAAG,mEAAmE,CAAC;AAEjG,MAAa,SAAS;IAIpB,YAAY,IAAU;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;QACtD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QAC1F,OAAO,IAAI,sCAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;;AAdH,8BAeC;AAdQ,cAAI,GAAG,mEAAmE,CAAC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FieldDependencies = void 0;
4
4
  const browserforce_1 = require("../../../browserforce");
5
+ const jsforce_utils_1 = require("../../../jsforce-utils");
5
6
  const plugin_1 = require("../../../plugin");
6
7
  const pages_1 = require("./pages");
7
8
  class FieldDependencies extends plugin_1.BrowserforcePlugin {
@@ -9,13 +10,12 @@ class FieldDependencies extends plugin_1.BrowserforcePlugin {
9
10
  const conn = this.org.getConnection();
10
11
  const dependentFieldNames = definition.map((f) => `${f.object}.${f.dependentField}`);
11
12
  const result = await conn.metadata.read('CustomField', dependentFieldNames);
12
- const metadata = Array.isArray(result) ? result : [result];
13
+ const metadata = (0, jsforce_utils_1.ensureArray)(result);
13
14
  const state = definition.map((f) => {
14
15
  const fieldState = { ...f };
15
16
  const field = metadata.find((m) => m.fullName === `${f.object}.${f.dependentField}`);
16
17
  // for diffing: to unset a field dependency, set it to null
17
- fieldState.controllingField =
18
- field?.['valueSet']?.controllingField || null;
18
+ fieldState.controllingField = field?.valueSet?.controllingField ?? null;
19
19
  return fieldState;
20
20
  });
21
21
  return state;
@@ -28,20 +28,25 @@ class FieldDependencies extends plugin_1.BrowserforcePlugin {
28
28
  },
29
29
  { type: 'CustomField' }
30
30
  ]);
31
- const fileProperties = Array.isArray(listMetadataResult)
32
- ? listMetadataResult
33
- : [listMetadataResult];
31
+ const fileProperties = (0, jsforce_utils_1.ensureArray)(listMetadataResult);
34
32
  for (const dep of plan) {
35
33
  await (0, browserforce_1.retry)(async () => {
36
34
  const customObject = fileProperties.find((x) => x.type === 'CustomObject' && x.fullName === dep.object);
37
- const dependentField = fileProperties.find((x) => x.type === 'CustomField' &&
38
- x.fullName === `${dep.object}.${dep.dependentField}`);
35
+ if (!customObject) {
36
+ throw new Error(`Could not find CustomObject "${dep.object}"`);
37
+ }
38
+ const dependentField = fileProperties.find((x) => x.type === 'CustomField' && x.fullName === `${dep.object}.${dep.dependentField}`);
39
+ if (!dependentField) {
40
+ throw new Error(`Could not find dependent field "${dep.object}.${dep.dependentField}"`);
41
+ }
39
42
  // always try deleting an existing dependency first
40
43
  const fieldDependenciesPage = new pages_1.FieldDependencyPage(await this.browserforce.openPage(pages_1.FieldDependencyPage.getUrl(customObject.id)));
41
44
  await fieldDependenciesPage.clickDeleteDependencyActionForField(dependentField.id);
42
45
  if (dep.controllingField) {
43
- const controllingField = fileProperties.find((x) => x.type === 'CustomField' &&
44
- x.fullName === `${dep.object}.${dep.controllingField}`);
46
+ const controllingField = fileProperties.find((x) => x.type === 'CustomField' && x.fullName === `${dep.object}.${dep.controllingField}`);
47
+ if (!controllingField) {
48
+ throw new Error(`Could not find controlling field "${dep.object}.${dep.controllingField}"`);
49
+ }
45
50
  const newFieldDependencyPage = new pages_1.NewFieldDependencyPage(await this.browserforce.openPage(pages_1.NewFieldDependencyPage.getUrl(customObject.id, dependentField.id, controllingField.id)));
46
51
  await newFieldDependencyPage.save();
47
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/picklists/field-dependencies/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/picklists/field-dependencies/index.ts"],"names":[],"mappings":"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"}