Skip to content

Commit 46d9723

Browse files
committed
chore: promisify tests callbacks
1 parent dd8bdba commit 46d9723

File tree

4 files changed

+518
-399
lines changed

4 files changed

+518
-399
lines changed

test/helpers.spec.ts

+79-58
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import process from 'node:process';
55
import { createRequire } from 'node:module';
66
import { existsSync } from 'node:fs';
77
import { mock } from 'node:test';
8+
import { promisify as promisify_ } from 'node:util';
89
import Generator from 'yeoman-generator';
910
import { afterEach, beforeEach, describe, expect, it } from 'esmocha';
1011
import type Environment from 'yeoman-environment';
@@ -13,6 +14,8 @@ import helpers from '../src/helpers.js';
1314
import { TestAdapter } from '../src/adapter.js';
1415
import RunContext from '../src/run-context.js';
1516

17+
/* Remove argument from promisify return */
18+
const promisify = function_ => () => promisify_(function_)();
1619
const require = createRequire(import.meta.url);
1720
const __dirname = dirname(fileURLToPath(import.meta.url));
1821

@@ -162,21 +165,27 @@ describe('yeoman-test', () => {
162165

163166
describe('.run()', () => {
164167
describe('with a generator', () => {
165-
it('return a RunContext object', done => {
166-
const context = helpers.run(helpers.createDummyGenerator());
167-
assert(context instanceof RunContext);
168-
context.on('end', done);
169-
});
168+
it(
169+
'return a RunContext object',
170+
promisify(done => {
171+
const context = helpers.run(helpers.createDummyGenerator());
172+
assert(context instanceof RunContext);
173+
context.on('end', done);
174+
}),
175+
);
170176
});
171177

172178
describe('with a namespace', () => {
173-
it('return a RunContext object', done => {
174-
const context = helpers.run('simple:app').withEnvironment(environment => {
175-
environment.register(require.resolve('./fixtures/generator-simple/app'));
176-
});
177-
assert(context instanceof RunContext);
178-
context.on('end', done);
179-
});
179+
it(
180+
'return a RunContext object',
181+
promisify(done => {
182+
const context = helpers.run('simple:app').withEnvironment(environment => {
183+
environment.register(require.resolve('./fixtures/generator-simple/app'));
184+
});
185+
assert(context instanceof RunContext);
186+
context.on('end', done);
187+
}),
188+
);
180189
});
181190

182191
it('pass settings to RunContext', () => {
@@ -192,55 +201,67 @@ describe('yeoman-test', () => {
192201
assert.equal(runContext.envOptions, environmentOptions);
193202
});
194203

195-
it('catch env errors', done => {
196-
helpers
197-
.run(
198-
class extends helpers.createDummyGenerator() {
199-
throws() {
200-
this.env.emit('error', new Error('an error'));
201-
}
202-
},
203-
)
204-
.on('error', _ => {
205-
done();
206-
});
207-
});
208-
209-
it('catch generator emitted errors', done => {
210-
helpers
211-
.run(
212-
class extends helpers.createDummyGenerator() {
213-
throws() {
214-
this.emit('error', new Error('an error'));
215-
}
216-
},
217-
)
218-
.on('error', _ => {
219-
done();
220-
});
221-
});
222-
223-
it('catch generator thrown errors', done => {
224-
helpers
225-
.run(
226-
class extends helpers.createDummyGenerator() {
227-
throws() {
228-
throw new Error('Some error.');
229-
}
230-
},
231-
)
232-
.on('error', _ => {
233-
done();
234-
});
235-
});
204+
it(
205+
'catch env errors',
206+
promisify(done => {
207+
helpers
208+
.run(
209+
class extends helpers.createDummyGenerator() {
210+
throws() {
211+
this.env.emit('error', new Error('an error'));
212+
}
213+
},
214+
)
215+
.on('error', _ => {
216+
done();
217+
});
218+
}),
219+
);
220+
221+
it(
222+
'catch generator emitted errors',
223+
promisify(done => {
224+
helpers
225+
.run(
226+
class extends helpers.createDummyGenerator() {
227+
throws() {
228+
this.emit('error', new Error('an error'));
229+
}
230+
},
231+
)
232+
.on('error', _ => {
233+
done();
234+
});
235+
}),
236+
);
237+
238+
it(
239+
'catch generator thrown errors',
240+
promisify(done => {
241+
helpers
242+
.run(
243+
class extends helpers.createDummyGenerator() {
244+
throws() {
245+
throw new Error('Some error.');
246+
}
247+
},
248+
)
249+
.on('error', _ => {
250+
done();
251+
});
252+
}),
253+
);
236254

237255
// This is a workaround for corner case were an error is not correctly emitted
238256
// See https://github.com/yeoman/generator/pull/1155
239-
it('catch run errors', done => {
240-
helpers.run(class extends Generator {}, {}, { catchGeneratorError: true }).on('error', _ => {
241-
done();
242-
});
243-
});
257+
it(
258+
'catch run errors',
259+
promisify(done => {
260+
helpers.run(class extends Generator {}, {}, { catchGeneratorError: true }).on('error', _ => {
261+
done();
262+
});
263+
}),
264+
);
244265

245266
describe('with files', () => {
246267
it('write files to mem-fs', async () => {

test/run-context-environment.spec.ts

+19-19
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import process from 'node:process';
55
import { createRequire } from 'node:module';
66
import { mock } from 'node:test';
77
import { type LookupOptions } from '@yeoman/types';
8-
import { afterEach, beforeEach, describe, it } from 'esmocha';
8+
import { after as afterAll, afterEach, before as beforeAll, beforeEach, describe, it } from 'esmocha';
99
import helpers from '../src/helpers.js';
1010
import RunContext from '../src/run-context.js';
1111
import RunResult from '../src/run-result.js';
@@ -46,10 +46,10 @@ describe('RunContext running environment', () => {
4646
});
4747

4848
describe('with string', () => {
49-
before(() => {
49+
beforeAll(() => {
5050
gen = require.resolve('./fixtures/generator-simple/app');
5151
});
52-
after(() => {
52+
afterAll(() => {
5353
gen = undefined;
5454
});
5555

@@ -83,10 +83,10 @@ describe('RunContext running environment', () => {
8383
});
8484

8585
describe('with generator', () => {
86-
before(() => {
86+
beforeAll(() => {
8787
gen = SimpleApp;
8888
});
89-
after(() => {
89+
afterAll(() => {
9090
gen = undefined;
9191
});
9292

@@ -98,7 +98,7 @@ describe('RunContext running environment', () => {
9898
});
9999

100100
describe('with promised generator', () => {
101-
before(() => {
101+
beforeAll(() => {
102102
gen = 'promised-generator';
103103
build = false;
104104
});
@@ -108,7 +108,7 @@ describe('RunContext running environment', () => {
108108
mock.method(environment, 'create', () => Promise.resolve(new FakeGenerator([], { env: environment })));
109109
});
110110
});
111-
after(() => {
111+
afterAll(() => {
112112
gen = undefined;
113113
build = true;
114114
});
@@ -121,10 +121,10 @@ describe('RunContext running environment', () => {
121121
});
122122

123123
describe('with path', () => {
124-
before(() => {
124+
beforeAll(() => {
125125
gen = require.resolve('./fixtures/generator-simple/app');
126126
});
127-
after(() => {
127+
afterAll(() => {
128128
gen = undefined;
129129
});
130130

@@ -142,11 +142,11 @@ describe('RunContext running environment', () => {
142142
});
143143

144144
describe('with lookups with packagePaths', () => {
145-
before(() => {
145+
beforeAll(() => {
146146
lookups = [{ packagePaths: [path.resolve('./fixtures/generator-simple')] }];
147147
gen = 'simple:app';
148148
});
149-
after(() => {
149+
afterAll(() => {
150150
lookups = [];
151151
gen = undefined;
152152
});
@@ -165,18 +165,18 @@ describe('RunContext running environment', () => {
165165
});
166166

167167
describe('with lookups with npmPaths', () => {
168-
before(() => {
168+
beforeAll(() => {
169169
lookups = [{ npmPaths: [path.resolve('./fixtures/')] }];
170170
});
171-
after(() => {
171+
afterAll(() => {
172172
lookups = [];
173173
});
174174

175175
describe('and simple generator', () => {
176-
before(() => {
176+
beforeAll(() => {
177177
gen = 'simple:app';
178178
});
179-
after(() => {
179+
afterAll(() => {
180180
gen = undefined;
181181
});
182182

@@ -194,10 +194,10 @@ describe('RunContext running environment', () => {
194194
});
195195

196196
describe('and generator that throws', () => {
197-
before(() => {
197+
beforeAll(() => {
198198
gen = 'simple:throwing';
199199
});
200-
after(() => {
200+
afterAll(() => {
201201
gen = undefined;
202202
});
203203

@@ -212,12 +212,12 @@ describe('RunContext running environment', () => {
212212
});
213213

214214
describe('with composing generator', () => {
215-
before(() => {
215+
beforeAll(() => {
216216
lookups = [{ packagePaths: [path.resolve('./fixtures/generator-simple')] }];
217217
gen = 'simple:composing';
218218
build = false;
219219
});
220-
after(() => {
220+
afterAll(() => {
221221
lookups = [];
222222
gen = undefined;
223223
build = true;

0 commit comments

Comments
 (0)