Welcome to mirror list, hosted at ThFree Co, Russian Federation.

web_worker_transformer.js « __helpers__ « frontend « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 86be856f7b7a2c8a66a718c2a60445543b78604a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* eslint-disable import/no-commonjs */
const { createTransformer } = require('babel-jest');

// This Jest will transform the code of a WebWorker module into a FakeWebWorker subclass.
// This is meant to mirror Webpack's [`worker-loader`][1].
// [1]: https://webpack.js.org/loaders/worker-loader/
module.exports = {
  process: (contentArg, filename, ...args) => {
    const { code: content } = createTransformer().process(contentArg, filename, ...args);

    const jestTransformedWorkerCode = `const { FakeWebWorker } = require("helpers/web_worker_fake");
    module.exports = class JestTransformedWorker extends FakeWebWorker {
      constructor() {
        super(${JSON.stringify(filename)}, ${JSON.stringify(content)});
      }
    };`;

    return {
      code: jestTransformedWorkerCode,
    };
  },
};