yeoman-test 10.0.1 → 10.1.1

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
@@ -3,6 +3,7 @@ import type { BaseEnvironment, BaseEnvironmentOptions, BaseGenerator, BaseGenera
3
3
  import type { DefaultEnvironmentApi, DefaultGeneratorApi } from '../types/type-helpers.js';
4
4
  import { type DummyPromptOptions, TestAdapter, type TestAdapterOptions } from './adapter.js';
5
5
  import RunContext, { BasicRunContext, type RunContextSettings } from './run-context.js';
6
+ export declare const setDefaultDummyParentClass: (parentClass: any) => void;
6
7
  export type CreateEnv = (options: BaseEnvironmentOptions) => Promise<BaseEnvironment>;
7
8
  /**
8
9
  * Dependencies can be path (autodiscovery) or an array [<generator>, <name>]
package/dist/helpers.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { existsSync, mkdirSync, rmSync } from 'node:fs';
2
+ import { createRequire } from 'node:module';
2
3
  import { resolve } from 'node:path';
3
4
  import process from 'node:process';
4
5
  import { mock } from 'node:test';
@@ -7,14 +8,14 @@ import { TestAdapter } from './adapter.js';
7
8
  import RunContext, { BasicRunContext } from './run-context.js';
8
9
  import testContext from './test-context.js';
9
10
  import { createEnv as createEnvironment } from './default-environment.js';
10
- let GeneratorImplementation;
11
- try {
12
- const GeneratorImport = await import('yeoman-generator');
13
- GeneratorImplementation = GeneratorImport.default ?? GeneratorImport;
14
- }
15
- catch {
16
- // Ignore error
17
- }
11
+ let dummyParentClass;
12
+ export const setDefaultDummyParentClass = parentClass => {
13
+ dummyParentClass = parentClass;
14
+ };
15
+ const getDummyParentClass = () => {
16
+ dummyParentClass ??= createRequire(import.meta.url)('yeoman-generator').default;
17
+ return dummyParentClass;
18
+ };
18
19
  /**
19
20
  * Collection of unit test helpers. (mostly related to Mocha syntax)
20
21
  * @class YeomanTest
@@ -112,7 +113,7 @@ export class YeomanTest {
112
113
  /**
113
114
  * Create a mocked generator
114
115
  */
115
- createMockedGenerator(GeneratorClass = GeneratorImplementation) {
116
+ createMockedGenerator(GeneratorClass = getDummyParentClass()) {
116
117
  class MockedGenerator extends GeneratorClass {
117
118
  }
118
119
  const generator = mock.fn(MockedGenerator);
@@ -126,7 +127,7 @@ export class YeomanTest {
126
127
  /**
127
128
  * Create a simple, dummy generator
128
129
  */
129
- createDummyGenerator(Generator = GeneratorImplementation, contents = {
130
+ createDummyGenerator(Generator = getDummyParentClass(), contents = {
130
131
  test() {
131
132
  this.shouldRun = true;
132
133
  },
@@ -0,0 +1,2 @@
1
+ export * from './index.js';
2
+ export { default } from './index.js';
package/dist/import.js ADDED
@@ -0,0 +1,12 @@
1
+ import { setDefaultDummyParentClass } from './helpers.js';
2
+ let GeneratorImplementation;
3
+ try {
4
+ const GeneratorImport = await import('yeoman-generator');
5
+ GeneratorImplementation = GeneratorImport.default ?? GeneratorImport;
6
+ setDefaultDummyParentClass(GeneratorImplementation);
7
+ }
8
+ catch {
9
+ // ignore
10
+ }
11
+ export * from './index.js';
12
+ export { default } from './index.js';
@@ -1,18 +1,19 @@
1
1
  import crypto from 'node:crypto';
2
- import { existsSync, rmSync } from 'node:fs';
2
+ import { existsSync, realpathSync, rmSync } from 'node:fs';
3
3
  import path, { isAbsolute, join as pathJoin, resolve } from 'node:path';
4
4
  import assert from 'node:assert';
5
5
  import { EventEmitter } from 'node:events';
6
+ import { tmpdir } from 'node:os';
6
7
  import process from 'node:process';
7
8
  import { mock } from 'node:test';
8
9
  import { camelCase, kebabCase, merge as lodashMerge, set as lodashSet } from 'lodash-es';
9
10
  import { resetFileCommitStates } from 'mem-fs-editor/state';
10
11
  import { create as createMemFs } from 'mem-fs';
11
- import tempDirectory from 'temp-dir';
12
12
  import { create as createMemFsEditor } from 'mem-fs-editor';
13
13
  import RunResult from './run-result.js';
14
14
  import defaultHelpers from './helpers.js';
15
15
  import testContext from './test-context.js';
16
+ const tempDirectory = realpathSync(tmpdir());
16
17
  export class RunContextBase extends EventEmitter {
17
18
  mockedGenerators = {};
18
19
  env;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yeoman-test",
3
- "version": "10.0.1",
3
+ "version": "10.1.1",
4
4
  "description": "Test utilities for Yeoman generators",
5
5
  "keywords": [
6
6
  "yeoman",
@@ -13,13 +13,15 @@
13
13
  "type": "module",
14
14
  "exports": {
15
15
  "./mocha-cleanup": {
16
- "import": "./dist/mocha-cleanup.hooks.js"
16
+ "default": "./dist/mocha-cleanup.hooks.js"
17
17
  },
18
18
  ".": {
19
19
  "types": "./dist/index.d.ts",
20
- "import": "./dist/index.js"
20
+ "require": "./dist/index.js",
21
+ "default": "./dist/import.js"
21
22
  }
22
23
  },
24
+ "main": "./dist/index.js",
23
25
  "types": "./dist/index.d.ts",
24
26
  "files": [
25
27
  "dist",
@@ -45,24 +47,23 @@
45
47
  "lodash-es": "^4.17.21",
46
48
  "mem-fs-editor": "^11.1.1",
47
49
  "signal-exit": "^4.1.0",
48
- "temp-dir": "^3.0.0",
49
50
  "type-fest": "^4.25.0"
50
51
  },
51
52
  "devDependencies": {
52
- "@yeoman/adapter": "^2.0.0",
53
53
  "@types/lodash-es": "^4.17.12",
54
54
  "@types/node": ">=18.19.46",
55
- "@vitest/coverage-v8": "^2.0.5",
55
+ "@vitest/coverage-v8": "^3.0.2",
56
+ "@yeoman/adapter": "^2.0.0",
56
57
  "@yeoman/eslint": "0.2.0",
57
58
  "coveralls": "^3.1.1",
58
59
  "husky": "^9.1.5",
59
60
  "jsdoc": "^4.0.2",
60
- "lint-staged": "^15.2.9",
61
+ "lint-staged": "^16.0.0",
61
62
  "prettier": "^3.3.3",
62
63
  "prettier-plugin-packagejson": "^2.3.0",
63
64
  "tui-jsdoc-template": "^1.2.2",
64
65
  "typescript": "^5.5.4",
65
- "vitest": "^2.0.5",
66
+ "vitest": "^3.0.2",
66
67
  "yeoman-environment": "^4.4.1",
67
68
  "yeoman-generator": "^7.3.2"
68
69
  },
@@ -70,8 +71,8 @@
70
71
  "@yeoman/adapter": "^1.6.0 || ^2.0.0",
71
72
  "@yeoman/types": "^1.5.0",
72
73
  "mem-fs": "^4.1.0",
73
- "yeoman-environment": "^4.0.0",
74
- "yeoman-generator": "^7.0.0"
74
+ "yeoman-environment": "^4.0.0 || ^5.0.0-beta.0",
75
+ "yeoman-generator": "^7.0.0 || ^8.0.0-beta.0"
75
76
  },
76
77
  "peerDependenciesMeta": {
77
78
  "yeoman-environment": {