From e3465a5dde695f316fec13dfde477660b402fdb8 Mon Sep 17 00:00:00 2001
From: Winnie Hellmann <winnie@gitlab.com>
Date: Mon, 1 Apr 2019 18:55:57 +0000
Subject: [PATCH] Add jQuery matchers to Jest

---
 package.json                                              | 1 +
 .../reports/components/report_section_spec.js             | 2 +-
 spec/frontend/test_setup.js                               | 8 ++++++++
 yarn.lock                                                 | 5 +++++
 4 files changed, 15 insertions(+), 1 deletion(-)
 rename spec/{javascripts => frontend}/reports/components/report_section_spec.js (98%)

diff --git a/package.json b/package.json
index 90fcfe01438..f80f9b3690b 100644
--- a/package.json
+++ b/package.json
@@ -144,6 +144,7 @@
     "babel-plugin-rewire": "^1.2.0",
     "chalk": "^2.4.1",
     "commander": "^2.18.0",
+    "custom-jquery-matchers": "^2.1.0",
     "docdash": "^1.0.2",
     "eslint": "~5.9.0",
     "eslint-import-resolver-jest": "^2.1.1",
diff --git a/spec/javascripts/reports/components/report_section_spec.js b/spec/frontend/reports/components/report_section_spec.js
similarity index 98%
rename from spec/javascripts/reports/components/report_section_spec.js
rename to spec/frontend/reports/components/report_section_spec.js
index b02af8baaec..3b609484b9e 100644
--- a/spec/javascripts/reports/components/report_section_spec.js
+++ b/spec/frontend/reports/components/report_section_spec.js
@@ -1,6 +1,6 @@
 import Vue from 'vue';
 import reportSection from '~/reports/components/report_section.vue';
-import mountComponent, { mountComponentWithSlots } from 'spec/helpers/vue_mount_component_helper';
+import mountComponent, { mountComponentWithSlots } from 'helpers/vue_mount_component_helper';
 
 describe('Report section', () => {
   let vm;
diff --git a/spec/frontend/test_setup.js b/spec/frontend/test_setup.js
index 1e3c28e25eb..f09bcb5407e 100644
--- a/spec/frontend/test_setup.js
+++ b/spec/frontend/test_setup.js
@@ -1,4 +1,5 @@
 import Vue from 'vue';
+import * as jqueryMatchers from 'custom-jquery-matchers';
 import Translate from '~/vue_shared/translate';
 import axios from '~/lib/utils/axios_utils';
 import { initializeTestTimeout } from './helpers/timeout';
@@ -44,3 +45,10 @@ Object.assign(global, {
   preloadFixtures() {},
   setFixtures: setHTMLFixture,
 });
+
+// custom-jquery-matchers was written for an old Jest version, we need to make it compatible
+Object.entries(jqueryMatchers).forEach(([matcherName, matcherFactory]) => {
+  expect.extend({
+    [matcherName]: matcherFactory().compare,
+  });
+});
diff --git a/yarn.lock b/yarn.lock
index 29f535830ea..846e29862f1 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2742,6 +2742,11 @@ custom-event@~1.0.0:
   resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425"
   integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=
 
+custom-jquery-matchers@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/custom-jquery-matchers/-/custom-jquery-matchers-2.1.0.tgz#e5988fa9715c416b0986b372563f872d9e91e024"
+  integrity sha512-f2vQrncnwqbeDne9ag/BRjrmG9BxIEKnZ9Z8TyG5l9B8wwyINWd7LvuHDlTkMPqLTd3ghcvqFoTsxjhOP371JQ==
+
 cyclist@~0.2.2:
   version "0.2.2"
   resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
-- 
2.30.9