yeoman-test 7.1.0 → 7.2.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.
- package/dist/helpers.d.ts +1 -1
- package/dist/helpers.js +6 -1
- package/dist/run-context.d.ts +2 -1
- package/dist/run-context.js +23 -18
- package/package.json +1 -1
package/dist/helpers.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import type { RunContextSettings } from './run-context.js';
|
|
|
9
9
|
/**
|
|
10
10
|
* Dependencies can be path (autodiscovery) or an array [<generator>, <name>]
|
|
11
11
|
*/
|
|
12
|
-
export type Dependency = string | Parameters<Environment['registerStub']>;
|
|
12
|
+
export type Dependency = string | Parameters<Environment['registerStub']> | Parameters<Environment['register']>;
|
|
13
13
|
type GeneratorNew<GenParameter extends YeomanGenerator = YeomanGenerator> = new (...args: ConstructorParameters<typeof YeomanGenerator<GenParameter['options']>>) => YeomanGenerator<GenParameter['options']>;
|
|
14
14
|
type GeneratorBuilder<GenParameter extends YeomanGenerator = YeomanGenerator> = (...args: ConstructorParameters<typeof YeomanGenerator<GenParameter['options']>>) => YeomanGenerator<GenParameter['options']>;
|
|
15
15
|
export type GeneratorConstructor<GenParameter extends YeomanGenerator = YeomanGenerator> = GeneratorNew<GenParameter> | GeneratorBuilder<GenParameter>;
|
package/dist/helpers.js
CHANGED
|
@@ -168,7 +168,12 @@ export class YeomanTest {
|
|
|
168
168
|
registerDependencies(env, dependencies) {
|
|
169
169
|
for (const dependency of dependencies) {
|
|
170
170
|
if (Array.isArray(dependency)) {
|
|
171
|
-
|
|
171
|
+
if (typeof dependency[0] === 'string') {
|
|
172
|
+
env.register(...dependency);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
env.registerStub(...dependency);
|
|
176
|
+
}
|
|
172
177
|
}
|
|
173
178
|
else {
|
|
174
179
|
env.register(dependency);
|
package/dist/run-context.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export type RunContextSettings = {
|
|
|
31
31
|
namespace?: string;
|
|
32
32
|
};
|
|
33
33
|
type PromiseRunResult<GeneratorType extends Generator> = Promise<RunResult<GeneratorType>>;
|
|
34
|
-
export declare class RunContextBase<GeneratorType extends Generator> extends EventEmitter {
|
|
34
|
+
export declare class RunContextBase<GeneratorType extends Generator = Generator> extends EventEmitter {
|
|
35
35
|
readonly mockedGenerators: Record<string, Generator>;
|
|
36
36
|
env: Environment;
|
|
37
37
|
generator: GeneratorType;
|
|
@@ -54,6 +54,7 @@ export declare class RunContextBase<GeneratorType extends Generator> extends Eve
|
|
|
54
54
|
private oldCwd?;
|
|
55
55
|
private eventListenersSet;
|
|
56
56
|
private envCB;
|
|
57
|
+
private built;
|
|
57
58
|
private ran;
|
|
58
59
|
private errored;
|
|
59
60
|
/**
|
package/dist/run-context.js
CHANGED
|
@@ -32,6 +32,7 @@ export class RunContextBase extends EventEmitter {
|
|
|
32
32
|
oldCwd;
|
|
33
33
|
eventListenersSet = false;
|
|
34
34
|
envCB;
|
|
35
|
+
built = false;
|
|
35
36
|
ran = false;
|
|
36
37
|
errored = false;
|
|
37
38
|
/**
|
|
@@ -47,14 +48,9 @@ export class RunContextBase extends EventEmitter {
|
|
|
47
48
|
constructor(generatorType, settings, envOptions = {}, helpers = defaultHelpers) {
|
|
48
49
|
super();
|
|
49
50
|
this.settings = {
|
|
50
|
-
namespace: 'gen:test',
|
|
51
51
|
...settings,
|
|
52
52
|
};
|
|
53
53
|
this.Generator = generatorType;
|
|
54
|
-
if (typeof generatorType !== 'string') {
|
|
55
|
-
const { namespace, resolved } = this.settings;
|
|
56
|
-
this.withGenerators([[generatorType, namespace, resolved]]);
|
|
57
|
-
}
|
|
58
54
|
this.envOptions = envOptions;
|
|
59
55
|
this.withOptions({
|
|
60
56
|
force: true,
|
|
@@ -72,7 +68,8 @@ export class RunContextBase extends EventEmitter {
|
|
|
72
68
|
* @return {PromiseRunResult} Promise a RunResult instance.
|
|
73
69
|
*/
|
|
74
70
|
async run() {
|
|
75
|
-
|
|
71
|
+
this.ran = true;
|
|
72
|
+
if (!this.built) {
|
|
76
73
|
await this.build();
|
|
77
74
|
}
|
|
78
75
|
try {
|
|
@@ -288,13 +285,20 @@ export class RunContextBase extends EventEmitter {
|
|
|
288
285
|
*/
|
|
289
286
|
withGenerators(dependencies) {
|
|
290
287
|
assert(Array.isArray(dependencies), 'dependencies should be an array');
|
|
291
|
-
return this.onEnvironment(env => {
|
|
288
|
+
return this.onEnvironment(async (env) => {
|
|
292
289
|
for (const dependency of dependencies) {
|
|
293
290
|
if (Array.isArray(dependency)) {
|
|
294
|
-
|
|
291
|
+
if (typeof dependency[0] === 'string') {
|
|
292
|
+
// eslint-disable-next-line no-await-in-loop, @typescript-eslint/await-thenable
|
|
293
|
+
await env.register(...dependency);
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
env.registerStub(...dependency);
|
|
297
|
+
}
|
|
295
298
|
}
|
|
296
299
|
else {
|
|
297
|
-
|
|
300
|
+
// eslint-disable-next-line no-await-in-loop, @typescript-eslint/await-thenable
|
|
301
|
+
await env.register(dependency);
|
|
298
302
|
}
|
|
299
303
|
}
|
|
300
304
|
});
|
|
@@ -397,7 +401,7 @@ export class RunContextBase extends EventEmitter {
|
|
|
397
401
|
return this;
|
|
398
402
|
}
|
|
399
403
|
assertNotBuild() {
|
|
400
|
-
if (this.
|
|
404
|
+
if (this.built || this.completed) {
|
|
401
405
|
throw new Error('The context is already built');
|
|
402
406
|
}
|
|
403
407
|
}
|
|
@@ -407,7 +411,7 @@ export class RunContextBase extends EventEmitter {
|
|
|
407
411
|
*/
|
|
408
412
|
async build() {
|
|
409
413
|
this.assertNotBuild();
|
|
410
|
-
this.
|
|
414
|
+
this.built = true;
|
|
411
415
|
if (!this.targetDirectory && this.settings.tmpdir !== false) {
|
|
412
416
|
this.inTmpDir();
|
|
413
417
|
}
|
|
@@ -439,13 +443,14 @@ export class RunContextBase extends EventEmitter {
|
|
|
439
443
|
// eslint-disable-next-line no-await-in-loop
|
|
440
444
|
await onEnvironmentCallback.call(this, this.env);
|
|
441
445
|
}
|
|
442
|
-
|
|
443
|
-
if (typeof this.Generator === 'string') {
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
}
|
|
446
|
+
const { namespace = typeof this.Generator === 'string' ? this.env.namespace(this.Generator) : 'gen:test' } = this.settings;
|
|
447
|
+
if (typeof this.Generator === 'string' && namespace !== this.Generator) {
|
|
448
|
+
// Generator is a file path, it should be registered.
|
|
449
|
+
this.env.register(this.Generator, namespace);
|
|
450
|
+
}
|
|
451
|
+
else if (typeof this.Generator !== 'string') {
|
|
452
|
+
const { resolved } = this.settings;
|
|
453
|
+
this.env.registerStub(this.Generator, namespace, resolved);
|
|
449
454
|
}
|
|
450
455
|
// eslint-disable-next-line @typescript-eslint/await-thenable
|
|
451
456
|
this.generator = (await this.env.create(namespace, this.args, this.options));
|