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

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/__helpers__/web_worker_transformer.js')
-rw-r--r--spec/frontend/__helpers__/web_worker_transformer.js18
1 files changed, 18 insertions, 0 deletions
diff --git a/spec/frontend/__helpers__/web_worker_transformer.js b/spec/frontend/__helpers__/web_worker_transformer.js
new file mode 100644
index 00000000000..5b2f7d77947
--- /dev/null
+++ b/spec/frontend/__helpers__/web_worker_transformer.js
@@ -0,0 +1,18 @@
+/* eslint-disable import/no-commonjs */
+const babelJestTransformer = 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 } = babelJestTransformer.process(contentArg, filename, ...args);
+
+ return `const { FakeWebWorker } = require("helpers/web_worker_fake");
+ module.exports = class JestTransformedWorker extends FakeWebWorker {
+ constructor() {
+ super(${JSON.stringify(filename)}, ${JSON.stringify(content)});
+ }
+ };`;
+ },
+};