diff --git a/.prettierignore b/.prettierignore index d681fbf28b41efd204caf2f3e1bda8c52a3c92e9..36d7c91a639c9b1861ed55f6a810e4b2712640b2 100644 --- a/.prettierignore +++ b/.prettierignore @@ -10,22 +10,6 @@ doc/api/graphql/reference/gitlab_schema.graphql *.scss *.md -## objective-swirles -spec/frontend/boards/components/sidebar/board_sidebar_labels_select_spec.js -spec/frontend/clusters/stores/clusters_store_spec.js -spec/frontend/diffs/components/diff_file_header_spec.js -spec/frontend/diffs/components/hidden_files_warning_spec.js -spec/frontend/environments/environment_monitoring_spec.js -spec/frontend/import_entities/import_groups/graphql/services/status_poller_spec.js -spec/frontend/issuable/related_issues/components/add_issuable_form_spec.js -spec/frontend/notes/components/discussion_filter_spec.js -spec/frontend/pipeline_editor/components/lint/ci_lint_results_spec.js -spec/frontend/projects/settings_service_desk/components/service_desk_setting_spec.js -spec/frontend/snippets/components/edit_spec.js -spec/frontend/user_lists/store/show/mutations_spec.js -spec/frontend/vue_shared/components/stacked_progress_bar_spec.js -spec/frontend_integration/ide/helpers/ide_helper.js - ## boring-bohr jest.config.base.js jest.config.js diff --git a/spec/frontend/boards/components/sidebar/board_sidebar_labels_select_spec.js b/spec/frontend/boards/components/sidebar/board_sidebar_labels_select_spec.js index cc877ca818b891cdb112f519f255d0835c0a55ac..2b350248f830609983830ba68a5502cd25d4cde9 100644 --- a/spec/frontend/boards/components/sidebar/board_sidebar_labels_select_spec.js +++ b/spec/frontend/boards/components/sidebar/board_sidebar_labels_select_spec.js @@ -10,8 +10,8 @@ import createFlash from '~/flash'; jest.mock('~/flash'); -const TEST_LABELS_PAYLOAD = TEST_LABELS.map(label => ({ ...label, set: true })); -const TEST_LABELS_TITLES = TEST_LABELS.map(label => label.title); +const TEST_LABELS_PAYLOAD = TEST_LABELS.map((label) => ({ ...label, set: true })); +const TEST_LABELS_TITLES = TEST_LABELS.map((label) => label.title); describe('~/boards/components/sidebar/board_sidebar_labels_select.vue', () => { let wrapper; @@ -44,7 +44,8 @@ describe('~/boards/components/sidebar/board_sidebar_labels_select.vue', () => { }; const findLabelsSelect = () => wrapper.find({ ref: 'labelsSelect' }); - const findLabelsTitles = () => wrapper.findAll(GlLabel).wrappers.map(item => item.props('title')); + const findLabelsTitles = () => + wrapper.findAll(GlLabel).wrappers.map((item) => item.props('title')); const findCollapsed = () => wrapper.find('[data-testid="collapsed-content"]'); it('renders "None" when no labels are selected', () => { @@ -76,7 +77,7 @@ describe('~/boards/components/sidebar/board_sidebar_labels_select.vue', () => { it('commits change to the server', () => { expect(wrapper.vm.setActiveIssueLabels).toHaveBeenCalledWith({ - addLabelIds: TEST_LABELS.map(label => label.id), + addLabelIds: TEST_LABELS.map((label) => label.id), projectPath: 'gitlab-org/test-subgroup/gitlab-test', removeLabelIds: [], }); diff --git a/spec/frontend/clusters/stores/clusters_store_spec.js b/spec/frontend/clusters/stores/clusters_store_spec.js index 381a4717127d0fcea722a6f02985917b8779bc4b..df10d9af273dfdcdfdab343c80b24b05e2f29b25 100644 --- a/spec/frontend/clusters/stores/clusters_store_spec.js +++ b/spec/frontend/clusters/stores/clusters_store_spec.js @@ -237,19 +237,22 @@ describe('Clusters Store', () => { }); }); - describe.each(APPLICATION_INSTALLED_STATUSES)('given the current app status is %s', status => { - it('marks application as installed', () => { - const mockResponseData = - CLUSTERS_MOCK_DATA.GET['/gitlab-org/gitlab-shell/clusters/2/status.json'].data; - const runnerAppIndex = 2; + describe.each(APPLICATION_INSTALLED_STATUSES)( + 'given the current app status is %s', + (status) => { + it('marks application as installed', () => { + const mockResponseData = + CLUSTERS_MOCK_DATA.GET['/gitlab-org/gitlab-shell/clusters/2/status.json'].data; + const runnerAppIndex = 2; - mockResponseData.applications[runnerAppIndex].status = status; + mockResponseData.applications[runnerAppIndex].status = status; - store.updateStateFromServer(mockResponseData); + store.updateStateFromServer(mockResponseData); - expect(store.state.applications[RUNNER].installed).toBe(true); - }); - }); + expect(store.state.applications[RUNNER].installed).toBe(true); + }); + }, + ); it('sets default hostname for jupyter when ingress has a ip address', () => { const mockResponseData = diff --git a/spec/frontend/diffs/components/diff_file_header_spec.js b/spec/frontend/diffs/components/diff_file_header_spec.js index 1b41456f2f5ea21c3ad704ca07ffc94f50c7cdb3..e9a63e861edc753b69fe432161adf51ff1c5b3aa 100644 --- a/spec/frontend/diffs/components/diff_file_header_spec.js +++ b/spec/frontend/diffs/components/diff_file_header_spec.js @@ -62,7 +62,7 @@ describe('DiffFileHeader component', () => { diffHasDiscussionsResultMock, diffHasExpandedDiscussionsResultMock, ...Object.values(mockStoreConfig.modules.diffs.actions), - ].forEach(mock => mock.mockReset()); + ].forEach((mock) => mock.mockReset()); wrapper.destroy(); }); @@ -80,7 +80,7 @@ describe('DiffFileHeader component', () => { const findCollapseIcon = () => wrapper.find({ ref: 'collapseIcon' }); const findEditButton = () => wrapper.find({ ref: 'editButton' }); - const createComponent = props => { + const createComponent = (props) => { mockStoreConfig = cloneDeep(defaultMockStoreConfig); const store = new Vuex.Store(mockStoreConfig); @@ -219,7 +219,7 @@ describe('DiffFileHeader component', () => { }); describe('for any file', () => { - const otherModes = Object.keys(diffViewerModes).filter(m => m !== 'mode_changed'); + const otherModes = Object.keys(diffViewerModes).filter((m) => m !== 'mode_changed'); it('for mode_changed file mode displays mode changes', () => { createComponent({ @@ -236,20 +236,23 @@ describe('DiffFileHeader component', () => { expect(findModeChangedLine().text()).toMatch(/old-mode.+new-mode/); }); - it.each(otherModes.map(m => [m]))('for %s file mode does not display mode changes', mode => { - createComponent({ - diffFile: { - ...diffFile, - a_mode: 'old-mode', - b_mode: 'new-mode', - viewer: { - ...diffFile.viewer, - name: diffViewerModes[mode], + it.each(otherModes.map((m) => [m]))( + 'for %s file mode does not display mode changes', + (mode) => { + createComponent({ + diffFile: { + ...diffFile, + a_mode: 'old-mode', + b_mode: 'new-mode', + viewer: { + ...diffFile.viewer, + name: diffViewerModes[mode], + }, }, - }, - }); - expect(findModeChangedLine().exists()).toBeFalsy(); - }); + }); + expect(findModeChangedLine().exists()).toBeFalsy(); + }, + ); it('displays the LFS label for files stored in LFS', () => { createComponent({ diff --git a/spec/frontend/diffs/components/hidden_files_warning_spec.js b/spec/frontend/diffs/components/hidden_files_warning_spec.js index 6fb4e4645f8a005388eec7306608ace8ddaaf9a6..3f1f23a40f5fb605fe42ce7343bf7b53236fcb67 100644 --- a/spec/frontend/diffs/components/hidden_files_warning_spec.js +++ b/spec/frontend/diffs/components/hidden_files_warning_spec.js @@ -26,13 +26,15 @@ describe('HiddenFilesWarning', () => { }); it('has a correct plain diff URL', () => { - const plainDiffLink = wrapper.findAll('a').wrappers.filter(x => x.text() === 'Plain diff')[0]; + const plainDiffLink = wrapper.findAll('a').wrappers.filter((x) => x.text() === 'Plain diff')[0]; expect(plainDiffLink.attributes('href')).toBe(propsData.plainDiffPath); }); it('has a correct email patch URL', () => { - const emailPatchLink = wrapper.findAll('a').wrappers.filter(x => x.text() === 'Email patch')[0]; + const emailPatchLink = wrapper + .findAll('a') + .wrappers.filter((x) => x.text() === 'Email patch')[0]; expect(emailPatchLink.attributes('href')).toBe(propsData.emailPatchPath); }); diff --git a/spec/frontend/environments/environment_monitoring_spec.js b/spec/frontend/environments/environment_monitoring_spec.js index a73f49f1047d5cb45bb8024806dae457bc048e34..bbd49c04fb6563accc0769db33859443f831a6c4 100644 --- a/spec/frontend/environments/environment_monitoring_spec.js +++ b/spec/frontend/environments/environment_monitoring_spec.js @@ -16,7 +16,8 @@ describe('Monitoring Component', () => { }; const findButtons = () => wrapper.findAll(GlButton); - const findButtonsByIcon = icon => findButtons().filter(button => button.props('icon') === icon); + const findButtonsByIcon = (icon) => + findButtons().filter((button) => button.props('icon') === icon); beforeEach(() => { createWrapper(); diff --git a/spec/frontend/import_entities/import_groups/graphql/services/status_poller_spec.js b/spec/frontend/import_entities/import_groups/graphql/services/status_poller_spec.js index 8eb1ffb3cd00404f832e98a342eb44c70cd21ef1..e7f1626f81d8f0b99c7e98db0036e4b7651b089e 100644 --- a/spec/frontend/import_entities/import_groups/graphql/services/status_poller_spec.js +++ b/spec/frontend/import_entities/import_groups/graphql/services/status_poller_spec.js @@ -23,7 +23,7 @@ describe('Bulk import status poller', () => { let clientMock; const listQueryCacheCalls = () => - clientMock.readQuery.mock.calls.filter(call => call[0].query === bulkImportSourceGroupsQuery); + clientMock.readQuery.mock.calls.filter((call) => call[0].query === bulkImportSourceGroupsQuery); beforeEach(() => { clientMock = createMockClient({ @@ -142,9 +142,11 @@ describe('Bulk import status poller', () => { clientMock.cache.writeQuery({ query: bulkImportSourceGroupsQuery, data: { - bulkImportSourceGroups: [STARTED_GROUP_1, NOT_STARTED_GROUP, STARTED_GROUP_2].map(group => - generateFakeEntry(group), - ), + bulkImportSourceGroups: [ + STARTED_GROUP_1, + NOT_STARTED_GROUP, + STARTED_GROUP_2, + ].map((group) => generateFakeEntry(group)), }, }); @@ -155,9 +157,9 @@ describe('Bulk import status poller', () => { await waitForPromises(); const [[doc]] = clientMock.query.mock.calls; const { selections } = doc.query.definitions[0].selectionSet; - expect(selections.every(field => field.name.value === 'group')).toBeTruthy(); + expect(selections.every((field) => field.name.value === 'group')).toBeTruthy(); expect(selections).toHaveLength(2); - expect(selections.map(sel => sel.arguments[0].value.value)).toStrictEqual([ + expect(selections.map((sel) => sel.arguments[0].value.value)).toStrictEqual([ `${TARGET_NAMESPACE}/${STARTED_GROUP_1.import_target.new_name}`, `${TARGET_NAMESPACE}/${STARTED_GROUP_2.import_target.new_name}`, ]); @@ -167,7 +169,7 @@ describe('Bulk import status poller', () => { clientMock.cache.writeQuery({ query: bulkImportSourceGroupsQuery, data: { - bulkImportSourceGroups: [STARTED_GROUP_1, STARTED_GROUP_2].map(group => + bulkImportSourceGroups: [STARTED_GROUP_1, STARTED_GROUP_2].map((group) => generateFakeEntry(group), ), }, @@ -189,7 +191,7 @@ describe('Bulk import status poller', () => { clientMock.cache.writeQuery({ query: bulkImportSourceGroupsQuery, data: { - bulkImportSourceGroups: [STARTED_GROUP_1, STARTED_GROUP_2].map(group => + bulkImportSourceGroups: [STARTED_GROUP_1, STARTED_GROUP_2].map((group) => generateFakeEntry(group), ), }, diff --git a/spec/frontend/issuable/related_issues/components/add_issuable_form_spec.js b/spec/frontend/issuable/related_issues/components/add_issuable_form_spec.js index 17a195df494e8e7affea6323d5d9f68d732db79f..de2671816d8b9a97062ea14dcebedfba5a423c31 100644 --- a/spec/frontend/issuable/related_issues/components/add_issuable_form_spec.js +++ b/spec/frontend/issuable/related_issues/components/add_issuable_form_spec.js @@ -22,13 +22,14 @@ const issuable2 = { const pathIdSeparator = PathIdSeparator.Issue; -const findFormInput = wrapper => wrapper.find('.js-add-issuable-form-input').element; +const findFormInput = (wrapper) => wrapper.find('.js-add-issuable-form-input').element; -const findRadioInput = (inputs, value) => inputs.filter(input => input.element.value === value)[0]; +const findRadioInput = (inputs, value) => + inputs.filter((input) => input.element.value === value)[0]; -const findRadioInputs = wrapper => wrapper.findAll('[name="linked-issue-type-radio"]'); +const findRadioInputs = (wrapper) => wrapper.findAll('[name="linked-issue-type-radio"]'); -const constructWrapper = props => { +const constructWrapper = (props) => { return shallowMount(AddIssuableForm, { propsData: { inputValue: '', @@ -192,7 +193,7 @@ describe('AddIssuableForm', () => { }); describe('when the form is submitted', () => { - it('emits an event with a "relates_to" link type when the "relates to" radio input selected', done => { + it('emits an event with a "relates_to" link type when the "relates to" radio input selected', (done) => { jest.spyOn(wrapper.vm, '$emit').mockImplementation(() => {}); wrapper.vm.linkedIssueType = linkedIssueTypesMap.RELATES_TO; @@ -207,7 +208,7 @@ describe('AddIssuableForm', () => { }); }); - it('emits an event with a "blocks" link type when the "blocks" radio input selected', done => { + it('emits an event with a "blocks" link type when the "blocks" radio input selected', (done) => { jest.spyOn(wrapper.vm, '$emit').mockImplementation(() => {}); wrapper.vm.linkedIssueType = linkedIssueTypesMap.BLOCKS; @@ -222,7 +223,7 @@ describe('AddIssuableForm', () => { }); }); - it('emits an event with a "is_blocked_by" link type when the "is blocked by" radio input selected', done => { + it('emits an event with a "is_blocked_by" link type when the "is blocked by" radio input selected', (done) => { jest.spyOn(wrapper.vm, '$emit').mockImplementation(() => {}); wrapper.vm.linkedIssueType = linkedIssueTypesMap.IS_BLOCKED_BY; @@ -237,7 +238,7 @@ describe('AddIssuableForm', () => { }); }); - it('shows error message when error is present', done => { + it('shows error message when error is present', (done) => { const itemAddFailureMessage = 'Something went wrong while submitting.'; wrapper.setProps({ hasError: true, diff --git a/spec/frontend/notes/components/discussion_filter_spec.js b/spec/frontend/notes/components/discussion_filter_spec.js index 0ac60efa45bbf7795fb843d5c81c5b0dee7cc434..6a92795bacfb830a46a7d72acf4f6ba10e47b837 100644 --- a/spec/frontend/notes/components/discussion_filter_spec.js +++ b/spec/frontend/notes/components/discussion_filter_spec.js @@ -25,7 +25,8 @@ describe('DiscussionFilter component', () => { const filterDiscussion = jest.fn(); - const findFilter = filterType => wrapper.find(`.dropdown-item[data-filter-type="${filterType}"]`); + const findFilter = (filterType) => + wrapper.find(`.dropdown-item[data-filter-type="${filterType}"]`); const mountComponent = () => { const discussions = [ @@ -145,7 +146,7 @@ describe('DiscussionFilter component', () => { window.mrTabs = undefined; }); - it('only renders when discussion tab is active', done => { + it('only renders when discussion tab is active', (done) => { eventHub.$emit('MergeRequestTabChange', 'commit'); wrapper.vm.$nextTick(() => { @@ -160,7 +161,7 @@ describe('DiscussionFilter component', () => { window.location.hash = ''; }); - it('updates the filter when the URL links to a note', done => { + it('updates the filter when the URL links to a note', (done) => { window.location.hash = `note_${discussionMock.notes[0].id}`; wrapper.vm.currentValue = discussionFiltersMock[2].value; wrapper.vm.handleLocationHash(); @@ -171,7 +172,7 @@ describe('DiscussionFilter component', () => { }); }); - it('does not update the filter when the current filter is "Show all activity"', done => { + it('does not update the filter when the current filter is "Show all activity"', (done) => { window.location.hash = `note_${discussionMock.notes[0].id}`; wrapper.vm.handleLocationHash(); @@ -181,7 +182,7 @@ describe('DiscussionFilter component', () => { }); }); - it('only updates filter when the URL links to a note', done => { + it('only updates filter when the URL links to a note', (done) => { window.location.hash = `testing123`; wrapper.vm.handleLocationHash(); @@ -191,7 +192,7 @@ describe('DiscussionFilter component', () => { }); }); - it('fetches discussions when there is a hash', done => { + it('fetches discussions when there is a hash', (done) => { window.location.hash = `note_${discussionMock.notes[0].id}`; wrapper.vm.currentValue = discussionFiltersMock[2].value; jest.spyOn(wrapper.vm, 'selectFilter').mockImplementation(() => {}); @@ -203,7 +204,7 @@ describe('DiscussionFilter component', () => { }); }); - it('does not fetch discussions when there is no hash', done => { + it('does not fetch discussions when there is no hash', (done) => { window.location.hash = ''; jest.spyOn(wrapper.vm, 'selectFilter').mockImplementation(() => {}); wrapper.vm.handleLocationHash(); diff --git a/spec/frontend/pipeline_editor/components/lint/ci_lint_results_spec.js b/spec/frontend/pipeline_editor/components/lint/ci_lint_results_spec.js index 6d4c27eac35fe5823e315ec448227925d66ac2e6..5e9471376bd795efe7edb1ea225213a3e066b8fc 100644 --- a/spec/frontend/pipeline_editor/components/lint/ci_lint_results_spec.js +++ b/spec/frontend/pipeline_editor/components/lint/ci_lint_results_spec.js @@ -25,8 +25,9 @@ describe('CI Lint Results', () => { }; const findTable = () => wrapper.find(GlTable); - const findByTestId = selector => () => wrapper.find(`[data-testid="ci-lint-${selector}"]`); - const findAllByTestId = selector => () => wrapper.findAll(`[data-testid="ci-lint-${selector}"]`); + const findByTestId = (selector) => () => wrapper.find(`[data-testid="ci-lint-${selector}"]`); + const findAllByTestId = (selector) => () => + wrapper.findAll(`[data-testid="ci-lint-${selector}"]`); const findLinkToDoc = () => wrapper.find(GlLink); const findErrors = findByTestId('errors'); const findWarnings = findByTestId('warnings'); @@ -37,7 +38,7 @@ describe('CI Lint Results', () => { const findBeforeScripts = findAllByTestId('before-script'); const findScripts = findAllByTestId('script'); const findAfterScripts = findAllByTestId('after-script'); - const filterEmptyScripts = property => mockJobs.filter(job => job[property].length !== 0); + const filterEmptyScripts = (property) => mockJobs.filter((job) => job[property].length !== 0); afterEach(() => { wrapper.destroy(); diff --git a/spec/frontend/projects/settings_service_desk/components/service_desk_setting_spec.js b/spec/frontend/projects/settings_service_desk/components/service_desk_setting_spec.js index 173a7fc4e11ca32b23b2e16d683dee984891bfd4..ddd9a7b2fad168fc9479e4cee16c75af32e28b9e 100644 --- a/spec/frontend/projects/settings_service_desk/components/service_desk_setting_spec.js +++ b/spec/frontend/projects/settings_service_desk/components/service_desk_setting_spec.js @@ -185,7 +185,9 @@ describe('ServiceDeskSetting', () => { const expectedTemplates = [''].concat(templates); const dropdown = findTemplateDropdown(); - const dropdownList = Array.from(dropdown.element.children).map(option => option.innerText); + const dropdownList = Array.from(dropdown.element.children).map( + (option) => option.innerText, + ); expect(dropdown.element.children).toHaveLength(expectedTemplates.length); expect(dropdownList.includes('Bug')).toEqual(true); diff --git a/spec/frontend/snippets/components/edit_spec.js b/spec/frontend/snippets/components/edit_spec.js index 3521733ee5ea4b3851c8bc303f3bf17b576ee6c2..40237525563582e7c8496798cc89ee3d045cd659 100644 --- a/spec/frontend/snippets/components/edit_spec.js +++ b/spec/frontend/snippets/components/edit_spec.js @@ -149,9 +149,11 @@ describe('Snippet Edit app', () => { const hasDisabledSubmit = () => Boolean(findSubmitButton().attributes('disabled')); const clickSubmitBtn = () => wrapper.find('[data-testid="snippet-edit-form"]').trigger('submit'); - const triggerBlobActions = actions => findBlobActions().vm.$emit('actions', actions); - const setUploadFilesHtml = paths => { - wrapper.vm.$el.innerHTML = paths.map(path => `<input name="files[]" value="${path}">`).join(''); + const triggerBlobActions = (actions) => findBlobActions().vm.$emit('actions', actions); + const setUploadFilesHtml = (paths) => { + wrapper.vm.$el.innerHTML = paths + .map((path) => `<input name="files[]" value="${path}">`) + .join(''); }; const getApiData = ({ id, @@ -189,7 +191,7 @@ describe('Snippet Edit app', () => { it.each([[{}], [{ snippetGid: '' }]])( 'should render all required components with %s', - props => { + (props) => { createComponent(props); expect(wrapper.find(TitleField).exists()).toBe(true); @@ -257,7 +259,7 @@ describe('Snippet Edit app', () => { describe('default visibility', () => { it.each([SNIPPET_VISIBILITY_PRIVATE, SNIPPET_VISIBILITY_INTERNAL, SNIPPET_VISIBILITY_PUBLIC])( 'marks %s visibility by default', - async visibility => { + async (visibility) => { createComponent({ props: { snippetGid: '' }, selectedLevel: visibility, diff --git a/spec/frontend/user_lists/store/show/mutations_spec.js b/spec/frontend/user_lists/store/show/mutations_spec.js index 364cc6a0225d562655c0007391bac76c78b0e7ac..cd379641ee14d70cc95d31f37a110c48ae12bed7 100644 --- a/spec/frontend/user_lists/store/show/mutations_spec.js +++ b/spec/frontend/user_lists/store/show/mutations_spec.js @@ -57,7 +57,7 @@ describe('User Lists Show Mutations', () => { }); it('adds the new IDs to the state unless empty', () => { - newIds.filter(id => id).forEach(id => expect(mockState.userIds).toContain(id)); + newIds.filter((id) => id).forEach((id) => expect(mockState.userIds).toContain(id)); }); it('does not add duplicate IDs to the state', () => { @@ -80,7 +80,9 @@ describe('User Lists Show Mutations', () => { }); it('should leave the rest of the IDs alone', () => { - userIds.filter(id => id !== removedId).forEach(id => expect(mockState.userIds).toContain(id)); + userIds + .filter((id) => id !== removedId) + .forEach((id) => expect(mockState.userIds).toContain(id)); }); }); }); diff --git a/spec/frontend/vue_shared/components/stacked_progress_bar_spec.js b/spec/frontend/vue_shared/components/stacked_progress_bar_spec.js index 0786882f527f387b62273116902542607eb4f5f1..c6f01efa71a3c55c0f950c59d6f4603c2377b278 100644 --- a/spec/frontend/vue_shared/components/stacked_progress_bar_spec.js +++ b/spec/frontend/vue_shared/components/stacked_progress_bar_spec.js @@ -3,7 +3,7 @@ import Vue from 'vue'; import mountComponent from 'helpers/vue_mount_component_helper'; import stackedProgressBarComponent from '~/vue_shared/components/stacked_progress_bar.vue'; -const createComponent = config => { +const createComponent = (config) => { const Component = Vue.extend(stackedProgressBarComponent); const defaultConfig = { successLabel: 'Synced', @@ -29,11 +29,12 @@ describe('StackedProgressBarComponent', () => { vm.$destroy(); }); - const findSuccessBarText = wrapper => wrapper.$el.querySelector('.status-green').innerText.trim(); - const findNeutralBarText = wrapper => + const findSuccessBarText = (wrapper) => + wrapper.$el.querySelector('.status-green').innerText.trim(); + const findNeutralBarText = (wrapper) => wrapper.$el.querySelector('.status-neutral').innerText.trim(); - const findFailureBarText = wrapper => wrapper.$el.querySelector('.status-red').innerText.trim(); - const findUnavailableBarText = wrapper => + const findFailureBarText = (wrapper) => wrapper.$el.querySelector('.status-red').innerText.trim(); + const findUnavailableBarText = (wrapper) => wrapper.$el.querySelector('.status-unavailable').innerText.trim(); describe('computed', () => { diff --git a/spec/frontend_integration/ide/helpers/ide_helper.js b/spec/frontend_integration/ide/helpers/ide_helper.js index 212ec06b7666b221f9fb7772dce255b25a92f406..7516523fe1dd05aab7800c0135a2ed8dae509008 100644 --- a/spec/frontend_integration/ide/helpers/ide_helper.js +++ b/spec/frontend_integration/ide/helpers/ide_helper.js @@ -8,11 +8,11 @@ import { findByText, } from '@testing-library/dom'; -const isFolderRowOpen = row => row.matches('.folder.is-open'); +const isFolderRowOpen = (row) => row.matches('.folder.is-open'); const getLeftSidebar = () => screen.getByTestId('left-sidebar'); -export const switchLeftSidebarTab = name => { +export const switchLeftSidebarTab = (name) => { const sidebar = getLeftSidebar(); const button = getByLabelText(sidebar, name); @@ -23,7 +23,7 @@ export const switchLeftSidebarTab = name => { export const getStatusBar = () => document.querySelector('.ide-status-bar'); export const waitForMonacoEditor = () => - new Promise(resolve => window.monaco.editor.onDidCreateEditor(resolve)); + new Promise((resolve) => window.monaco.editor.onDidCreateEditor(resolve)); export const findMonacoEditor = () => screen.findAllByLabelText(/Editor content;/).then(([x]) => x.closest('.monaco-editor')); @@ -31,7 +31,7 @@ export const findMonacoEditor = () => export const findMonacoDiffEditor = () => screen.findAllByLabelText(/Editor content;/).then(([x]) => x.closest('.monaco-diff-editor')); -export const findAndSetEditorValue = async value => { +export const findAndSetEditorValue = async (value) => { const editor = await findMonacoEditor(); const uri = editor.getAttribute('data-uri'); @@ -56,10 +56,12 @@ const findFileChild = async (row, name, index = 0) => { const container = await findFileRowContainer(row); const children = await findAllByText(container, name, { selector: '.file-row-name' }); - return children.map(x => x.closest('.file-row')).find(x => x.dataset.level === index.toString()); + return children + .map((x) => x.closest('.file-row')) + .find((x) => x.dataset.level === index.toString()); }; -const openFileRow = row => { +const openFileRow = (row) => { if (!row || isFolderRowOpen(row)) { return; } @@ -101,7 +103,7 @@ const fillFileNameModal = async (value, submitText = 'Create file') => { createButton.click(); }; -const findAndClickRootAction = async name => { +const findAndClickRootAction = async (name) => { const container = await findRootActions(); const button = getByLabelText(container, name); @@ -112,13 +114,13 @@ export const clickPreviewMarkdown = () => { screen.getByText('Preview Markdown').click(); }; -export const openFile = async path => { +export const openFile = async (path) => { const row = await findAndTraverseToPath(path); openFileRow(row); }; -export const waitForTabToOpen = fileName => +export const waitForTabToOpen = (fileName) => findByText(document.querySelector('.multi-file-edit-pane'), fileName); export const createFile = async (path, content) => { @@ -137,10 +139,10 @@ export const createFile = async (path, content) => { }; export const getFilesList = () => { - return screen.getAllByTestId('file-row-name-container').map(e => e.textContent.trim()); + return screen.getAllByTestId('file-row-name-container').map((e) => e.textContent.trim()); }; -export const deleteFile = async path => { +export const deleteFile = async (path) => { const row = await findAndTraverseToPath(path); clickFileRowAction(row, 'Delete'); }; @@ -152,7 +154,7 @@ export const renameFile = async (path, newPath) => { await fillFileNameModal(newPath, 'Rename file'); }; -export const closeFile = async path => { +export const closeFile = async (path) => { const button = await screen.getByLabelText(`Close ${path}`, { selector: '.multi-file-tabs button', }); @@ -164,7 +166,7 @@ export const commit = async () => { switchLeftSidebarTab('Commit'); screen.getByTestId('begin-commit-button').click(); - await screen.findByLabelText(/Commit to .+ branch/).then(x => x.click()); + await screen.findByLabelText(/Commit to .+ branch/).then((x) => x.click()); screen.getByText('Commit').click(); };