Skip to content

Commit d162b0e

Browse files
committed
Remove use of mockery
1 parent e07ff04 commit d162b0e

6 files changed

Lines changed: 48 additions & 38 deletions

File tree

lib/utils/run.js

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
const execa = require('execa');
44
const debug = require('debug')('ember-try:utils:run');
55

6-
module.exports = async function run(command, args, _options) {
6+
let runFunction = originalRunFunction;
7+
8+
async function originalRunFunction(command, args, _options) {
79
let options = Object.assign({ stdio: 'inherit', shell: true }, _options);
810

911
if (process.env.SHUT_UP) {
@@ -21,4 +23,22 @@ module.exports = async function run(command, args, _options) {
2123
// TODO: should refactor this to throw an error (easier to track down stack traces)
2224
throw error.exitCode;
2325
}
24-
};
26+
}
27+
28+
function run(command, args, options) {
29+
return runFunction(command, args, options);
30+
}
31+
32+
function mockRun(mockedRunFunction) {
33+
runFunction = mockedRunFunction;
34+
}
35+
36+
function restoreRun() {
37+
runFunction = originalRunFunction;
38+
}
39+
40+
module.exports = run;
41+
42+
module.exports._originalRunFunction = originalRunFunction;
43+
module.exports._mockRun = mockRun;
44+
module.exports._restoreRun = restoreRun;

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@
6060
"eslint-config-prettier": "^9.1.0",
6161
"eslint-plugin-n": "^17.15.0",
6262
"mocha": "^10.8.2",
63-
"mockery": "^2.1.0",
6463
"nyc": "^17.1.0",
6564
"prettier": "^3.3.3",
6665
"release-it": "^17.10.0",

test/helpers/generate-mock-run.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
'use strict';
22

3+
const { _originalRunFunction } = require('../../lib/utils/run');
4+
35
module.exports = function generateMockRun() {
46
let mockedRuns = [];
57
let options = { allowPassthrough: true };
@@ -39,7 +41,7 @@ function isCommandMocked(mockedRun, actualCommand, actualArgs) {
3941
}
4042

4143
function passthrough() {
42-
return require('../../lib/utils/run');
44+
return _originalRunFunction;
4345
}
4446

4547
function mockedCommandIsEmberAndArgumentsMatch(

test/tasks/try-each-test.js

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const path = require('path');
66
const fs = require('fs-extra');
77
const fixturePackage = require('../fixtures/package.json');
88
const writeJSONFile = require('../helpers/write-json-file');
9-
const mockery = require('mockery');
9+
const { _mockRun, _restoreRun } = require('../../lib/utils/run');
1010

1111
/* Some of the tests in this file intentionally DO NOT stub dependency manager adapter*/
1212
const StubDependencyAdapter = require('../helpers/stub-dependency-manager-adapter');
@@ -53,16 +53,11 @@ describe('tryEach', () => {
5353
beforeEach(() => {
5454
tmpdir = tmp.in(tmproot);
5555
process.chdir(tmpdir);
56-
mockery.enable({
57-
warnOnUnregistered: false,
58-
useCleanCache: true,
59-
});
6056
require('chalk').level = 0;
6157
});
6258

6359
afterEach(() => {
64-
mockery.deregisterAll();
65-
mockery.disable();
60+
_restoreRun();
6661
process.chdir(root);
6762
return fs.remove(tmproot);
6863
});
@@ -75,7 +70,7 @@ describe('tryEach', () => {
7570
return Promise.resolve(0);
7671
});
7772

78-
mockery.registerMock('./run', mockedRun);
73+
_mockRun(mockedRun);
7974

8075
let output = [];
8176
let outputFn = function (log) {
@@ -130,7 +125,7 @@ describe('tryEach', () => {
130125
}
131126
});
132127

133-
mockery.registerMock('./run', mockedRun);
128+
_mockRun(mockedRun);
134129

135130
let output = [];
136131
let outputFn = function (log) {
@@ -194,7 +189,8 @@ describe('tryEach', () => {
194189
},
195190
},
196191
]);
197-
mockery.registerMock('./run', mockedRun);
192+
193+
_mockRun(mockedRun);
198194

199195
let output = [];
200196
let outputFn = function (log) {
@@ -242,7 +238,7 @@ describe('tryEach', () => {
242238
return Promise.resolve(0);
243239
});
244240

245-
mockery.registerMock('./run', mockedRun);
241+
_mockRun(mockedRun);
246242

247243
let output = [];
248244
let outputFn = function (log) {
@@ -295,7 +291,8 @@ describe('tryEach', () => {
295291
let mockedRun = generateMockRun('ember test', () => {
296292
return Promise.reject(1);
297293
});
298-
mockery.registerMock('./run', mockedRun);
294+
295+
_mockRun(mockedRun);
299296

300297
let output = [];
301298
let outputFn = function (log) {
@@ -345,7 +342,8 @@ describe('tryEach', () => {
345342
let mockedRun = generateMockRun('ember test', () => {
346343
return Promise.reject(1);
347344
});
348-
mockery.registerMock('./run', mockedRun);
345+
346+
_mockRun(mockedRun);
349347

350348
let output = [];
351349
let outputFn = function (log) {
@@ -396,7 +394,8 @@ describe('tryEach', () => {
396394
let mockedRun = generateMockRun('ember test', () => {
397395
return Promise.resolve(0);
398396
});
399-
mockery.registerMock('./run', mockedRun);
397+
398+
_mockRun(mockedRun);
400399

401400
let output = [];
402401
let outputFn = function (log) {
@@ -451,7 +450,7 @@ describe('tryEach', () => {
451450
return Promise.resolve(0);
452451
});
453452

454-
mockery.registerMock('./run', mockedRun);
453+
_mockRun(mockedRun);
455454

456455
let output = [];
457456
let outputFn = function (log) {
@@ -498,7 +497,8 @@ describe('tryEach', () => {
498497
ranPassedInCommand = true;
499498
return Promise.resolve(0);
500499
});
501-
mockery.registerMock('./run', mockedRun);
500+
501+
_mockRun(mockedRun);
502502

503503
let output = [];
504504
let outputFn = function (log) {
@@ -570,7 +570,8 @@ describe('tryEach', () => {
570570
},
571571
},
572572
]);
573-
mockery.registerMock('./run', mockedRun);
573+
574+
_mockRun(mockedRun);
574575

575576
let output = [];
576577
let outputFn = function (log) {
@@ -673,7 +674,8 @@ describe('tryEach', () => {
673674
actualOptions.push(opts);
674675
return Promise.resolve(0);
675676
});
676-
mockery.registerMock('./run', mockedRun);
677+
678+
_mockRun(mockedRun);
677679

678680
let output = [];
679681
let outputFn = function (log) {

test/utils/run-command-test.js

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,11 @@
11
'use strict';
22

33
const expect = require('chai').expect;
4-
const mockery = require('mockery');
4+
const { _mockRun, _restoreRun } = require('../../lib/utils/run');
55

66
describe('utils/run-command', () => {
7-
beforeEach(() => {
8-
mockery.enable({
9-
warnOnUnregistered: false,
10-
useCleanCache: true,
11-
});
12-
});
13-
147
afterEach(() => {
15-
mockery.deregisterAll();
16-
mockery.disable();
8+
_restoreRun();
179
});
1810

1911
it('passes arguments to run', () => {
@@ -26,7 +18,7 @@ describe('utils/run-command', () => {
2618
return Promise.resolve(0);
2719
};
2820

29-
mockery.registerMock('./run', mockedRun);
21+
_mockRun(mockedRun);
3022

3123
let runCommand = require('../../lib/utils/run-command');
3224

yarn.lock

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6328,11 +6328,6 @@ mocha@^10.8.2:
63286328
yargs-parser "^20.2.9"
63296329
yargs-unparser "^2.0.0"
63306330

6331-
mockery@^2.1.0:
6332-
version "2.1.0"
6333-
resolved "https://registry.yarnpkg.com/mockery/-/mockery-2.1.0.tgz#5b0aef1ff564f0f8139445e165536c7909713470"
6334-
integrity sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==
6335-
63366331
morgan@^1.10.0:
63376332
version "1.10.0"
63386333
resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7"

0 commit comments

Comments
 (0)