yeoman-test 11.3.0 → 11.4.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 CHANGED
@@ -18,6 +18,8 @@ export declare class YeomanTest {
18
18
  environmentOptions?: BaseEnvironmentOptions;
19
19
  generatorOptions?: BaseGeneratorOptions;
20
20
  adapterOptions?: Omit<TestAdapterOptions, 'mockedAnswers'>;
21
+ defaultGenerator?: string;
22
+ importMeta?: Pick<ImportMeta, 'resolve'>;
21
23
  /**
22
24
  * @deprecated
23
25
  * Create a function that will clean up the test directory,
@@ -134,6 +136,10 @@ export declare class YeomanTest {
134
136
  * @param GeneratorOrNamespace - Generator constructor or namespace
135
137
  */
136
138
  run<GeneratorType extends BaseGenerator = DefaultGeneratorApi>(GeneratorOrNamespace: string | GetGeneratorConstructor<GeneratorType>, settings?: RunContextSettings, environmentOptions?: BaseEnvironmentOptions): RunContext<GeneratorType>;
139
+ /**
140
+ * Run the default generator
141
+ */
142
+ runDefault<GeneratorType extends BaseGenerator = BaseGenerator>(settings?: RunContextSettings, environmentOptions?: BaseEnvironmentOptions): RunContext<GeneratorType>;
137
143
  /**
138
144
  * Prepare a run context
139
145
  * @param {String|Function} GeneratorOrNamespace - Generator constructor or namespace
@@ -148,4 +154,4 @@ export declare class YeomanTest {
148
154
  }
149
155
  declare const defaultHelpers: YeomanTest;
150
156
  export default defaultHelpers;
151
- export declare const createHelpers: (options: any) => YeomanTest;
157
+ export declare const createHelpers: (options: Partial<YeomanTest>) => YeomanTest;
package/dist/helpers.js CHANGED
@@ -25,6 +25,8 @@ export class YeomanTest {
25
25
  environmentOptions;
26
26
  generatorOptions;
27
27
  adapterOptions;
28
+ defaultGenerator;
29
+ importMeta;
28
30
  /**
29
31
  * @deprecated
30
32
  * Create a function that will clean up the test directory,
@@ -254,12 +256,27 @@ export class YeomanTest {
254
256
  const contextSettings = cloneDeep(this.settings ?? {});
255
257
  const generatorOptions = cloneDeep(this.generatorOptions ?? {});
256
258
  const RunContext = this.getRunContextType();
259
+ if (typeof GeneratorOrNamespace === 'string' && GeneratorOrNamespace.startsWith('.')) {
260
+ if (!this.importMeta) {
261
+ throw new Error('importMeta is required to resolve relative generator paths');
262
+ }
263
+ GeneratorOrNamespace = this.importMeta.resolve(GeneratorOrNamespace);
264
+ }
257
265
  const runContext = new RunContext(GeneratorOrNamespace, { ...contextSettings, ...settings }, environmentOptions, this).withOptions(generatorOptions);
258
266
  if (settings?.autoCleanup !== false) {
259
267
  testContext.startNewContext(runContext);
260
268
  }
261
269
  return runContext;
262
270
  }
271
+ /**
272
+ * Run the default generator
273
+ */
274
+ runDefault(settings, environmentOptions) {
275
+ if (!this.defaultGenerator) {
276
+ throw new Error('No default generator defined');
277
+ }
278
+ return this.run(this.defaultGenerator, settings, environmentOptions);
279
+ }
263
280
  /**
264
281
  * Prepare a run context
265
282
  * @param {String|Function} GeneratorOrNamespace - Generator constructor or namespace
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { default, createHelpers, YeomanTest, type Dependency } from './helpers.js';
2
2
  export { default as RunContext, RunContextBase, type RunContextSettings } from './run-context.js';
3
3
  export { default as RunResult, type RunResultOptions } from './run-result.js';
4
- export { default as context, result } from './test-context.js';
4
+ export { default as context, result, typedResult } from './test-context.js';
5
5
  export { TestAdapter } from './adapter.js';
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { default, createHelpers, YeomanTest } from './helpers.js';
2
2
  export { default as RunContext, RunContextBase } from './run-context.js';
3
3
  export { default as RunResult } from './run-result.js';
4
- export { default as context, result } from './test-context.js';
4
+ export { default as context, result, typedResult } from './test-context.js';
5
5
  export { TestAdapter } from './adapter.js';
@@ -1,3 +1,4 @@
1
+ import type { BaseGenerator } from '@yeoman/types';
1
2
  import type RunContext from './run-context.js';
2
3
  import type RunResult from './run-result.js';
3
4
  declare class TestContext {
@@ -14,3 +15,4 @@ export default testContext;
14
15
  * Provides a proxy for last executed context result.
15
16
  */
16
17
  export declare const result: RunResult;
18
+ export declare const typedResult: <GeneratorType extends BaseGenerator>() => RunResult<GeneratorType>;
@@ -41,3 +41,4 @@ const handler2 = {
41
41
  * Provides a proxy for last executed context result.
42
42
  */
43
43
  export const result = new Proxy({}, handler2);
44
+ export const typedResult = () => result;
package/package.json CHANGED
@@ -1,13 +1,16 @@
1
1
  {
2
2
  "name": "yeoman-test",
3
- "version": "11.3.0",
3
+ "version": "11.4.0",
4
4
  "description": "Test utilities for Yeoman generators",
5
5
  "keywords": [
6
6
  "yeoman",
7
7
  "unit test"
8
8
  ],
9
9
  "homepage": "http://yeoman.io/authoring/testing.html",
10
- "repository": "yeoman/yeoman-test",
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/yeoman/yeoman-test.git"
13
+ },
11
14
  "license": "MIT",
12
15
  "author": "The Yeoman Team",
13
16
  "type": "module",
@@ -44,32 +47,33 @@
44
47
  "doc_path": "../yeoman-test-doc"
45
48
  },
46
49
  "dependencies": {
47
- "lodash-es": "^4.17.23",
48
- "mem-fs-editor": "^12.0.2",
50
+ "lodash-es": "^4.18.1",
51
+ "mem-fs-editor": "^12.0.3",
49
52
  "signal-exit": "^4.1.0",
50
- "type-fest": "^5.4.4"
53
+ "type-fest": "^5.6.0"
51
54
  },
52
55
  "devDependencies": {
53
56
  "@types/lodash-es": "^4.17.12",
54
- "@types/node": "^20.19.35",
55
- "@vitest/coverage-v8": "^4.0.18",
57
+ "@types/node": "^22.19.17",
58
+ "@typescript-eslint/parser": "^8.56.1",
59
+ "@vitest/coverage-v8": "^4.1.4",
56
60
  "@yeoman/adapter": "^4.0.2",
57
61
  "@yeoman/eslint": "^1.0.0",
58
62
  "husky": "^9.1.7",
59
63
  "jsdoc": "^4.0.5",
60
- "lint-staged": "^16.3.0",
61
- "prettier": "^3.8.1",
62
- "prettier-plugin-packagejson": "^3.0.0",
63
- "typescript": "^5.9.3",
64
- "vitest": "^4.0.18",
65
- "yeoman-environment": "^6.0.0",
66
- "yeoman-generator": "^8.0.0-beta.8"
64
+ "lint-staged": "^16.4.0",
65
+ "prettier": "^3.8.3",
66
+ "prettier-plugin-packagejson": "^3.0.2",
67
+ "typescript": "^6.0.3",
68
+ "vitest": "^4.1.4",
69
+ "yeoman-environment": "^6.0.1",
70
+ "yeoman-generator": "^8.1.2"
67
71
  },
68
72
  "peerDependencies": {
69
73
  "@yeoman/adapter": "^1.6.0 || ^2.0.0 || ^3.0.0 || ^4.0.1",
70
74
  "@yeoman/types": "^1.5.0",
71
75
  "mem-fs": "^4.1.0",
72
- "yeoman-environment": "^4.0.0 || ^5.0.0-beta.0",
76
+ "yeoman-environment": "^4.0.0 || ^5.0.0-beta.0 || ^6.0.0",
73
77
  "yeoman-generator": "^7.0.0 || ^8.0.0-beta.0"
74
78
  },
75
79
  "peerDependenciesMeta": {