[Fixes # 4533] Replaced cpx2 with local test module (#5077)

Co-authored-by: Marc Pichler <marc.pichler@dynatrace.com>
Co-authored-by: Raphaël Thériault <113933910+raphael-theriault-swi@users.noreply.github.com>
Co-authored-by: Jakub Ziółkowski <jakub@rho.co>
Co-authored-by: David Luna <david.luna@elastic.co>
Co-authored-by: Trent Mick <trentm@gmail.com>
Co-authored-by: Marylia Gutierrez <marylia.gutierrez@grafana.com>
Co-authored-by: Mend Renovate <bot@renovateapp.com>
Co-authored-by: Mercy Bassey <57226464+mercybassey@users.noreply.github.com>
Co-authored-by: OpenTelemetry Bot <107717825+opentelemetrybot@users.noreply.github.com>
This commit is contained in:
Annosha 2024-11-04 17:54:09 +05:00 committed by GitHub
parent eb3ca4fb07
commit 2b73d37c9c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 44 additions and 15 deletions

View File

@ -93,7 +93,7 @@
"babel-loader": "8.4.1",
"babel-plugin-istanbul": "7.0.0",
"codecov": "3.8.3",
"cpx2": "2.0.0",
"cross-var": "1.1.0",
"karma": "6.4.4",
"karma-chrome-launcher": "3.1.0",

View File

@ -39,8 +39,8 @@ describe('RequireInTheMiddleSingleton', () => {
const onRequireFsPromisesStub = makeOnRequiresStub('fs-promises');
const onRequireCodecovStub = makeOnRequiresStub('codecov');
const onRequireCodecovLibStub = makeOnRequiresStub('codecov-lib');
const onRequireCpxStub = makeOnRequiresStub('cpx2');
const onRequireCpxLibStub = makeOnRequiresStub('cpx2-lib');
const onRequireCpxStub = makeOnRequiresStub('test-non-core-module');
const onRequireCpxLibStub = makeOnRequiresStub('test-non-core-module-lib');
before(() => {
requireInTheMiddleSingleton.register('fs', onRequireFsStub);
@ -53,9 +53,12 @@ describe('RequireInTheMiddleSingleton', () => {
'codecov/lib/codecov.js',
onRequireCodecovLibStub
);
requireInTheMiddleSingleton.register('cpx2', onRequireCpxStub);
requireInTheMiddleSingleton.register(
'cpx2/lib/copy-sync.js',
'test-non-core-module',
onRequireCpxStub
);
requireInTheMiddleSingleton.register(
'test-non-core-module/lib/copy-sync.js',
onRequireCpxLibStub
);
});
@ -120,8 +123,12 @@ describe('RequireInTheMiddleSingleton', () => {
describe('non-core module', () => {
describe('AND module name matches', () => {
const baseDir = path.dirname(require.resolve('codecov'));
const modulePath = path.join('codecov', 'lib', 'codecov.js');
const baseDir = path.normalize(
path.dirname(require.resolve('codecov'))
);
const modulePath = path.normalize(
path.join('codecov', 'lib', 'codecov.js')
);
it('should call `onRequire`', () => {
const exports = require('codecov');
assert.deepStrictEqual(exports.__ritmOnRequires, ['codecov']);
@ -149,20 +156,29 @@ describe('RequireInTheMiddleSingleton', () => {
describe('non-core module with sub-path', () => {
describe('AND module name matches', () => {
const baseDir = path.resolve(
path.dirname(require.resolve('cpx2')),
'..'
const baseDir = path.normalize(
path.resolve(
path.dirname(require.resolve('test-non-core-module')),
'..'
)
);
const modulePath = path.normalize(
path.join('test-non-core-module', 'lib', 'copy-sync.js')
);
const modulePath = path.join('cpx2', 'lib', 'copy-sync.js');
it('should call `onRequire`', () => {
const exports = require('cpx2/lib/copy-sync');
const exports = require('test-non-core-module/lib/copy-sync');
assert.deepStrictEqual(exports.__ritmOnRequires, [
'cpx2',
'cpx2-lib',
'test-non-core-module',
'test-non-core-module-lib',
]);
sinon.assert.calledWithMatch(
onRequireCpxStub,
{ __ritmOnRequires: ['cpx2', 'cpx2-lib'] },
{
__ritmOnRequires: [
'test-non-core-module',
'test-non-core-module-lib',
],
},
modulePath,
baseDir
);

View File

@ -0,0 +1,3 @@
module.exports = function copySync() {
console.log('Mock copySync called');
};

View File

@ -0,0 +1,4 @@
module.exports = {
copy: require('./lib/copy-sync') // matches the original API
};

View File

@ -0,0 +1,6 @@
{
"name": "test-non-core-module",
"version": "0.0.1",
"description": "Local test module for require-in-the-middle singleton",
"main": "lib/index.js"
}