| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | const path = require(`path`);let PnpWebpackPlugin = require(`./index`);function makeResolver(resolverPlugins, options = {}) {  const {    NodeJsInputFileSystem,    CachedInputFileSystem,    ResolverFactory  } = require('enhanced-resolve');  const resolver = ResolverFactory.createResolver({    fileSystem: new CachedInputFileSystem(new NodeJsInputFileSystem(), 4000),    extensions: ['.js', '.json'],    ... options,  });  for (const {apply} of resolverPlugins)    apply(resolver);  return resolver;}function makeRequest(resolver, request, issuer) {  return new Promise((resolve, reject) => {    resolver.resolve({}, issuer, request, {}, (err, filepath) => {      if (err) {        reject(err);      } else {        resolve(filepath);      }    });  });}describe(`Regular Plugin`, () => {  it(`should correctly resolve a relative require`, async () => {    const resolver = makeResolver([PnpWebpackPlugin]);    const resolution = await makeRequest(resolver, `./index.js`, __dirname);    expect(resolution).toEqual(path.normalize(`${__dirname}/index.js`));  });  it(`shouldn't prevent the 'extensions' option from working`, async () => {    const resolver = makeResolver([PnpWebpackPlugin]);    const resolution = await makeRequest(resolver, `./index`, __dirname);    expect(resolution).toEqual(path.normalize(`${__dirname}/index.js`));  });  it(`shouldn't prevent the 'alias' option from working`, async () => {    const resolver = makeResolver([PnpWebpackPlugin], {alias: {[`foo`]: `./fixtures/index.js`}});    const resolution = await makeRequest(resolver, `foo`, __dirname);    expect(resolution).toEqual(path.normalize(`${__dirname}/fixtures/index.js`));  });  it(`shouldn't prevent the 'modules' option from working`, async () => {    const resolver = makeResolver([PnpWebpackPlugin], {modules: [`./fixtures`]});    const resolution = await makeRequest(resolver, `file`, __dirname);    expect(resolution).toEqual(path.normalize(`${__dirname}/fixtures/file.js`));  });});
 |