diff options
Diffstat (limited to 'spec/frontend/test_setup.js')
-rw-r--r-- | spec/frontend/test_setup.js | 98 |
1 files changed, 5 insertions, 93 deletions
diff --git a/spec/frontend/test_setup.js b/spec/frontend/test_setup.js index 40f68c6385f..4fe51db8412 100644 --- a/spec/frontend/test_setup.js +++ b/spec/frontend/test_setup.js @@ -1,30 +1,10 @@ -import { config as testUtilsConfig } from '@vue/test-utils'; -import * as jqueryMatchers from 'custom-jquery-matchers'; -import Vue from 'vue'; -import 'jquery'; -import { setGlobalDateToFakeDate } from 'helpers/fake_date'; -import setWindowLocation from 'helpers/set_window_location_helper'; -import { TEST_HOST } from 'helpers/test_constants'; -import Translate from '~/vue_shared/translate'; -import { loadHTMLFixture, setHTMLFixture } from './__helpers__/fixtures'; -import { initializeTestTimeout } from './__helpers__/timeout'; -import customMatchers from './matchers'; -import { setupManualMocks } from './mocks/mocks_helper'; +/* Setup for unit test environment */ +import 'helpers/shared_test_setup'; +import { initializeTestTimeout } from 'helpers/timeout'; -import './__helpers__/dom_shims'; -import './__helpers__/jquery'; -import '~/commons/bootstrap'; +jest.mock('~/lib/utils/axios_utils', () => jest.requireActual('helpers/mocks/axios_utils')); -// This module has some fairly decent visual test coverage in it's own repository. -jest.mock('@gitlab/favicon-overlay'); - -process.on('unhandledRejection', global.promiseRejectionHandler); - -setupManualMocks(); - -// Fake the `Date` for the rest of the jest spec runtime environment. -// https://gitlab.com/gitlab-org/gitlab/-/merge_requests/39496#note_503084332 -setGlobalDateToFakeDate(); +initializeTestTimeout(process.env.CI ? 6000 : 500); afterEach(() => // give Promises a bit more time so they fail the right test @@ -33,71 +13,3 @@ afterEach(() => jest.runOnlyPendingTimers(); }), ); - -initializeTestTimeout(process.env.CI ? 6000 : 500); - -Vue.config.devtools = false; -Vue.config.productionTip = false; - -Vue.use(Translate); - -// convenience wrapper for migration from Karma -Object.assign(global, { - loadFixtures: loadHTMLFixture, - setFixtures: setHTMLFixture, -}); - -const JQUERY_MATCHERS_TO_EXCLUDE = ['toHaveLength', 'toExist']; - -// custom-jquery-matchers was written for an old Jest version, we need to make it compatible -Object.entries(jqueryMatchers).forEach(([matcherName, matcherFactory]) => { - // Exclude these jQuery matchers - if (JQUERY_MATCHERS_TO_EXCLUDE.includes(matcherName)) { - return; - } - - expect.extend({ - [matcherName]: matcherFactory().compare, - }); -}); - -expect.extend(customMatchers); - -testUtilsConfig.deprecationWarningHandler = (method, message) => { - const ALLOWED_DEPRECATED_METHODS = [ - // https://gitlab.com/gitlab-org/gitlab/-/issues/295679 - 'finding components with `find` or `get`', - - // https://gitlab.com/gitlab-org/gitlab/-/issues/295680 - 'finding components with `findAll`', - ]; - if (!ALLOWED_DEPRECATED_METHODS.includes(method)) { - global.console.error(message); - } -}; - -Object.assign(global, { - requestIdleCallback(cb) { - const start = Date.now(); - return setTimeout(() => { - cb({ - didTimeout: false, - timeRemaining: () => Math.max(0, 50 - (Date.now() - start)), - }); - }); - }, - cancelIdleCallback(id) { - clearTimeout(id); - }, -}); - -beforeEach(() => { - // make sure that each test actually tests something - // see https://jestjs.io/docs/en/expect#expecthasassertions - expect.hasAssertions(); - - // Reset the mocked window.location. This ensures tests don't interfere with - // each other, and removes the need to tidy up if it was changed for a given - // test. - setWindowLocation(TEST_HOST); -}); |