From 0fa6168229162f43ef4e1896670f0866e588d579 Mon Sep 17 00:00:00 2001
From: Vitaly Slobodin <vslobodin@gitlab.com>
Date: Thu, 29 Sep 2022 12:57:41 +0200
Subject: [PATCH] Replace outdated Jest GraphQL transformer

"jest-transform-graphql" package was published last time 5 years ago.
No updates since that time and it's not compatible with Jest 28.
Replace it with our minimal implementation for the
upcoming Jest 28 upgrade.
---
 jest.config.base.js                              | 2 +-
 package.json                                     | 1 -
 spec/frontend/__helpers__/graphql_transformer.js | 8 ++++++++
 yarn.lock                                        | 5 -----
 4 files changed, 9 insertions(+), 7 deletions(-)
 create mode 100644 spec/frontend/__helpers__/graphql_transformer.js

diff --git a/jest.config.base.js b/jest.config.base.js
index b631c2009d96c..a6c22a8877cb6 100644
--- a/jest.config.base.js
+++ b/jest.config.base.js
@@ -174,7 +174,7 @@ module.exports = (path, options = {}) => {
     restoreMocks: true,
     slowTestThreshold: process.env.CI ? 6000 : 500,
     transform: {
-      '^.+\\.(gql|graphql)$': 'jest-transform-graphql',
+      '^.+\\.(gql|graphql)$': './spec/frontend/__helpers__/graphql_transformer.js',
       '^.+_worker\\.js$': './spec/frontend/__helpers__/web_worker_transformer.js',
       '^.+\\.js$': 'babel-jest',
       '^.+\\.vue$': '@vue/vue2-jest',
diff --git a/package.json b/package.json
index b08616d586c18..0a5d1df542205 100644
--- a/package.json
+++ b/package.json
@@ -231,7 +231,6 @@
     "jest-jasmine2": "^27.5.1",
     "jest-junit": "^12.0.0",
     "jest-raw-loader": "^1.0.1",
-    "jest-transform-graphql": "^2.1.0",
     "jest-util": "^27.5.1",
     "markdownlint-cli": "0.32.2",
     "miragejs": "^0.1.40",
diff --git a/spec/frontend/__helpers__/graphql_transformer.js b/spec/frontend/__helpers__/graphql_transformer.js
new file mode 100644
index 0000000000000..e776e2ea6aca5
--- /dev/null
+++ b/spec/frontend/__helpers__/graphql_transformer.js
@@ -0,0 +1,8 @@
+/* eslint-disable import/no-commonjs */
+const loader = require('graphql-tag/loader');
+
+module.exports = {
+  process(src) {
+    return loader.call({ cacheable() {} }, src);
+  },
+};
diff --git a/yarn.lock b/yarn.lock
index 187e18182c2a7..1f0556dd73d78 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7396,11 +7396,6 @@ jest-snapshot@^27.5.1:
     pretty-format "^27.5.1"
     semver "^7.3.2"
 
-jest-transform-graphql@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/jest-transform-graphql/-/jest-transform-graphql-2.1.0.tgz#903cb66bb27bc2772fd3e5dd4f7e9b57230f5829"
-  integrity sha1-kDy2a7J7wncv0+XdT36bVyMPWCk=
-
 jest-util@^27.5.1:
   version "27.5.1"
   resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9"
-- 
GitLab