Skip to content

Commit

Permalink
chore: add tests for share plugin recursive search
Browse files Browse the repository at this point in the history
  • Loading branch information
robdonn committed Jun 28, 2024
1 parent 98830bf commit 0ca06ff
Show file tree
Hide file tree
Showing 16 changed files with 134 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
it('should provide and consume a normal nested library async', async () => {
expect(await import('lib1')).toEqual(
expect.objectContaining({
default: 'lib1',
}),
);
});

it('should provide and consume a normal library async', async () => {
expect(await import('lib4')).toEqual(
expect.objectContaining({
default: 'lib4',
}),
);
});

it('should provide and consume a renamed nested library sync', () => {
expect(require('lib-two')).toEqual(
expect.objectContaining({
default: 'lib2',
}),
);
});

it('should provide and consume a renamed library sync', () => {
expect(require('lib-five')).toEqual(
expect.objectContaining({
default: 'lib5',
}),
);
});

it('should provide and consume a normal nested library async in a separate shareScope', async () => {
expect(await import('lib3')).toEqual(
expect.objectContaining({
default: 'lib3',
}),
);
expect(
__webpack_share_scopes__.default && __webpack_share_scopes__.default.lib3,
).toBe(undefined);
expect(typeof __webpack_share_scopes__.other.lib3).toBe('object');
});

it('should provide and consume a relative request async', async () => {
expect(await import('./relative1')).toEqual(
expect.objectContaining({
default: 'rel1',
}),
);
});

it('should consume a remapped relative request async', async () => {
if (Math.random() < 0) require('store');
expect(await import('./relative2')).toEqual(
expect.objectContaining({
default: 'store',
}),
);
});

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"devDependencies": {
"lib3": "^1.1.0"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export default 'rel1';
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export default 'rel2';

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"devDependencies": {
"lib3": "^1.1.0"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
const { SharePlugin } = require('../../../../dist/src');

module.exports = {
mode: 'development',
devtool: false,
context: `${__dirname}/app1`,
plugins: [
new SharePlugin({
shared: {
lib1: '^1.0.0',
'lib-two': {
import: 'lib2',
requiredVersion: '^1.0.0',
version: '1.3.4',
strictVersion: true,
eager: true,
},
lib3: {
shareScope: 'other',
},
lib4: '^1.0.0',
'lib-five': {
import: 'lib5',
requiredVersion: '^1.0.0',
version: '1.3.4',
strictVersion: true,
eager: true,
},
'./relative1': {
import: './relative1',
version: false,
},
'./relative2': {
import: false,
shareKey: 'store',
version: '0',
requiredVersion: false,
strictVersion: true,
},
store: '0',
},
}),
],
};

0 comments on commit 0ca06ff

Please sign in to comment.