@pega/custom-dx-components 0.242.35 → 0.242.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/src/cli.js +6 -0
- package/src/constants.js +1 -0
- package/src/tasks/build-lib/helper.js +0 -1
- package/src/tasks/create-lib/index.js +5 -3
- package/src/tasks/create-version/index.js +3 -1
- package/src/tasks/delete-lib/index.js +4 -1
- package/src/tasks/delete-version/index.js +3 -1
- package/src/tasks/export-archive/index.js +58 -41
- package/src/tasks/import-archive/index.js +5 -1
- package/src/tasks/import-comp/helper.js +2 -4
- package/src/tasks/import-comp/index.js +1 -2
- package/src/tasks/index.js +1 -0
- package/src/tasks/init/template/package.json.mustache +6 -5
- package/src/tasks/list/helper.js +8 -0
- package/src/tasks/list-lib/index.js +27 -11
- package/src/tasks/list-pub/index.js +18 -14
- package/src/tasks/move/helper.js +6 -3
- package/src/tasks/move/index.js +86 -17
- package/src/tasks/publish/helper.js +8 -5
- package/src/tasks/publish/index.js +4 -4
- package/src/tasks/publish-all/helper.js +16 -10
- package/src/tasks/quarantine/index.js +84 -0
- package/src/tasks/rename-lib/index.js +0 -1
- package/src/tasks/revert-webpack/index.js +0 -2
- package/src/tasks/set-perm/index.js +18 -2
- package/src/tasks/store/index.js +4 -1
- package/src/tasks/switch-lib/index.js +3 -1
- package/src/tasks/switch-version/index.js +3 -1
- package/src/util.js +50 -6
- package/tests/functional/localCreateAllListDeleteAll.test.js +56 -10
- package/tests/functional/localCreateBuildAllDeleteAll.test.js +56 -48
- package/tests/functional/localCreateBuildDelete.test.js +57 -10
- package/tests/functional/localCreateListDelete.test.js +55 -102
- package/tests/functional/localCreatePublishAllDeleteAll.test.js +68 -61
- package/tests/functional/localCreatePublishDelete.test.js +62 -21
- package/tests/functional/localCreateRenameDelete.test.js +55 -140
- package/tests/functional/localLibCreateLibAlreadyDeleteLib.test.js +118 -0
- package/tests/functional/localLibCreateLibBuildLibDeleteLib.test.js +241 -0
- package/tests/functional/localLibCreateLibBuildLibListPubDeleteLib.test.js +246 -0
- package/tests/functional/localLibCreateLibDeleteLib.test.js +161 -0
- package/tests/functional/localLibCreateLibExportImportLib.test.js +242 -0
- package/tests/functional/localLibCreateLibExportLib.test.js +219 -0
- package/tests/functional/localLibCreateLibImportCompDeleteLib.test.js +131 -0
- package/tests/functional/localLibCreateLibListDeleteLib.test.js +261 -0
- package/tests/functional/localLibCreateLibListMoveDeleteLib.test.js +236 -0
- package/tests/functional/localLibCreateLibListSwitchDeleteLib.test.js +237 -0
- package/tests/functional/localLibCreateLibPermDeleteLib.test.js +144 -0
- package/tests/functional/localLibCreateLibStatusDeleteLib.test.js +194 -0
- package/tests/functional/localLibCreateLibValidateDeleteLib.test.js +217 -0
- package/tests/functional/localLibCreateLibVersionDeleteLib.test.js +453 -0
- package/tests/functional/localPromoteRevertWP.test.js +83 -38
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
// import { exec } from 'child_process';
|
|
2
|
+
const path = require('path');
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const util = require('node:util');
|
|
5
|
+
const exec = util.promisify(require('node:child_process').exec);
|
|
6
|
+
|
|
7
|
+
const tasksConfigDir = path.resolve('../../..', 'tasks.config.json');
|
|
8
|
+
const tasksConfigData = fs.readFileSync(tasksConfigDir, { encoding: 'utf8' });
|
|
9
|
+
let tasksConfigJSON = JSON.parse(tasksConfigData);
|
|
10
|
+
|
|
11
|
+
const packageJSONDir = path.resolve('../../..', 'package.json');
|
|
12
|
+
const packageJSONData = fs.readFileSync(packageJSONDir, { encoding: 'utf8'});
|
|
13
|
+
let packageJSON = JSON.parse(packageJSONData);
|
|
14
|
+
|
|
15
|
+
let isLibraryBased = tasksConfigJSON['libraryMode'];
|
|
16
|
+
const savedLibraryBased = isLibraryBased;
|
|
17
|
+
const savedOrganization = packageJSON.organization;
|
|
18
|
+
|
|
19
|
+
const serverType = tasksConfigJSON['server-config'].serverType;
|
|
20
|
+
const serverDir = serverType === 'launchpad' ? 'Launchpad' : 'Constellation';
|
|
21
|
+
let compType = isLibraryBased ? "library" : "original";
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
describe(`createLib createAll list createVersion switchVersion move deleteLib: ${serverDir} - ${compType}` , () => {
|
|
25
|
+
|
|
26
|
+
beforeAll( async() => {
|
|
27
|
+
|
|
28
|
+
// make libraryBased
|
|
29
|
+
isLibraryBased = true;
|
|
30
|
+
tasksConfigJSON['libraryMode'] = isLibraryBased;
|
|
31
|
+
compType = isLibraryBased ? "library" : "original";
|
|
32
|
+
fs.writeFileSync(tasksConfigDir, JSON.stringify(tasksConfigJSON, null, 4), { encoding: 'utf8' });
|
|
33
|
+
|
|
34
|
+
const storeDir = path.join(path.resolve('../../..'), 'store');
|
|
35
|
+
if (fs.existsSync(storeDir)) {
|
|
36
|
+
fs.rmSync(storeDir, { recursive: true, force: true, maxRetries: 2 });
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// make organzation Pega
|
|
40
|
+
packageJSON.organization = "Pega";
|
|
41
|
+
fs.writeFileSync(packageJSONDir, JSON.stringify(packageJSON, null, 4), { encoding: 'utf8' });
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
const componentsDir = path.join(path.resolve('../../..'), 'src/components');
|
|
45
|
+
if (fs.existsSync(componentsDir)) {
|
|
46
|
+
fs.rmSync(componentsDir, { recursive: true, force: true, maxRetries: 2 });
|
|
47
|
+
fs.mkdirSync(componentsDir, { recursive: true });
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
await new Promise((r) => setTimeout(r, 2000));
|
|
51
|
+
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
afterAll( async() => {
|
|
55
|
+
|
|
56
|
+
//restore
|
|
57
|
+
isLibraryBased = savedLibraryBased
|
|
58
|
+
tasksConfigJSON['libraryMode'] = isLibraryBased;
|
|
59
|
+
|
|
60
|
+
fs.writeFileSync(tasksConfigDir, JSON.stringify(tasksConfigJSON, null, 4), { encoding: 'utf8' });
|
|
61
|
+
|
|
62
|
+
// return organzation
|
|
63
|
+
packageJSON.organization = savedOrganization;
|
|
64
|
+
fs.writeFileSync(packageJSONDir, JSON.stringify(packageJSON, null, 4), { encoding: 'utf8' });
|
|
65
|
+
|
|
66
|
+
const componentsDir = path.join(path.resolve('../../..'), 'src/components');
|
|
67
|
+
if (fs.existsSync(componentsDir)) {
|
|
68
|
+
fs.rmSync(componentsDir, { recursive: true, force: true, maxRetries: 2 });
|
|
69
|
+
fs.mkdirSync(componentsDir, { recursive: true });
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const storeDir = path.join(path.resolve('../../..'), 'store');
|
|
73
|
+
if (fs.existsSync(storeDir)) {
|
|
74
|
+
fs.rmSync(storeDir, { recursive: true, force: true, maxRetries: 2 });
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
await new Promise((r) => setTimeout(r, 2000));
|
|
78
|
+
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
it(`npm run createLib - ${isLibraryBased}`, async() => {
|
|
82
|
+
|
|
83
|
+
const script = `npm run createLib DXIL 0.0.1 N --prefix ../../..`;
|
|
84
|
+
const compConf = path.join("store", "Pega_DXIL","0.0.1-dev", "componentsconfig.json");
|
|
85
|
+
|
|
86
|
+
const { stdout, stderr } = await exec(script);
|
|
87
|
+
expect(stdout).toContain('Library Pega_DXIL/0.0.1-dev has been created!');
|
|
88
|
+
|
|
89
|
+
const doesExist = fs.existsSync(path.resolve('../../..', compConf));
|
|
90
|
+
|
|
91
|
+
expect(doesExist).toBeTruthy();
|
|
92
|
+
|
|
93
|
+
}, 60000);
|
|
94
|
+
|
|
95
|
+
it('npm run createAll', async () => {
|
|
96
|
+
const script = `npm run createAll "My" 0.0.1 DXIL "" Pega Jest --prefix ../../..`;
|
|
97
|
+
|
|
98
|
+
const { stdout, stderr } = await exec(script);
|
|
99
|
+
// console.log(stdout);
|
|
100
|
+
expect(stdout).not.toBeNull();
|
|
101
|
+
expect(stderr).not.toBeNull();
|
|
102
|
+
|
|
103
|
+
// want message to contain component name
|
|
104
|
+
expect(stdout).toContain('created Pega_DXIL_My');
|
|
105
|
+
|
|
106
|
+
// don't want message with already exists
|
|
107
|
+
expect(stdout).not.toContain('already exists');
|
|
108
|
+
|
|
109
|
+
// check to see file exists
|
|
110
|
+
|
|
111
|
+
// pick one
|
|
112
|
+
const newFileName = 'Pega_DXIL_MyBoolean';
|
|
113
|
+
|
|
114
|
+
// const fileDir = path.resolve(`src/components/${newFileName}`);
|
|
115
|
+
const createFile = path.resolve(
|
|
116
|
+
'../../..',
|
|
117
|
+
path.join(`src/components/${newFileName}`, 'index.tsx')
|
|
118
|
+
);
|
|
119
|
+
const doesExist = fs.existsSync(createFile);
|
|
120
|
+
expect(doesExist).toBeTruthy();
|
|
121
|
+
|
|
122
|
+
// if (doesExist) {
|
|
123
|
+
// // remove it
|
|
124
|
+
// fs.rmdirSync(fileDir, { recursive: true });
|
|
125
|
+
// }
|
|
126
|
+
}, 50000);
|
|
127
|
+
|
|
128
|
+
it('npm run list', async () => {
|
|
129
|
+
const script = 'npm run list --prefix ../../..';
|
|
130
|
+
const { stdout, stderr } = await exec(script);
|
|
131
|
+
|
|
132
|
+
expect(stderr).not.toBeNull();
|
|
133
|
+
|
|
134
|
+
// console.log(stdout);
|
|
135
|
+
expect(stdout).not.toBeNull();
|
|
136
|
+
expect(stdout).toContain('Pega_DXIL_MyText');
|
|
137
|
+
expect(stdout).toContain('Pega_DXIL_MyTextInput');
|
|
138
|
+
expect(stdout).toContain('Pega_DXIL_MyParagraph');
|
|
139
|
+
expect(stdout).toContain('Pega_DXIL_MyEmail');
|
|
140
|
+
expect(stdout).toContain('Pega_DXIL_MyPhone');
|
|
141
|
+
expect(stdout).toContain('Pega_DXIL_MyURL');
|
|
142
|
+
expect(stdout).toContain('Pega_DXIL_MyInteger');
|
|
143
|
+
expect(stdout).toContain('Pega_DXIL_MyDecimal');
|
|
144
|
+
expect(stdout).toContain('Pega_DXIL_MyCurrency');
|
|
145
|
+
expect(stdout).toContain('Pega_DXIL_MyPercentage');
|
|
146
|
+
expect(stdout).toContain('Pega_DXIL_MyBoolean');
|
|
147
|
+
expect(stdout).toContain('Pega_DXIL_MyDate');
|
|
148
|
+
expect(stdout).toContain('Pega_DXIL_MyDateTime');
|
|
149
|
+
expect(stdout).toContain('Pega_DXIL_MyTimeOfDay');
|
|
150
|
+
expect(stdout).toContain('Pega_DXIL_MyPicklist');
|
|
151
|
+
expect(stdout).toContain('Pega_DXIL_MySearchbox');
|
|
152
|
+
expect(stdout).toContain('Pega_DXIL_MyRadiobuttons');
|
|
153
|
+
expect(stdout).toContain('Pega_DXIL_MyDetails');
|
|
154
|
+
expect(stdout).toContain('Pega_DXIL_MyTwoColumnDetails');
|
|
155
|
+
expect(stdout).toContain('Pega_DXIL_MyForm');
|
|
156
|
+
expect(stdout).toContain('Pega_DXIL_MyTwoColumnForm');
|
|
157
|
+
expect(stdout).toContain('Pega_DXIL_MyPage');
|
|
158
|
+
expect(stdout).toContain('Pega_DXIL_MyCaseWidget');
|
|
159
|
+
expect(stdout).toContain('Pega_DXIL_MyPageWidget');
|
|
160
|
+
expect(stdout).toContain('Pega_DXIL_MyPageCaseWidget');
|
|
161
|
+
// done();
|
|
162
|
+
}, 50000);
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
it(`npm run createLibVersion and NO copy - ${isLibraryBased}`, async() => {
|
|
167
|
+
|
|
168
|
+
const script = `npm run createLibVersion 0.0.2 N N NoAbout --prefix ../../..`;
|
|
169
|
+
const { stdout, stderr } = await exec(script);
|
|
170
|
+
|
|
171
|
+
expect(stdout).toContain('Library Pega_DXIL/0.0.1-dev has been stored.');
|
|
172
|
+
expect(stdout).toContain('Library Pega_DXIL/0.0.2-dev has been created!');
|
|
173
|
+
|
|
174
|
+
}, 50000);
|
|
175
|
+
|
|
176
|
+
it(`npm run switchLibVersion - ${isLibraryBased}`, async() => {
|
|
177
|
+
// we are at version 0.0.2, switch to 0.0.1
|
|
178
|
+
const script = `npm run switchLibVersion Y 0.0.1-dev NoAbout --prefix ../../..`;
|
|
179
|
+
const { stdout, stderr } = await exec(script);
|
|
180
|
+
|
|
181
|
+
expect(stdout).toContain('Switched to Pega_DXIL/0.0.1-dev!');
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
}, 50000);
|
|
185
|
+
|
|
186
|
+
it(`npm run move (move) - ${isLibraryBased}`, async() => {
|
|
187
|
+
// move a component to version 0.0.2
|
|
188
|
+
const script = `npm run move Move Pega_DXIL_MyCurrency Pega_DXIL 0.0.2-dev Y --prefix ../../..`;
|
|
189
|
+
const { stdout, stderr } = await exec(script);
|
|
190
|
+
|
|
191
|
+
expect(stdout).toContain('Moved Pega_DXIL_MyCurrency to Pega_DXIL/0.0.2-dev as Pega_DXIL_MyCurrency');
|
|
192
|
+
|
|
193
|
+
}, 50000);
|
|
194
|
+
|
|
195
|
+
it(`npm run move (copy) - ${isLibraryBased}`, async() => {
|
|
196
|
+
// copy a component to version 0.0.2
|
|
197
|
+
const script = `npm run move Copy Pega_DXIL_MyDetails Pega_DXIL 0.0.2-dev Y --prefix ../../..`;
|
|
198
|
+
const { stdout, stderr } = await exec(script);
|
|
199
|
+
|
|
200
|
+
expect(stdout).toContain('Copied Pega_DXIL_MyDetails to Pega_DXIL/0.0.2-dev as Pega_DXIL_MyDetails');
|
|
201
|
+
|
|
202
|
+
}, 50000);
|
|
203
|
+
|
|
204
|
+
it(`npm run listLib (0.0.2) - ${isLibraryBased}`, async() => {
|
|
205
|
+
// list 0.0.2-dev and verify it is there
|
|
206
|
+
const script = `npm run listLib Pega_DXIL 0.0.2-dev --prefix ../../..`;
|
|
207
|
+
const { stdout, stderr } = await exec(script);
|
|
208
|
+
|
|
209
|
+
expect(stdout).toContain('Pega_DXIL_MyCurrency');
|
|
210
|
+
expect(stdout).toContain('Pega_DXIL_MyDetails');
|
|
211
|
+
expect(stdout).toContain('0.0.2-dev');
|
|
212
|
+
|
|
213
|
+
}, 30000);
|
|
214
|
+
|
|
215
|
+
it(`npm run list (0.0.1) - ${isLibraryBased}`, async() => {
|
|
216
|
+
// list 0.0.2-dev and verify it is there
|
|
217
|
+
const script = `npm run list --prefix ../../..`;
|
|
218
|
+
const { stdout, stderr } = await exec(script);
|
|
219
|
+
|
|
220
|
+
expect(stdout).not.toContain('Pega_DXIL_MyCurrency');
|
|
221
|
+
expect(stdout).toContain('Pega_DXIL_MyDetails');
|
|
222
|
+
expect(stdout).toContain('0.0.1-dev');
|
|
223
|
+
|
|
224
|
+
}, 40000);
|
|
225
|
+
|
|
226
|
+
it(`npm run deleteLib - ${isLibraryBased}`, async() => {
|
|
227
|
+
|
|
228
|
+
const script = `npm run deleteLib Pega_DXIL ALL Y --prefix ../../..`;
|
|
229
|
+
const { stdout, stderr } = await exec(script);
|
|
230
|
+
|
|
231
|
+
expect(stdout).toContain('Pega_DXIL is deleted from Local.');
|
|
232
|
+
|
|
233
|
+
}, 50000);
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
});
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
// import { exec } from 'child_process';
|
|
2
|
+
const path = require('path');
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const util = require('node:util');
|
|
5
|
+
const exec = util.promisify(require('node:child_process').exec);
|
|
6
|
+
|
|
7
|
+
const tasksConfigDir = path.resolve('../../..', 'tasks.config.json');
|
|
8
|
+
const tasksConfigData = fs.readFileSync(tasksConfigDir, { encoding: 'utf8' });
|
|
9
|
+
let tasksConfigJSON = JSON.parse(tasksConfigData);
|
|
10
|
+
|
|
11
|
+
const packageJSONDir = path.resolve('../../..', 'package.json');
|
|
12
|
+
const packageJSONData = fs.readFileSync(packageJSONDir, { encoding: 'utf8'});
|
|
13
|
+
let packageJSON = JSON.parse(packageJSONData);
|
|
14
|
+
|
|
15
|
+
let isLibraryBased = tasksConfigJSON['libraryMode'];
|
|
16
|
+
const savedLibraryBased = isLibraryBased;
|
|
17
|
+
const savedOrganization = packageJSON.organization;
|
|
18
|
+
|
|
19
|
+
const serverType = tasksConfigJSON['server-config'].serverType;
|
|
20
|
+
const serverDir = serverType === 'launchpad' ? 'Launchpad' : 'Constellation';
|
|
21
|
+
let compType = isLibraryBased ? "library" : "original";
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
describe(`createLib createAll list createLib switchLb and deleteLib: ${serverDir} - ${compType}` , () => {
|
|
25
|
+
|
|
26
|
+
beforeAll( async() => {
|
|
27
|
+
|
|
28
|
+
// make libraryBased
|
|
29
|
+
isLibraryBased = true;
|
|
30
|
+
tasksConfigJSON['libraryMode'] = isLibraryBased;
|
|
31
|
+
compType = isLibraryBased ? "library" : "original";
|
|
32
|
+
fs.writeFileSync(tasksConfigDir, JSON.stringify(tasksConfigJSON, null, 4), { encoding: 'utf8' });
|
|
33
|
+
|
|
34
|
+
const storeDir = path.join(path.resolve('../../..'), 'store');
|
|
35
|
+
if (fs.existsSync(storeDir)) {
|
|
36
|
+
fs.rmSync(storeDir, { recursive: true, force: true, maxRetries: 2 });
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// make organzation Pega
|
|
40
|
+
packageJSON.organization = "Pega";
|
|
41
|
+
fs.writeFileSync(packageJSONDir, JSON.stringify(packageJSON, null, 4), { encoding: 'utf8' });
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
const componentsDir = path.join(path.resolve('../../..'), 'src/components');
|
|
45
|
+
if (fs.existsSync(componentsDir)) {
|
|
46
|
+
fs.rmSync(componentsDir, { recursive: true, force: true, maxRetries: 2 });
|
|
47
|
+
fs.mkdirSync(componentsDir, { recursive: true });
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
await new Promise((r) => setTimeout(r, 2000));
|
|
51
|
+
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
afterAll( async() => {
|
|
55
|
+
|
|
56
|
+
//restore
|
|
57
|
+
isLibraryBased = savedLibraryBased
|
|
58
|
+
tasksConfigJSON['libraryMode'] = isLibraryBased;
|
|
59
|
+
|
|
60
|
+
fs.writeFileSync(tasksConfigDir, JSON.stringify(tasksConfigJSON, null, 4), { encoding: 'utf8' });
|
|
61
|
+
|
|
62
|
+
// return organzation
|
|
63
|
+
packageJSON.organization = savedOrganization;
|
|
64
|
+
fs.writeFileSync(packageJSONDir, JSON.stringify(packageJSON, null, 4), { encoding: 'utf8' });
|
|
65
|
+
|
|
66
|
+
const componentsDir = path.join(path.resolve('../../..'), 'src/components');
|
|
67
|
+
if (fs.existsSync(componentsDir)) {
|
|
68
|
+
fs.rmSync(componentsDir, { recursive: true, force: true, maxRetries: 2 });
|
|
69
|
+
fs.mkdirSync(componentsDir, { recursive: true });
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
await new Promise((r) => setTimeout(r, 2000));
|
|
73
|
+
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
it(`npm run createLib - ${isLibraryBased}`, async() => {
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
const script = `npm run createLib DXIL 0.0.1 N --prefix ../../..`;
|
|
81
|
+
const compConf = path.join("store", "Pega_DXIL","0.0.1-dev", "componentsconfig.json");
|
|
82
|
+
|
|
83
|
+
const { stdout, stderr } = await exec(script);
|
|
84
|
+
expect(stdout).toContain('Library Pega_DXIL/0.0.1-dev has been created!');
|
|
85
|
+
|
|
86
|
+
const doesExist = fs.existsSync(path.resolve('../../..', compConf));
|
|
87
|
+
|
|
88
|
+
expect(doesExist).toBeTruthy();
|
|
89
|
+
|
|
90
|
+
}, 30000);
|
|
91
|
+
|
|
92
|
+
it('npm run createAll', async () => {
|
|
93
|
+
const script = `npm run createAll "My" 0.0.1 DXIL "" Pega Jest --prefix ../../..`;
|
|
94
|
+
|
|
95
|
+
const { stdout, stderr } = await exec(script);
|
|
96
|
+
// console.log(stdout);
|
|
97
|
+
expect(stdout).not.toBeNull();
|
|
98
|
+
expect(stderr).not.toBeNull();
|
|
99
|
+
|
|
100
|
+
// want message to contain component name
|
|
101
|
+
expect(stdout).toContain('created Pega_DXIL_My');
|
|
102
|
+
|
|
103
|
+
// don't want message with already exists
|
|
104
|
+
expect(stdout).not.toContain('already exists');
|
|
105
|
+
|
|
106
|
+
// check to see file exists
|
|
107
|
+
|
|
108
|
+
// pick one
|
|
109
|
+
const newFileName = 'Pega_DXIL_MyBoolean';
|
|
110
|
+
|
|
111
|
+
// const fileDir = path.resolve(`src/components/${newFileName}`);
|
|
112
|
+
const createFile = path.resolve(
|
|
113
|
+
'../../..',
|
|
114
|
+
path.join(`src/components/${newFileName}`, 'index.tsx')
|
|
115
|
+
);
|
|
116
|
+
const doesExist = fs.existsSync(createFile);
|
|
117
|
+
expect(doesExist).toBeTruthy();
|
|
118
|
+
|
|
119
|
+
// if (doesExist) {
|
|
120
|
+
// // remove it
|
|
121
|
+
// fs.rmdirSync(fileDir, { recursive: true });
|
|
122
|
+
// }
|
|
123
|
+
}, 10000);
|
|
124
|
+
|
|
125
|
+
it('npm run list', async () => {
|
|
126
|
+
const script = 'npm run list --prefix ../../..';
|
|
127
|
+
const { stdout, stderr } = await exec(script);
|
|
128
|
+
|
|
129
|
+
expect(stderr).not.toBeNull();
|
|
130
|
+
|
|
131
|
+
// console.log(stdout);
|
|
132
|
+
expect(stdout).not.toBeNull();
|
|
133
|
+
expect(stdout).toContain('Pega_DXIL_MyText');
|
|
134
|
+
expect(stdout).toContain('Pega_DXIL_MyTextInput');
|
|
135
|
+
expect(stdout).toContain('Pega_DXIL_MyParagraph');
|
|
136
|
+
expect(stdout).toContain('Pega_DXIL_MyEmail');
|
|
137
|
+
expect(stdout).toContain('Pega_DXIL_MyPhone');
|
|
138
|
+
expect(stdout).toContain('Pega_DXIL_MyURL');
|
|
139
|
+
expect(stdout).toContain('Pega_DXIL_MyInteger');
|
|
140
|
+
expect(stdout).toContain('Pega_DXIL_MyDecimal');
|
|
141
|
+
expect(stdout).toContain('Pega_DXIL_MyCurrency');
|
|
142
|
+
expect(stdout).toContain('Pega_DXIL_MyPercentage');
|
|
143
|
+
expect(stdout).toContain('Pega_DXIL_MyBoolean');
|
|
144
|
+
expect(stdout).toContain('Pega_DXIL_MyDate');
|
|
145
|
+
expect(stdout).toContain('Pega_DXIL_MyDateTime');
|
|
146
|
+
expect(stdout).toContain('Pega_DXIL_MyTimeOfDay');
|
|
147
|
+
expect(stdout).toContain('Pega_DXIL_MyPicklist');
|
|
148
|
+
expect(stdout).toContain('Pega_DXIL_MySearchbox');
|
|
149
|
+
expect(stdout).toContain('Pega_DXIL_MyRadiobuttons');
|
|
150
|
+
expect(stdout).toContain('Pega_DXIL_MyDetails');
|
|
151
|
+
expect(stdout).toContain('Pega_DXIL_MyTwoColumnDetails');
|
|
152
|
+
expect(stdout).toContain('Pega_DXIL_MyForm');
|
|
153
|
+
expect(stdout).toContain('Pega_DXIL_MyTwoColumnForm');
|
|
154
|
+
expect(stdout).toContain('Pega_DXIL_MyPage');
|
|
155
|
+
expect(stdout).toContain('Pega_DXIL_MyCaseWidget');
|
|
156
|
+
expect(stdout).toContain('Pega_DXIL_MyPageWidget');
|
|
157
|
+
expect(stdout).toContain('Pega_DXIL_MyPageCaseWidget');
|
|
158
|
+
// done();
|
|
159
|
+
}, 10000);
|
|
160
|
+
|
|
161
|
+
it(`npm run createLib other - ${isLibraryBased}`, async() => {
|
|
162
|
+
|
|
163
|
+
const script = `npm run createLib Other 0.0.1 N --prefix ../../..`;
|
|
164
|
+
const compConf = path.join("store", "Pega_Other","0.0.1-dev", "componentsconfig.json");
|
|
165
|
+
|
|
166
|
+
const { stdout, stderr } = await exec(script);
|
|
167
|
+
expect(stdout).toContain('Library Pega_Other/0.0.1-dev has been created!');
|
|
168
|
+
|
|
169
|
+
const doesExist = fs.existsSync(path.resolve('../../..', compConf));
|
|
170
|
+
|
|
171
|
+
expect(doesExist).toBeTruthy();
|
|
172
|
+
|
|
173
|
+
}, 30000);
|
|
174
|
+
|
|
175
|
+
it(`npm run switchLib DXIL - ${isLibraryBased}`, async() => {
|
|
176
|
+
|
|
177
|
+
const script = `npm run switchLib Y Pega_DXIL 0.0.1-dev --prefix ../../..`;
|
|
178
|
+
|
|
179
|
+
const { stdout, stderr } = await exec(script);
|
|
180
|
+
expect(stdout).toContain('Switched to Pega_DXIL/0.0.1-dev!');
|
|
181
|
+
|
|
182
|
+
}, 30000);
|
|
183
|
+
|
|
184
|
+
it('npm run list', async () => {
|
|
185
|
+
const script = 'npm run list --prefix ../../..';
|
|
186
|
+
const { stdout, stderr } = await exec(script);
|
|
187
|
+
|
|
188
|
+
expect(stderr).not.toBeNull();
|
|
189
|
+
|
|
190
|
+
// console.log(stdout);
|
|
191
|
+
expect(stdout).not.toBeNull();
|
|
192
|
+
expect(stdout).toContain('Pega_DXIL_MyText');
|
|
193
|
+
expect(stdout).toContain('Pega_DXIL_MyTextInput');
|
|
194
|
+
expect(stdout).toContain('Pega_DXIL_MyParagraph');
|
|
195
|
+
expect(stdout).toContain('Pega_DXIL_MyEmail');
|
|
196
|
+
expect(stdout).toContain('Pega_DXIL_MyPhone');
|
|
197
|
+
expect(stdout).toContain('Pega_DXIL_MyURL');
|
|
198
|
+
expect(stdout).toContain('Pega_DXIL_MyInteger');
|
|
199
|
+
expect(stdout).toContain('Pega_DXIL_MyDecimal');
|
|
200
|
+
expect(stdout).toContain('Pega_DXIL_MyCurrency');
|
|
201
|
+
expect(stdout).toContain('Pega_DXIL_MyPercentage');
|
|
202
|
+
expect(stdout).toContain('Pega_DXIL_MyBoolean');
|
|
203
|
+
expect(stdout).toContain('Pega_DXIL_MyDate');
|
|
204
|
+
expect(stdout).toContain('Pega_DXIL_MyDateTime');
|
|
205
|
+
expect(stdout).toContain('Pega_DXIL_MyTimeOfDay');
|
|
206
|
+
expect(stdout).toContain('Pega_DXIL_MyPicklist');
|
|
207
|
+
expect(stdout).toContain('Pega_DXIL_MySearchbox');
|
|
208
|
+
expect(stdout).toContain('Pega_DXIL_MyRadiobuttons');
|
|
209
|
+
expect(stdout).toContain('Pega_DXIL_MyDetails');
|
|
210
|
+
expect(stdout).toContain('Pega_DXIL_MyTwoColumnDetails');
|
|
211
|
+
expect(stdout).toContain('Pega_DXIL_MyForm');
|
|
212
|
+
expect(stdout).toContain('Pega_DXIL_MyTwoColumnForm');
|
|
213
|
+
expect(stdout).toContain('Pega_DXIL_MyPage');
|
|
214
|
+
expect(stdout).toContain('Pega_DXIL_MyCaseWidget');
|
|
215
|
+
expect(stdout).toContain('Pega_DXIL_MyPageWidget');
|
|
216
|
+
expect(stdout).toContain('Pega_DXIL_MyPageCaseWidget');
|
|
217
|
+
// done();
|
|
218
|
+
}, 10000);
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
it(`npm run deleteLib - ${isLibraryBased}`, async() => {
|
|
222
|
+
|
|
223
|
+
let script = `npm run deleteLib Pega_DXIL 0.0.1-dev --prefix ../../..`;
|
|
224
|
+
let { stdout, stderr } = await exec(script);
|
|
225
|
+
|
|
226
|
+
expect(stdout).toContain('Pega_DXIL is deleted from Local.');
|
|
227
|
+
|
|
228
|
+
script = `npm run deleteLib Pega_Other 0.0.1-dev --prefix ../../..`;
|
|
229
|
+
({ stdout, stderr } = await exec(script));
|
|
230
|
+
|
|
231
|
+
expect(stdout).toContain('Pega_Other is deleted from Local.');
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
}, 30000);
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
});
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
// import { exec } from 'child_process';
|
|
2
|
+
const path = require('path');
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const util = require('node:util');
|
|
5
|
+
const exec = util.promisify(require('node:child_process').exec);
|
|
6
|
+
|
|
7
|
+
const tasksConfigDir = path.resolve('../../..', 'tasks.config.json');
|
|
8
|
+
const tasksConfigData = fs.readFileSync(tasksConfigDir, { encoding: 'utf8' });
|
|
9
|
+
let tasksConfigJSON = JSON.parse(tasksConfigData);
|
|
10
|
+
|
|
11
|
+
const packageJSONDir = path.resolve('../../..', 'package.json');
|
|
12
|
+
const packageJSONData = fs.readFileSync(packageJSONDir, { encoding: 'utf8'});
|
|
13
|
+
let packageJSON = JSON.parse(packageJSONData);
|
|
14
|
+
|
|
15
|
+
let isLibraryBased = tasksConfigJSON['libraryMode'];
|
|
16
|
+
const savedLibraryBased = isLibraryBased;
|
|
17
|
+
const savedOrganization = packageJSON.organization;
|
|
18
|
+
|
|
19
|
+
const serverType = tasksConfigJSON['server-config'].serverType;
|
|
20
|
+
const serverDir = serverType === 'launchpad' ? 'Launchpad' : 'Constellation';
|
|
21
|
+
let compType = isLibraryBased ? "library" : "original";
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
describe(`createLib setPerm setNotPerm deleteLib: ${serverDir} - ${compType}` , () => {
|
|
25
|
+
|
|
26
|
+
beforeAll( async() => {
|
|
27
|
+
|
|
28
|
+
// make libraryBased
|
|
29
|
+
isLibraryBased = true;
|
|
30
|
+
tasksConfigJSON['libraryMode'] = isLibraryBased;
|
|
31
|
+
compType = isLibraryBased ? "library" : "original";
|
|
32
|
+
fs.writeFileSync(tasksConfigDir, JSON.stringify(tasksConfigJSON, null, 4), { encoding: 'utf8' });
|
|
33
|
+
|
|
34
|
+
const storeDir = path.join(path.resolve('../../..'), 'store');
|
|
35
|
+
if (fs.existsSync(storeDir)) {
|
|
36
|
+
fs.rmSync(storeDir, { recursive: true, force: true, maxRetries: 2 });
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// make organzation Pega
|
|
40
|
+
packageJSON.organization = "Pega";
|
|
41
|
+
fs.writeFileSync(packageJSONDir, JSON.stringify(packageJSON, null, 4), { encoding: 'utf8' });
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
const componentsDir = path.join(path.resolve('../../..'), 'src/components');
|
|
45
|
+
if (fs.existsSync(componentsDir)) {
|
|
46
|
+
fs.rmSync(componentsDir, { recursive: true, force: true, maxRetries: 2 });
|
|
47
|
+
fs.mkdirSync(componentsDir, { recursive: true });
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
await new Promise((r) => setTimeout(r, 2000));
|
|
51
|
+
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
afterAll( async() => {
|
|
55
|
+
|
|
56
|
+
//restore
|
|
57
|
+
isLibraryBased = savedLibraryBased
|
|
58
|
+
tasksConfigJSON['libraryMode'] = isLibraryBased;
|
|
59
|
+
|
|
60
|
+
fs.writeFileSync(tasksConfigDir, JSON.stringify(tasksConfigJSON, null, 4), { encoding: 'utf8' });
|
|
61
|
+
|
|
62
|
+
// return organzation
|
|
63
|
+
packageJSON.organization = savedOrganization;
|
|
64
|
+
fs.writeFileSync(packageJSONDir, JSON.stringify(packageJSON, null, 4), { encoding: 'utf8' });
|
|
65
|
+
|
|
66
|
+
const componentsDir = path.join(path.resolve('../../..'), 'src/components');
|
|
67
|
+
if (fs.existsSync(componentsDir)) {
|
|
68
|
+
fs.rmSync(componentsDir, { recursive: true, force: true, maxRetries: 2 });
|
|
69
|
+
fs.mkdirSync(componentsDir, { recursive: true });
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const storeDir = path.join(path.resolve('../../..'), 'store');
|
|
73
|
+
if (fs.existsSync(storeDir)) {
|
|
74
|
+
fs.rmSync(storeDir, { recursive: true, force: true, maxRetries: 2 });
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
await new Promise((r) => setTimeout(r, 2000));
|
|
78
|
+
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
it(`npm run createLib - ${isLibraryBased}`, async() => {
|
|
83
|
+
|
|
84
|
+
const script = `npm run createLib DXIL 0.0.1 N --prefix ../../..`;
|
|
85
|
+
const compConf = path.join("store", "Pega_DXIL","0.0.1-dev", "componentsconfig.json");
|
|
86
|
+
|
|
87
|
+
const { stdout, stderr } = await exec(script);
|
|
88
|
+
expect(stdout).toContain('Library Pega_DXIL/0.0.1-dev has been created!');
|
|
89
|
+
|
|
90
|
+
const doesExist = fs.existsSync(path.resolve('../../..', compConf));
|
|
91
|
+
|
|
92
|
+
expect(doesExist).toBeTruthy();
|
|
93
|
+
|
|
94
|
+
}, 30000);
|
|
95
|
+
|
|
96
|
+
it(`npm run setPerm (Y) - ${isLibraryBased}`, async() => {
|
|
97
|
+
|
|
98
|
+
const script = `npm run setPermanent Y --prefix ../../..`;
|
|
99
|
+
const { stdout, stderr } = await exec(script);
|
|
100
|
+
|
|
101
|
+
expect(stdout).toContain('Organization:');
|
|
102
|
+
expect(stdout).toContain('Pega');
|
|
103
|
+
expect(stdout).toContain('Library:');
|
|
104
|
+
expect(stdout).toContain('DXIL');
|
|
105
|
+
expect(stdout).toContain('Version:');
|
|
106
|
+
expect(stdout).toContain('0.0.1');
|
|
107
|
+
expect(stdout).toContain('Permanent:');
|
|
108
|
+
expect(stdout).toContain('true');
|
|
109
|
+
expect(stdout).toContain('Component count:');
|
|
110
|
+
expect(stdout).toContain('0');
|
|
111
|
+
|
|
112
|
+
}, 30000);
|
|
113
|
+
|
|
114
|
+
it(`npm run setPerm (N) - ${isLibraryBased}`, async() => {
|
|
115
|
+
|
|
116
|
+
const script = `npm run setPermanent N --prefix ../../..`;
|
|
117
|
+
const { stdout, stderr } = await exec(script);
|
|
118
|
+
|
|
119
|
+
expect(stdout).toContain('Organization:');
|
|
120
|
+
expect(stdout).toContain('Pega');
|
|
121
|
+
expect(stdout).toContain('Library:');
|
|
122
|
+
expect(stdout).toContain('DXIL');
|
|
123
|
+
expect(stdout).toContain('Version:');
|
|
124
|
+
expect(stdout).toContain('0.0.1-dev');
|
|
125
|
+
expect(stdout).toContain('Permanent:');
|
|
126
|
+
expect(stdout).toContain('false');
|
|
127
|
+
expect(stdout).toContain('Component count:');
|
|
128
|
+
expect(stdout).toContain('0');
|
|
129
|
+
|
|
130
|
+
}, 30000);
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
it(`npm run deleteLib- ${isLibraryBased}`, async() => {
|
|
134
|
+
|
|
135
|
+
const script = `npm run deleteLib Pega_DXIL 0.0.1-dev --prefix ../../..`;
|
|
136
|
+
const { stdout, stderr } = await exec(script);
|
|
137
|
+
|
|
138
|
+
expect(stdout).toContain('Pega_DXIL is deleted from Local.');
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
}, 30000);
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
});
|