yeoman-test 8.0.0-beta.2 → 8.0.0-beta.4
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/default-environment.d.ts +1 -0
- package/dist/default-environment.js +4 -0
- package/dist/helpers.d.ts +6 -15
- package/dist/helpers.js +6 -22
- package/dist/run-context.d.ts +5 -6
- package/dist/run-context.js +8 -13
- package/dist/run-result.d.ts +4 -4
- package/package.json +8 -7
- package/types/type-helpers.d.ts +17 -0
- package/dist/type-helpers.d.ts +0 -6
- package/dist/type-helpers.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export function defaultEnvironment(): Promise<any>;
|
package/dist/helpers.d.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BaseEnvironmentOptions, BaseGenerator, BaseGeneratorOptions, GetGeneratorConstructor, GetGeneratorOptions, PromptAnswers } from '@yeoman/types';
|
|
2
2
|
import type { SinonSpiedInstance } from 'sinon';
|
|
3
|
+
import type { DefaultEnvironmentApi, DefaultGeneratorApi } from '../types/type-helpers.js';
|
|
3
4
|
import { type DummyPromptOptions } from './adapter.js';
|
|
4
5
|
import RunContext, { BasicRunContext, type RunContextSettings } from './run-context.js';
|
|
5
|
-
import type { DefaultEnvironmentApi, DefaultGeneratorApi } from './type-helpers.js';
|
|
6
6
|
/**
|
|
7
7
|
* Dependencies can be path (autodiscovery) or an array [<generator>, <name>]
|
|
8
8
|
*/
|
|
9
|
-
export type Dependency =
|
|
10
|
-
export type GeneratorFactory<GenParameter extends BaseGenerator = DefaultGeneratorApi> = GetGeneratorConstructor<GenParameter> | ((...args: ConstructorParameters<GetGeneratorConstructor<GenParameter>>) => GenParameter);
|
|
9
|
+
export type Dependency = string | Parameters<DefaultEnvironmentApi['register']>;
|
|
11
10
|
/**
|
|
12
11
|
* Collection of unit test helpers. (mostly related to Mocha syntax)
|
|
13
12
|
* @class YeomanTest
|
|
@@ -91,14 +90,6 @@ export declare class YeomanTest {
|
|
|
91
90
|
* var angular = createGenerator('angular:app', deps);
|
|
92
91
|
*/
|
|
93
92
|
createGenerator<GeneratorType extends BaseGenerator = DefaultGeneratorApi>(name: string, dependencies: Dependency[], args?: string[], options?: GetGeneratorOptions<GeneratorType>, localConfigOnly?: boolean): Promise<GeneratorType>;
|
|
94
|
-
/**
|
|
95
|
-
* @deprecated
|
|
96
|
-
* Register a list of dependent generators into the provided env.
|
|
97
|
-
* Dependecies can be path (autodiscovery) or an array [{generator}, {name}]
|
|
98
|
-
*
|
|
99
|
-
* @param dependencies - paths to the generators dependencies
|
|
100
|
-
*/
|
|
101
|
-
registerDependencies(env: DefaultEnvironmentApi, dependencies: Dependency[]): void;
|
|
102
93
|
/**
|
|
103
94
|
* Shortcut to the Environment's createEnv.
|
|
104
95
|
*
|
|
@@ -122,7 +113,7 @@ export declare class YeomanTest {
|
|
|
122
113
|
* @param {Object} - Options to be passed to the environment
|
|
123
114
|
* const env = createTestEnv(require('yeoman-environment').createEnv);
|
|
124
115
|
*/
|
|
125
|
-
createTestEnv(envContructor?: (...args: any[]) => Promise<BaseEnvironment>, options?: BaseEnvironmentOptions): Promise<BaseEnvironment>;
|
|
116
|
+
createTestEnv(envContructor?: (...args: any[]) => Promise<import("@yeoman/types").BaseEnvironment>, options?: BaseEnvironmentOptions): Promise<import("@yeoman/types").BaseEnvironment>;
|
|
126
117
|
/**
|
|
127
118
|
* Get RunContext type
|
|
128
119
|
* @return {RunContext}
|
|
@@ -132,13 +123,13 @@ export declare class YeomanTest {
|
|
|
132
123
|
* Run the provided Generator
|
|
133
124
|
* @param GeneratorOrNamespace - Generator constructor or namespace
|
|
134
125
|
*/
|
|
135
|
-
run<GeneratorType extends BaseGenerator = DefaultGeneratorApi>(GeneratorOrNamespace: string |
|
|
126
|
+
run<GeneratorType extends BaseGenerator = DefaultGeneratorApi>(GeneratorOrNamespace: string | GetGeneratorConstructor<GeneratorType>, settings?: RunContextSettings, envOptions?: BaseEnvironmentOptions): RunContext<GeneratorType>;
|
|
136
127
|
/**
|
|
137
128
|
* Prepare a run context
|
|
138
129
|
* @param {String|Function} GeneratorOrNamespace - Generator constructor or namespace
|
|
139
130
|
* @return {RunContext}
|
|
140
131
|
*/
|
|
141
|
-
create<GeneratorType extends BaseGenerator = DefaultGeneratorApi>(GeneratorOrNamespace: string |
|
|
132
|
+
create<GeneratorType extends BaseGenerator = DefaultGeneratorApi>(GeneratorOrNamespace: string | GetGeneratorConstructor<GeneratorType>, settings?: RunContextSettings, envOptions?: BaseEnvironmentOptions): RunContext<GeneratorType>;
|
|
142
133
|
/**
|
|
143
134
|
* Prepare temporary dir without generator support.
|
|
144
135
|
* Generator and environment will be undefined.
|
package/dist/helpers.js
CHANGED
|
@@ -7,6 +7,7 @@ import { spy as sinonSpy, stub as sinonStub } from 'sinon';
|
|
|
7
7
|
import { DummyPrompt, TestAdapter } from './adapter.js';
|
|
8
8
|
import RunContext, { BasicRunContext } from './run-context.js';
|
|
9
9
|
import testContext from './test-context.js';
|
|
10
|
+
import { defaultEnvironment } from './default-environment.js';
|
|
10
11
|
let GeneratorImplementation;
|
|
11
12
|
try {
|
|
12
13
|
const GeneratorImport = await import('yeoman-generator');
|
|
@@ -171,30 +172,15 @@ export class YeomanTest {
|
|
|
171
172
|
*/
|
|
172
173
|
async createGenerator(name, dependencies, args, options, localConfigOnly = true) {
|
|
173
174
|
const env = await this.createEnv([], { sharedOptions: { localConfigOnly } });
|
|
174
|
-
this.registerDependencies(env, dependencies);
|
|
175
|
-
return env.create(name, args, options);
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* @deprecated
|
|
179
|
-
* Register a list of dependent generators into the provided env.
|
|
180
|
-
* Dependecies can be path (autodiscovery) or an array [{generator}, {name}]
|
|
181
|
-
*
|
|
182
|
-
* @param dependencies - paths to the generators dependencies
|
|
183
|
-
*/
|
|
184
|
-
registerDependencies(env, dependencies) {
|
|
185
175
|
for (const dependency of dependencies) {
|
|
186
|
-
if (
|
|
187
|
-
|
|
188
|
-
env.register(...dependency);
|
|
189
|
-
}
|
|
190
|
-
else {
|
|
191
|
-
env.registerStub(...dependency);
|
|
192
|
-
}
|
|
176
|
+
if (typeof dependency === 'string') {
|
|
177
|
+
env.register(dependency);
|
|
193
178
|
}
|
|
194
179
|
else {
|
|
195
|
-
env.register(dependency);
|
|
180
|
+
env.register(...dependency);
|
|
196
181
|
}
|
|
197
182
|
}
|
|
183
|
+
return env.create(name, args, options);
|
|
198
184
|
}
|
|
199
185
|
/**
|
|
200
186
|
* Shortcut to the Environment's createEnv.
|
|
@@ -212,9 +198,7 @@ export class YeomanTest {
|
|
|
212
198
|
* });
|
|
213
199
|
*/
|
|
214
200
|
async createEnv(...args) {
|
|
215
|
-
|
|
216
|
-
const createEnv = dynamicEnv.createEnv ?? dynamicEnv.default.createEnv;
|
|
217
|
-
return createEnv(...args);
|
|
201
|
+
return (await defaultEnvironment())(...args);
|
|
218
202
|
}
|
|
219
203
|
/**
|
|
220
204
|
* Creates a test environment.
|
package/dist/run-context.d.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
import { EventEmitter } from 'node:events';
|
|
3
3
|
import { type Store } from 'mem-fs';
|
|
4
|
-
import type { BaseEnvironmentOptions, BaseGenerator, GetGeneratorConstructor, GetGeneratorOptions, PromptAnswers } from '@yeoman/types';
|
|
5
|
-
import { type LookupOptions } from 'yeoman-environment';
|
|
4
|
+
import type { BaseEnvironmentOptions, BaseGenerator, GetGeneratorConstructor, GetGeneratorOptions, PromptAnswers, LookupOptions } from '@yeoman/types';
|
|
6
5
|
import { type MemFsEditorFile, type MemFsEditor } from 'mem-fs-editor';
|
|
6
|
+
import type { DefaultGeneratorApi, DefaultEnvironmentApi } from '../types/type-helpers.js';
|
|
7
7
|
import RunResult, { type RunResultOptions } from './run-result.js';
|
|
8
|
-
import { type Dependency, type YeomanTest
|
|
8
|
+
import { type Dependency, type YeomanTest } from './helpers.js';
|
|
9
9
|
import { type DummyPromptOptions } from './adapter.js';
|
|
10
|
-
import type { DefaultGeneratorApi, DefaultEnvironmentApi } from './type-helpers.js';
|
|
11
10
|
/**
|
|
12
11
|
* Provides settings for creating a `RunContext`.
|
|
13
12
|
*/
|
|
@@ -33,7 +32,7 @@ export type RunContextSettings = {
|
|
|
33
32
|
namespace?: string;
|
|
34
33
|
};
|
|
35
34
|
type PromiseRunResult<GeneratorType extends BaseGenerator> = Promise<RunResult<GeneratorType>>;
|
|
36
|
-
type MockedGeneratorFactory<GenParameter extends BaseGenerator = DefaultGeneratorApi> = (GeneratorClass?: GetGeneratorConstructor<GenParameter>) => GenParameter
|
|
35
|
+
type MockedGeneratorFactory<GenParameter extends BaseGenerator = DefaultGeneratorApi> = (GeneratorClass?: GetGeneratorConstructor<GenParameter>) => GetGeneratorConstructor<GenParameter>;
|
|
37
36
|
type EnvOptions = BaseEnvironmentOptions & {
|
|
38
37
|
createEnv?: any;
|
|
39
38
|
};
|
|
@@ -77,7 +76,7 @@ export declare class RunContextBase<GeneratorType extends BaseGenerator = Defaul
|
|
|
77
76
|
* @param settings
|
|
78
77
|
* @return {this}
|
|
79
78
|
*/
|
|
80
|
-
constructor(generatorType?: string |
|
|
79
|
+
constructor(generatorType?: string | GetGeneratorConstructor<GeneratorType>, settings?: RunContextSettings, envOptions?: EnvOptions, helpers?: YeomanTest);
|
|
81
80
|
/**
|
|
82
81
|
* Run the generator on the environment and promises a RunResult instance.
|
|
83
82
|
* @return {PromiseRunResult} Promise a RunResult instance.
|
package/dist/run-context.js
CHANGED
|
@@ -296,16 +296,11 @@ export class RunContextBase extends EventEmitter {
|
|
|
296
296
|
assert(Array.isArray(dependencies), 'dependencies should be an array');
|
|
297
297
|
return this.onEnvironment(async (env) => {
|
|
298
298
|
for (const dependency of dependencies) {
|
|
299
|
-
if (
|
|
300
|
-
|
|
301
|
-
env.register(...dependency);
|
|
302
|
-
}
|
|
303
|
-
else {
|
|
304
|
-
env.registerStub(...dependency);
|
|
305
|
-
}
|
|
299
|
+
if (typeof dependency === 'string') {
|
|
300
|
+
env.register(dependency);
|
|
306
301
|
}
|
|
307
302
|
else {
|
|
308
|
-
env.register(dependency);
|
|
303
|
+
env.register(...dependency);
|
|
309
304
|
}
|
|
310
305
|
}
|
|
311
306
|
});
|
|
@@ -332,9 +327,9 @@ export class RunContextBase extends EventEmitter {
|
|
|
332
327
|
*/
|
|
333
328
|
withMockedGenerators(namespaces) {
|
|
334
329
|
assert(Array.isArray(namespaces), 'namespaces should be an array');
|
|
335
|
-
const
|
|
336
|
-
const
|
|
337
|
-
Object.assign(this.mockedGenerators,
|
|
330
|
+
const mockedGenerators = Object.fromEntries(namespaces.map(namespace => [namespace, this.mockedGeneratorFactory()]));
|
|
331
|
+
const dependencies = Object.entries(mockedGenerators).map(([namespace, mock]) => [mock, { namespace }]);
|
|
332
|
+
Object.assign(this.mockedGenerators, mockedGenerators);
|
|
338
333
|
return this.withGenerators(dependencies);
|
|
339
334
|
}
|
|
340
335
|
/**
|
|
@@ -501,11 +496,11 @@ export class RunContextBase extends EventEmitter {
|
|
|
501
496
|
const { namespace = typeof this.Generator === 'string' ? this.env.namespace(this.Generator) : 'gen:test' } = this.settings;
|
|
502
497
|
if (typeof this.Generator === 'string' && namespace !== this.Generator) {
|
|
503
498
|
// Generator is a file path, it should be registered.
|
|
504
|
-
this.env.register(this.Generator, namespace);
|
|
499
|
+
this.env.register(this.Generator, { namespace });
|
|
505
500
|
}
|
|
506
501
|
else if (typeof this.Generator !== 'string') {
|
|
507
502
|
const { resolved } = this.settings;
|
|
508
|
-
this.env.
|
|
503
|
+
this.env.register(this.Generator, { namespace, resolved });
|
|
509
504
|
}
|
|
510
505
|
this.generator = await this.env.create(namespace, this.args, {
|
|
511
506
|
force: true,
|
package/dist/run-result.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Store } from 'mem-fs';
|
|
2
2
|
import { type MemFsEditorFile, type MemFsEditor } from 'mem-fs-editor';
|
|
3
|
-
import type { BaseEnvironmentOptions, BaseGenerator } from '@yeoman/types';
|
|
3
|
+
import type { BaseEnvironmentOptions, BaseGenerator, GetGeneratorConstructor } from '@yeoman/types';
|
|
4
|
+
import type { DefaultEnvironmentApi, DefaultGeneratorApi } from '../types/type-helpers.js';
|
|
4
5
|
import { type RunContextSettings } from './run-context.js';
|
|
5
|
-
import { type
|
|
6
|
-
import type { DefaultEnvironmentApi, DefaultGeneratorApi } from './type-helpers.js';
|
|
6
|
+
import { type YeomanTest } from './helpers.js';
|
|
7
7
|
/**
|
|
8
8
|
* Provides options for `RunResult`s.
|
|
9
9
|
*/
|
|
@@ -51,7 +51,7 @@ export default class RunResult<GeneratorType extends BaseGenerator = BaseGenerat
|
|
|
51
51
|
* Create another RunContext reusing the settings.
|
|
52
52
|
* See helpers.create api
|
|
53
53
|
*/
|
|
54
|
-
create<GeneratorType extends BaseGenerator = DefaultGeneratorApi>(GeneratorOrNamespace: string |
|
|
54
|
+
create<GeneratorType extends BaseGenerator = DefaultGeneratorApi>(GeneratorOrNamespace: string | GetGeneratorConstructor<GeneratorType>, settings?: RunContextSettings, envOptions?: BaseEnvironmentOptions): import("./run-context.js").default<GeneratorType>;
|
|
55
55
|
/**
|
|
56
56
|
* Return an object with fs changes.
|
|
57
57
|
* @param {Function} filter - parameter forwarded to mem-fs-editor#dump
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yeoman-test",
|
|
3
|
-
"version": "8.0.0-beta.
|
|
3
|
+
"version": "8.0.0-beta.4",
|
|
4
4
|
"description": "Test utilities for Yeoman generators",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"yeoman",
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
},
|
|
18
18
|
"types": "./dist/index.d.ts",
|
|
19
19
|
"files": [
|
|
20
|
-
"dist"
|
|
20
|
+
"dist",
|
|
21
|
+
"types"
|
|
21
22
|
],
|
|
22
23
|
"scripts": {
|
|
23
24
|
"build": "tsc",
|
|
@@ -29,7 +30,7 @@
|
|
|
29
30
|
"precommit": "lint-staged",
|
|
30
31
|
"prepare": "npm run build",
|
|
31
32
|
"pretest": "xo",
|
|
32
|
-
"test": "c8 esmocha"
|
|
33
|
+
"test": "c8 esmocha --forbid-only"
|
|
33
34
|
},
|
|
34
35
|
"config": {
|
|
35
36
|
"doc_path": "../yeoman-test-doc"
|
|
@@ -58,13 +59,13 @@
|
|
|
58
59
|
"tui-jsdoc-template": "^1.2.2",
|
|
59
60
|
"typescript": "^5.0.4",
|
|
60
61
|
"xo": "^0.54.2",
|
|
61
|
-
"yeoman-environment": "^3.
|
|
62
|
+
"yeoman-environment": "^3.17.0",
|
|
62
63
|
"yeoman-generator": "^5.8.0"
|
|
63
64
|
},
|
|
64
65
|
"peerDependencies": {
|
|
65
|
-
"@yeoman/types": "^0.
|
|
66
|
-
"yeoman-environment": "^3.
|
|
67
|
-
"yeoman-generator": "^5.8.0 || ^6.0.0-beta.
|
|
66
|
+
"@yeoman/types": "^0.4.0",
|
|
67
|
+
"yeoman-environment": "^3.17.0 || ^4.0.0-alpha.5",
|
|
68
|
+
"yeoman-generator": "^5.8.0 || ^6.0.0-beta.3"
|
|
68
69
|
},
|
|
69
70
|
"peerDependenciesMeta": {
|
|
70
71
|
"yeoman-environment": {
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { BaseGenerator, BaseEnvironment } from '@yeoman/types';
|
|
2
|
+
import type GeneratorImplementation from 'yeoman-generator';
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment, @typescript-eslint/prefer-ts-expect-error
|
|
4
|
+
// @ts-ignore
|
|
5
|
+
import type EnvironmentImplementation from 'yeoman-environment';
|
|
6
|
+
import type { IfAny } from 'type-fest';
|
|
7
|
+
|
|
8
|
+
export type DefaultGeneratorApi = IfAny<
|
|
9
|
+
typeof GeneratorImplementation,
|
|
10
|
+
BaseGenerator,
|
|
11
|
+
typeof GeneratorImplementation extends BaseGenerator ? typeof GeneratorImplementation : BaseGenerator
|
|
12
|
+
>;
|
|
13
|
+
export type DefaultEnvironmentApi = IfAny<
|
|
14
|
+
typeof EnvironmentImplementation,
|
|
15
|
+
BaseEnvironment,
|
|
16
|
+
typeof EnvironmentImplementation extends BaseEnvironment ? typeof EnvironmentImplementation : BaseEnvironment
|
|
17
|
+
>;
|
package/dist/type-helpers.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { type BaseGenerator, type BaseEnvironment } from '@yeoman/types';
|
|
2
|
-
import type GeneratorImplementation from 'yeoman-generator';
|
|
3
|
-
import type EnvironmentImplementation from 'yeoman-environment';
|
|
4
|
-
import type { IfAny } from 'type-fest';
|
|
5
|
-
export type DefaultGeneratorApi = IfAny<typeof GeneratorImplementation, BaseGenerator, typeof GeneratorImplementation extends BaseGenerator ? typeof GeneratorImplementation : BaseGenerator>;
|
|
6
|
-
export type DefaultEnvironmentApi = IfAny<typeof EnvironmentImplementation, BaseEnvironment, typeof EnvironmentImplementation extends BaseEnvironment ? typeof EnvironmentImplementation : BaseEnvironment>;
|
package/dist/type-helpers.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|