codify-plugin-test 0.0.53-beta12 → 0.0.53-beta13
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/dist/plugin-tester.js +4 -2
- package/dist/plugin-tester.js.map +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +1 -1
- package/package.json +1 -1
- package/src/plugin-tester.ts +6 -3
- package/src/utils.ts +1 -1
- package/test/plugin-tester.test.ts +11 -0
- package/test/test-plugin.ts +34 -5
package/dist/plugin-tester.js
CHANGED
|
@@ -2,10 +2,11 @@ import chalk from 'chalk';
|
|
|
2
2
|
import { ResourceOperation, } from 'codify-schemas';
|
|
3
3
|
import unionBy from 'lodash.unionby';
|
|
4
4
|
import { PluginProcess } from './plugin-process.js';
|
|
5
|
-
import {
|
|
5
|
+
import { getPlatformOs, splitUserConfig } from './utils.js';
|
|
6
|
+
import os from 'node:os';
|
|
6
7
|
export class PluginTester {
|
|
7
8
|
static async fullTest(pluginPath, configs, options) {
|
|
8
|
-
configs = configs.filter((c) => !c.os || c.os.includes(
|
|
9
|
+
configs = configs.filter((c) => !c.os || c.os.includes(getPlatformOs()));
|
|
9
10
|
const ids = configs
|
|
10
11
|
.map((c) => `${c.type}${c.name ? `.${c.name}` : ''}`)
|
|
11
12
|
.join(', ');
|
|
@@ -19,6 +20,7 @@ export class PluginTester {
|
|
|
19
20
|
if (unsupportedConfigs.length > 0) {
|
|
20
21
|
throw new Error(`The plugin does not support the following configs supplied:\n ${JSON.stringify(unsupportedConfigs, null, 2)}\n Initialize result: ${JSON.stringify(initializeResult)}`);
|
|
21
22
|
}
|
|
23
|
+
configs = configs.filter((c) => initializeResult.resourceDefinitions.find((rd) => rd.type === c.type)?.operatingSystems?.includes(os.platform()));
|
|
22
24
|
console.info(chalk.cyan('Testing validate...'));
|
|
23
25
|
const validate = await plugin.validate({ configs: configs.map((c) => {
|
|
24
26
|
const { coreParameters, parameters } = splitUserConfig(c);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-tester.js","sourceRoot":"","sources":["../src/plugin-tester.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAIL,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin-tester.js","sourceRoot":"","sources":["../src/plugin-tester.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
package/dist/utils.js
CHANGED
package/package.json
CHANGED
package/src/plugin-tester.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import {
|
|
3
|
-
ImportResponseData,
|
|
3
|
+
ImportResponseData, OS,
|
|
4
4
|
PlanResponseData,
|
|
5
5
|
ResourceConfig,
|
|
6
6
|
ResourceOperation,
|
|
@@ -8,7 +8,8 @@ import {
|
|
|
8
8
|
import unionBy from 'lodash.unionby';
|
|
9
9
|
|
|
10
10
|
import { PluginProcess } from './plugin-process.js';
|
|
11
|
-
import {
|
|
11
|
+
import { getPlatformOs, splitUserConfig } from './utils.js';
|
|
12
|
+
import os from 'node:os';
|
|
12
13
|
|
|
13
14
|
export class PluginTester {
|
|
14
15
|
static async fullTest(
|
|
@@ -26,7 +27,7 @@ export class PluginTester {
|
|
|
26
27
|
validateModify?: (plans: PlanResponseData[]) => Promise<void> | void,
|
|
27
28
|
}
|
|
28
29
|
}): Promise<void> {
|
|
29
|
-
configs = configs.filter((c) => !c.os || c.os.includes(
|
|
30
|
+
configs = configs.filter((c) => !c.os || c.os.includes(getPlatformOs()));
|
|
30
31
|
const ids = configs
|
|
31
32
|
.map((c) => `${c.type}${c.name ? `.${c.name}` : ''}`)
|
|
32
33
|
.join(', ')
|
|
@@ -50,6 +51,8 @@ export class PluginTester {
|
|
|
50
51
|
throw new Error(`The plugin does not support the following configs supplied:\n ${JSON.stringify(unsupportedConfigs, null, 2)}\n Initialize result: ${JSON.stringify(initializeResult)}`)
|
|
51
52
|
}
|
|
52
53
|
|
|
54
|
+
configs = configs.filter((c) => initializeResult.resourceDefinitions.find((rd) => rd.type === c.type)?.operatingSystems?.includes(os.platform() as OS));
|
|
55
|
+
|
|
53
56
|
console.info(chalk.cyan('Testing validate...'))
|
|
54
57
|
const validate = await plugin.validate({ configs: configs.map((c) => {
|
|
55
58
|
const { coreParameters, parameters } = splitUserConfig(c)
|
package/src/utils.ts
CHANGED
|
@@ -313,6 +313,17 @@ describe('Plugin tester integration tests', () => {
|
|
|
313
313
|
}
|
|
314
314
|
})
|
|
315
315
|
|
|
316
|
+
it('Can filter out unsupported configs based on OS', { timeout: 300000 }, async () => {
|
|
317
|
+
await PluginTester.fullTest(pluginPath, [{
|
|
318
|
+
type: 'windows-only',
|
|
319
|
+
}], {
|
|
320
|
+
validatePlan(plan) {
|
|
321
|
+
expect(plan.length).to.eq(0);
|
|
322
|
+
}
|
|
323
|
+
});
|
|
324
|
+
});
|
|
325
|
+
|
|
326
|
+
|
|
316
327
|
|
|
317
328
|
// it('Can uninstall two resources with the same type', async () => {
|
|
318
329
|
// await plugin.fullTest([{
|
package/test/test-plugin.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CreatePlan,
|
|
3
|
-
DestroyPlan,
|
|
3
|
+
DestroyPlan,
|
|
4
|
+
ModifyPlan,
|
|
4
5
|
ParameterChange,
|
|
5
6
|
Plugin,
|
|
6
7
|
Resource,
|
|
7
8
|
ResourceSettings,
|
|
8
9
|
runPlugin
|
|
9
10
|
} from 'codify-plugin-lib';
|
|
10
|
-
import { StringIndexedObject } from 'codify-schemas';
|
|
11
|
-
import { b } from 'vitest/dist/reporters-yx5ZTtEV';
|
|
11
|
+
import { OS, StringIndexedObject } from 'codify-schemas';
|
|
12
12
|
import * as fs from 'node:fs';
|
|
13
13
|
|
|
14
14
|
export interface TestConfig extends StringIndexedObject {
|
|
@@ -27,6 +27,7 @@ export class TestResource extends Resource<TestConfig> {
|
|
|
27
27
|
getSettings(): ResourceSettings<TestConfig> {
|
|
28
28
|
return {
|
|
29
29
|
id: 'test',
|
|
30
|
+
operatingSystems: [OS.Linux, OS.Darwin],
|
|
30
31
|
allowMultiple: true,
|
|
31
32
|
};
|
|
32
33
|
}
|
|
@@ -54,6 +55,7 @@ export class TestResource2 extends Resource<TestConfig2> {
|
|
|
54
55
|
getSettings(): ResourceSettings<TestConfig2> {
|
|
55
56
|
return {
|
|
56
57
|
id: 'test2',
|
|
58
|
+
operatingSystems: [OS.Linux, OS.Darwin],
|
|
57
59
|
parameterSettings: {
|
|
58
60
|
propB: { type: 'array' }
|
|
59
61
|
}
|
|
@@ -82,7 +84,8 @@ export class TestUninstallResource extends Resource<TestConfig> {
|
|
|
82
84
|
first = true;
|
|
83
85
|
getSettings(): ResourceSettings<TestConfig> {
|
|
84
86
|
return {
|
|
85
|
-
id: 'test-uninstall'
|
|
87
|
+
id: 'test-uninstall',
|
|
88
|
+
operatingSystems: [OS.Linux, OS.Darwin],
|
|
86
89
|
}
|
|
87
90
|
}
|
|
88
91
|
|
|
@@ -106,6 +109,7 @@ export class TestModifyResource extends Resource<TestConfig> {
|
|
|
106
109
|
getSettings(): ResourceSettings<TestConfig> {
|
|
107
110
|
return {
|
|
108
111
|
id: 'test-modify',
|
|
112
|
+
operatingSystems: [OS.Linux, OS.Darwin],
|
|
109
113
|
parameterSettings: {
|
|
110
114
|
propA: { type: 'string', canModify: true },
|
|
111
115
|
propB: { type: 'string', canModify: true },
|
|
@@ -141,6 +145,7 @@ export class TestDestroyResource extends Resource<TestConfig> {
|
|
|
141
145
|
getSettings(): ResourceSettings<TestConfig> {
|
|
142
146
|
return {
|
|
143
147
|
id: 'test-destroy',
|
|
148
|
+
operatingSystems: [OS.Linux, OS.Darwin],
|
|
144
149
|
}
|
|
145
150
|
}
|
|
146
151
|
|
|
@@ -165,6 +170,29 @@ export class TestDestroyResource extends Resource<TestConfig> {
|
|
|
165
170
|
}
|
|
166
171
|
}
|
|
167
172
|
|
|
173
|
+
export class WindowsOnlyResource extends Resource<TestConfig> {
|
|
174
|
+
private name: string;
|
|
175
|
+
|
|
176
|
+
getSettings(): ResourceSettings<TestConfig> {
|
|
177
|
+
return {
|
|
178
|
+
id: 'windows-only',
|
|
179
|
+
operatingSystems: [OS.Windows],
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
async refresh(parameters: Partial<TestConfig>): Promise<Array<Partial<TestConfig>> | Partial<TestConfig> | null> {
|
|
184
|
+
return {};
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
async modify(pc: ParameterChange<TestConfig>, plan: ModifyPlan<TestConfig>): Promise<void> {
|
|
188
|
+
return super.modify(pc, plan);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
async create(plan: CreatePlan<TestConfig>): Promise<void> {}
|
|
192
|
+
|
|
193
|
+
async destroy(plan: DestroyPlan<TestConfig>): Promise<void> {}
|
|
194
|
+
}
|
|
195
|
+
|
|
168
196
|
export class TestDestroyResource2 extends TestDestroyResource {
|
|
169
197
|
getSettings(): ResourceSettings<TestConfig> {
|
|
170
198
|
return {
|
|
@@ -181,6 +209,7 @@ runPlugin(Plugin.create(
|
|
|
181
209
|
new TestUninstallResource(),
|
|
182
210
|
new TestModifyResource(),
|
|
183
211
|
new TestDestroyResource(),
|
|
184
|
-
new TestDestroyResource2()
|
|
212
|
+
new TestDestroyResource2(),
|
|
213
|
+
new WindowsOnlyResource(),
|
|
185
214
|
]
|
|
186
215
|
));
|