diff options
Diffstat (limited to 'spec/frontend/releases/components/app_edit_new_spec.js')
-rw-r--r-- | spec/frontend/releases/components/app_edit_new_spec.js | 59 |
1 files changed, 27 insertions, 32 deletions
diff --git a/spec/frontend/releases/components/app_edit_new_spec.js b/spec/frontend/releases/components/app_edit_new_spec.js index e9727801c1a..d92bdc3b99a 100644 --- a/spec/frontend/releases/components/app_edit_new_spec.js +++ b/spec/frontend/releases/components/app_edit_new_spec.js @@ -3,12 +3,15 @@ import { mount } from '@vue/test-utils'; import { merge } from 'lodash'; import axios from 'axios'; import MockAdapter from 'axios-mock-adapter'; +import { getJSONFixture } from 'helpers/fixtures'; import ReleaseEditNewApp from '~/releases/components/app_edit_new.vue'; -import { release as originalRelease, milestones as originalMilestones } from '../mock_data'; import * as commonUtils from '~/lib/utils/common_utils'; import { BACK_URL_PARAM } from '~/releases/constants'; import AssetLinksForm from '~/releases/components/asset_links_form.vue'; +const originalRelease = getJSONFixture('api/releases/release.json'); +const originalMilestones = originalRelease.milestones; + describe('Release edit/new component', () => { let wrapper; let release; @@ -17,7 +20,7 @@ describe('Release edit/new component', () => { let state; let mock; - const factory = ({ featureFlags = {}, store: storeUpdates = {} } = {}) => { + const factory = async ({ featureFlags = {}, store: storeUpdates = {} } = {}) => { state = { release, markdownDocsPath: 'path/to/markdown/docs', @@ -65,6 +68,8 @@ describe('Release edit/new component', () => { }, }); + await wrapper.vm.$nextTick(); + wrapper.element.querySelectorAll('input').forEach(input => jest.spyOn(input, 'focus')); }; @@ -86,7 +91,9 @@ describe('Release edit/new component', () => { const findForm = () => wrapper.find('form'); describe(`basic functionality tests: all tests unrelated to the "${BACK_URL_PARAM}" parameter`, () => { - beforeEach(factory); + beforeEach(async () => { + await factory(); + }); it('calls initializeRelease when the component is created', () => { expect(actions.initializeRelease).toHaveBeenCalledTimes(1); @@ -128,7 +135,9 @@ describe('Release edit/new component', () => { }); describe(`when the URL does not contain a "${BACK_URL_PARAM}" parameter`, () => { - beforeEach(factory); + beforeEach(async () => { + await factory(); + }); it(`renders a "Cancel" button with an href pointing to "${BACK_URL_PARAM}"`, () => { const cancelButton = wrapper.find('.js-cancel-button'); @@ -139,12 +148,12 @@ describe('Release edit/new component', () => { describe(`when the URL contains a "${BACK_URL_PARAM}" parameter`, () => { const backUrl = 'https://example.gitlab.com/back/url'; - beforeEach(() => { + beforeEach(async () => { commonUtils.getParameterByName = jest .fn() .mockImplementation(paramToGet => ({ [BACK_URL_PARAM]: backUrl }[paramToGet])); - factory(); + await factory(); }); it('renders a "Cancel" button with an href pointing to the main Releases page', () => { @@ -154,8 +163,8 @@ describe('Release edit/new component', () => { }); describe('when creating a new release', () => { - beforeEach(() => { - factory({ + beforeEach(async () => { + await factory({ store: { modules: { detail: { @@ -174,7 +183,9 @@ describe('Release edit/new component', () => { }); describe('when editing an existing release', () => { - beforeEach(factory); + beforeEach(async () => { + await factory(); + }); it('renders the submit button with the text "Save changes"', () => { expect(findSubmitButton().text()).toBe('Save changes'); @@ -182,33 +193,17 @@ describe('Release edit/new component', () => { }); describe('asset links form', () => { - const findAssetLinksForm = () => wrapper.find(AssetLinksForm); - - describe('when the release_asset_link_editing feature flag is disabled', () => { - beforeEach(() => { - factory({ featureFlags: { releaseAssetLinkEditing: false } }); - }); - - it('does not render the asset links portion of the form', () => { - expect(findAssetLinksForm().exists()).toBe(false); - }); - }); - - describe('when the release_asset_link_editing feature flag is enabled', () => { - beforeEach(() => { - factory({ featureFlags: { releaseAssetLinkEditing: true } }); - }); + beforeEach(factory); - it('renders the asset links portion of the form', () => { - expect(findAssetLinksForm().exists()).toBe(true); - }); + it('renders the asset links portion of the form', () => { + expect(wrapper.find(AssetLinksForm).exists()).toBe(true); }); }); describe('validation', () => { describe('when the form is valid', () => { - beforeEach(() => { - factory({ + beforeEach(async () => { + await factory({ store: { modules: { detail: { @@ -227,8 +222,8 @@ describe('Release edit/new component', () => { }); describe('when the form is invalid', () => { - beforeEach(() => { - factory({ + beforeEach(async () => { + await factory({ store: { modules: { detail: { |