diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-20 18:08:51 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-20 18:08:51 +0000 |
commit | df2eda3f14dccb703bd7054d4ddde7803cb1fe7e (patch) | |
tree | 0200bb0def01cde22da3bc4c9ed0a7b0f91d6b50 /spec | |
parent | b9bac6dbf78a5a7976fba14aaeef96bdeb0da612 (diff) | |
download | gitlab-ce-df2eda3f14dccb703bd7054d4ddde7803cb1fe7e.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
59 files changed, 413 insertions, 184 deletions
diff --git a/spec/features/merge_request/user_views_diffs_spec.rb b/spec/features/merge_request/user_views_diffs_spec.rb index e0e4058dd47..cd0cf1cc78a 100644 --- a/spec/features/merge_request/user_views_diffs_spec.rb +++ b/spec/features/merge_request/user_views_diffs_spec.rb @@ -7,10 +7,11 @@ describe 'User views diffs', :js do create(:merge_request_with_diffs, source_project: project, target_project: project, source_branch: 'merge-test') end let(:project) { create(:project, :public, :repository) } + let(:view) { 'inline' } before do stub_feature_flags(diffs_batch_load: false) - visit(diffs_project_merge_request_path(project, merge_request)) + visit(diffs_project_merge_request_path(project, merge_request, view: view)) wait_for_requests @@ -20,12 +21,20 @@ describe 'User views diffs', :js do shared_examples 'unfold diffs' do it 'unfolds diffs upwards' do first('.js-unfold').click - expect(find('.file-holder[id="a5cc2925ca8258af241be7e5b0381edf30266302"] .text-file')).to have_content('.bundle') + + page.within('.file-holder[id="a5cc2925ca8258af241be7e5b0381edf30266302"]') do + expect(find('.text-file')).to have_content('.bundle') + expect(page).to have_selector('.new_line [data-linenumber="1"]', count: 1) + end end - it 'unfolds diffs to the start' do - first('.js-unfold-all').click - expect(find('.file-holder[id="a5cc2925ca8258af241be7e5b0381edf30266302"] .text-file')).to have_content('.rbc') + it 'unfolds diffs in the middle' do + page.within('.file-holder[id="2f6fcd96b88b36ce98c38da085c795a27d92a3dd"]') do + all('.js-unfold-all')[1].click + + expect(page).to have_selector('.new_line [data-linenumber="24"]', count: 1) + expect(page).not_to have_selector('.new_line [data-linenumber="1"]') + end end it 'unfolds diffs downwards' do @@ -66,13 +75,7 @@ describe 'User views diffs', :js do end context 'when in the side-by-side view' do - before do - find('.js-show-diff-settings').click - - click_button 'Side-by-side' - - wait_for_requests - end + let(:view) { 'parallel' } it 'shows diffs in parallel' do expect(page).to have_css('.parallel') diff --git a/spec/fixtures/api/schemas/public_api/v4/merge_request_simple.json b/spec/fixtures/api/schemas/public_api/v4/merge_request_simple.json new file mode 100644 index 00000000000..45507e3e400 --- /dev/null +++ b/spec/fixtures/api/schemas/public_api/v4/merge_request_simple.json @@ -0,0 +1,26 @@ +{ + "type": "object", + "properties" : { + "properties" : { + "id": { "type": "integer" }, + "iid": { "type": "integer" }, + "project_id": { "type": "integer" }, + "title": { "type": "string" }, + "description": { "type": ["string", "null"] }, + "state": { "type": "string" }, + "created_at": { "type": "date" }, + "updated_at": { "type": "date" }, + "web_url": { "type": "uri" } + }, + "required": [ + "id", "iid", "project_id", "title", "description", + "state", "created_at", "updated_at", "web_url" + ], + "head_pipeline": { + "oneOf": [ + { "type": "null" }, + { "$ref": "pipeline/detail.json" } + ] + } + } +} diff --git a/spec/javascripts/diffs/components/diff_expansion_cell_spec.js b/spec/javascripts/diffs/components/diff_expansion_cell_spec.js index e8ff6778512..9a5048d9332 100644 --- a/spec/javascripts/diffs/components/diff_expansion_cell_spec.js +++ b/spec/javascripts/diffs/components/diff_expansion_cell_spec.js @@ -1,64 +1,229 @@ import Vue from 'vue'; +import { cloneDeep } from 'lodash'; import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper'; import { createStore } from '~/mr_notes/stores'; import DiffExpansionCell from '~/diffs/components/diff_expansion_cell.vue'; +import { getPreviousLineIndex } from '~/diffs/store/utils'; +import { INLINE_DIFF_VIEW_TYPE, PARALLEL_DIFF_VIEW_TYPE } from '~/diffs/constants'; import diffFileMockData from '../mock_data/diff_file'; const EXPAND_UP_CLASS = '.js-unfold'; const EXPAND_DOWN_CLASS = '.js-unfold-down'; const EXPAND_ALL_CLASS = '.js-unfold-all'; +const LINE_TO_USE = 5; +const lineSources = { + [INLINE_DIFF_VIEW_TYPE]: 'highlighted_diff_lines', + [PARALLEL_DIFF_VIEW_TYPE]: 'parallel_diff_lines', +}; +const lineHandlers = { + [INLINE_DIFF_VIEW_TYPE]: line => line, + [PARALLEL_DIFF_VIEW_TYPE]: line => line.right || line.left, +}; + +function makeLoadMoreLinesPayload({ + sinceLine, + toLine, + oldLineNumber, + diffViewType, + fileHash, + nextLineNumbers = {}, + unfold = false, + bottom = false, + isExpandDown = false, +}) { + return { + endpoint: 'contextLinesPath', + params: { + since: sinceLine, + to: toLine, + offset: toLine + 1 - oldLineNumber, + view: diffViewType, + unfold, + bottom, + }, + lineNumbers: { + oldLineNumber, + newLineNumber: toLine + 1, + }, + nextLineNumbers, + fileHash, + isExpandDown, + }; +} + +function getLine(file, type, index) { + const source = lineSources[type]; + const handler = lineHandlers[type]; + + return handler(file[source][index]); +} describe('DiffExpansionCell', () => { - const matchLine = diffFileMockData.highlighted_diff_lines[5]; + let mockFile; + let mockLine; + let store; + let vm; + + beforeEach(() => { + mockFile = cloneDeep(diffFileMockData); + mockLine = getLine(mockFile, INLINE_DIFF_VIEW_TYPE, LINE_TO_USE); + store = createStore(); + store.state.diffs.diffFiles = [mockFile]; + spyOn(store, 'dispatch').and.returnValue(Promise.resolve()); + }); const createComponent = (options = {}) => { const cmp = Vue.extend(DiffExpansionCell); const defaults = { - fileHash: diffFileMockData.file_hash, + fileHash: mockFile.file_hash, contextLinesPath: 'contextLinesPath', - line: matchLine, + line: mockLine, isTop: false, isBottom: false, }; const props = Object.assign({}, defaults, options); - return createComponentWithStore(cmp, createStore(), props).$mount(); + vm = createComponentWithStore(cmp, store, props).$mount(); }; + const findExpandUp = () => vm.$el.querySelector(EXPAND_UP_CLASS); + const findExpandDown = () => vm.$el.querySelector(EXPAND_DOWN_CLASS); + const findExpandAll = () => vm.$el.querySelector(EXPAND_ALL_CLASS); + describe('top row', () => { it('should have "expand up" and "show all" option', () => { - const vm = createComponent({ + createComponent({ isTop: true, }); - const el = vm.$el; - expect(el.querySelector(EXPAND_UP_CLASS)).not.toBe(null); - expect(el.querySelector(EXPAND_DOWN_CLASS)).toBe(null); - expect(el.querySelector(EXPAND_ALL_CLASS)).not.toBe(null); + expect(findExpandUp()).not.toBe(null); + expect(findExpandDown()).toBe(null); + expect(findExpandAll()).not.toBe(null); }); }); describe('middle row', () => { it('should have "expand down", "show all", "expand up" option', () => { - const vm = createComponent(); - const el = vm.$el; + createComponent(); - expect(el.querySelector(EXPAND_UP_CLASS)).not.toBe(null); - expect(el.querySelector(EXPAND_DOWN_CLASS)).not.toBe(null); - expect(el.querySelector(EXPAND_ALL_CLASS)).not.toBe(null); + expect(findExpandUp()).not.toBe(null); + expect(findExpandDown()).not.toBe(null); + expect(findExpandAll()).not.toBe(null); }); }); describe('bottom row', () => { it('should have "expand down" and "show all" option', () => { - const vm = createComponent({ + createComponent({ isBottom: true, }); - const el = vm.$el; - expect(el.querySelector(EXPAND_UP_CLASS)).toBe(null); - expect(el.querySelector(EXPAND_DOWN_CLASS)).not.toBe(null); - expect(el.querySelector(EXPAND_ALL_CLASS)).not.toBe(null); + expect(findExpandUp()).toBe(null); + expect(findExpandDown()).not.toBe(null); + expect(findExpandAll()).not.toBe(null); + }); + }); + + describe('any row', () => { + [ + { diffViewType: INLINE_DIFF_VIEW_TYPE, file: { parallel_diff_lines: [] } }, + { diffViewType: PARALLEL_DIFF_VIEW_TYPE, file: { highlighted_diff_lines: [] } }, + ].forEach(({ diffViewType, file }) => { + describe(`with diffViewType (${diffViewType})`, () => { + beforeEach(() => { + mockLine = getLine(mockFile, diffViewType, LINE_TO_USE); + store.state.diffs.diffFiles = [{ ...mockFile, ...file }]; + store.state.diffs.diffViewType = diffViewType; + }); + + it('does not initially dispatch anything', () => { + expect(store.dispatch).not.toHaveBeenCalled(); + }); + + it('on expand all clicked, dispatch loadMoreLines', () => { + const oldLineNumber = mockLine.meta_data.old_pos; + const newLineNumber = mockLine.meta_data.new_pos; + const previousIndex = getPreviousLineIndex(diffViewType, mockFile, { + oldLineNumber, + newLineNumber, + }); + + createComponent(); + + findExpandAll().click(); + + expect(store.dispatch).toHaveBeenCalledWith( + 'diffs/loadMoreLines', + makeLoadMoreLinesPayload({ + fileHash: mockFile.file_hash, + toLine: newLineNumber - 1, + sinceLine: previousIndex, + oldLineNumber, + diffViewType, + }), + ); + }); + + it('on expand up clicked, dispatch loadMoreLines', () => { + mockLine.meta_data.old_pos = 200; + mockLine.meta_data.new_pos = 200; + + const oldLineNumber = mockLine.meta_data.old_pos; + const newLineNumber = mockLine.meta_data.new_pos; + + createComponent(); + + findExpandUp().click(); + + expect(store.dispatch).toHaveBeenCalledWith( + 'diffs/loadMoreLines', + makeLoadMoreLinesPayload({ + fileHash: mockFile.file_hash, + toLine: newLineNumber - 1, + sinceLine: 179, + oldLineNumber, + diffViewType, + unfold: true, + }), + ); + }); + + it('on expand down clicked, dispatch loadMoreLines', () => { + mockFile[lineSources[diffViewType]][LINE_TO_USE + 1] = cloneDeep( + mockFile[lineSources[diffViewType]][LINE_TO_USE], + ); + const nextLine = getLine(mockFile, diffViewType, LINE_TO_USE + 1); + + nextLine.meta_data.old_pos = 300; + nextLine.meta_data.new_pos = 300; + mockLine.meta_data.old_pos = 200; + mockLine.meta_data.new_pos = 200; + + createComponent(); + + findExpandDown().click(); + + expect(store.dispatch).toHaveBeenCalledWith('diffs/loadMoreLines', { + endpoint: 'contextLinesPath', + params: { + since: 1, + to: 21, // the load amount, plus 1 line + offset: 0, + view: diffViewType, + unfold: true, + bottom: true, + }, + lineNumbers: { + // when expanding down, these are based on the previous line, 0, in this case + oldLineNumber: 0, + newLineNumber: 0, + }, + nextLineNumbers: { old_line: 200, new_line: 200 }, + fileHash: mockFile.file_hash, + isExpandDown: true, + }); + }); + }); }); }); }); diff --git a/spec/javascripts/diffs/store/mutations_spec.js b/spec/javascripts/diffs/store/mutations_spec.js index cb89a89e216..ffe5d89e615 100644 --- a/spec/javascripts/diffs/store/mutations_spec.js +++ b/spec/javascripts/diffs/store/mutations_spec.js @@ -167,7 +167,7 @@ describe('DiffsStoreMutations', () => { highlighted_diff_lines: [], parallel_diff_lines: [], }; - const state = { diffFiles: [diffFile] }; + const state = { diffFiles: [diffFile], diffViewType: 'viewType' }; const lines = [{ old_line: 1, new_line: 1 }]; const findDiffFileSpy = spyOnDependency(mutations, 'findDiffFile').and.returnValue(diffFile); @@ -195,6 +195,7 @@ describe('DiffsStoreMutations', () => { expect(addContextLinesSpy).toHaveBeenCalledWith({ inlineLines: diffFile.highlighted_diff_lines, parallelLines: diffFile.parallel_diff_lines, + diffViewType: 'viewType', contextLines: options.contextLines, bottom: options.params.bottom, lineNumbers: options.lineNumbers, diff --git a/spec/javascripts/diffs/store/utils_spec.js b/spec/javascripts/diffs/store/utils_spec.js index 051820cedfa..223c4d7e40b 100644 --- a/spec/javascripts/diffs/store/utils_spec.js +++ b/spec/javascripts/diffs/store/utils_spec.js @@ -1,3 +1,4 @@ +import { clone } from 'lodash'; import * as utils from '~/diffs/store/utils'; import { LINE_POSITION_LEFT, @@ -8,6 +9,7 @@ import { NEW_LINE_TYPE, OLD_LINE_TYPE, MATCH_LINE_TYPE, + INLINE_DIFF_VIEW_TYPE, PARALLEL_DIFF_VIEW_TYPE, } from '~/diffs/constants'; import { MERGE_REQUEST_NOTEABLE_TYPE } from '~/notes/constants'; @@ -47,7 +49,38 @@ describe('DiffsStoreUtils', () => { describe('findIndexInParallelLines', () => { it('should return correct index for given line numbers', () => { - expectSet(utils.findIndexInParallelLines, getDiffFileMock().parallel_diff_lines, {}); + expectSet(utils.findIndexInParallelLines, getDiffFileMock().parallel_diff_lines, []); + }); + }); + }); + + describe('getPreviousLineIndex', () => { + [ + { diffViewType: INLINE_DIFF_VIEW_TYPE, file: { parallel_diff_lines: [] } }, + { diffViewType: PARALLEL_DIFF_VIEW_TYPE, file: { highlighted_diff_lines: [] } }, + ].forEach(({ diffViewType, file }) => { + describe(`with diffViewType (${diffViewType}) in split diffs`, () => { + let diffFile; + + beforeEach(() => { + diffFile = { ...clone(diffFileMockData), ...file }; + }); + + it('should return the correct previous line number', () => { + const emptyLines = + diffViewType === INLINE_DIFF_VIEW_TYPE + ? diffFile.parallel_diff_lines + : diffFile.highlighted_diff_lines; + + // This expectation asserts that we cannot possibly be using the opposite view type lines in the next expectation + expect(emptyLines.length).toBe(0); + expect( + utils.getPreviousLineIndex(diffViewType, diffFile, { + oldLineNumber: 3, + newLineNumber: 5, + }), + ).toBe(4); + }); }); }); }); @@ -80,44 +113,59 @@ describe('DiffsStoreUtils', () => { }); describe('addContextLines', () => { - it('should add context lines', () => { - const diffFile = getDiffFileMock(); - const inlineLines = diffFile.highlighted_diff_lines; - const parallelLines = diffFile.parallel_diff_lines; - const lineNumbers = { oldLineNumber: 3, newLineNumber: 5 }; - const contextLines = [{ lineNumber: 42, line_code: '123' }]; - const options = { inlineLines, parallelLines, contextLines, lineNumbers }; - const inlineIndex = utils.findIndexInInlineLines(inlineLines, lineNumbers); - const parallelIndex = utils.findIndexInParallelLines(parallelLines, lineNumbers); - const normalizedParallelLine = { - left: options.contextLines[0], - right: options.contextLines[0], - line_code: '123', - }; - - utils.addContextLines(options); - - expect(inlineLines[inlineIndex]).toEqual(contextLines[0]); - expect(parallelLines[parallelIndex]).toEqual(normalizedParallelLine); - }); - - it('should add context lines properly with bottom parameter', () => { - const diffFile = getDiffFileMock(); - const inlineLines = diffFile.highlighted_diff_lines; - const parallelLines = diffFile.parallel_diff_lines; - const lineNumbers = { oldLineNumber: 3, newLineNumber: 5 }; - const contextLines = [{ lineNumber: 42, line_code: '123' }]; - const options = { inlineLines, parallelLines, contextLines, lineNumbers, bottom: true }; - const normalizedParallelLine = { - left: options.contextLines[0], - right: options.contextLines[0], - line_code: '123', - }; - - utils.addContextLines(options); + [INLINE_DIFF_VIEW_TYPE, PARALLEL_DIFF_VIEW_TYPE].forEach(diffViewType => { + it(`should add context lines for ${diffViewType}`, () => { + const diffFile = getDiffFileMock(); + const inlineLines = diffFile.highlighted_diff_lines; + const parallelLines = diffFile.parallel_diff_lines; + const lineNumbers = { oldLineNumber: 3, newLineNumber: 5 }; + const contextLines = [{ lineNumber: 42, line_code: '123' }]; + const options = { inlineLines, parallelLines, contextLines, lineNumbers, diffViewType }; + const inlineIndex = utils.findIndexInInlineLines(inlineLines, lineNumbers); + const parallelIndex = utils.findIndexInParallelLines(parallelLines, lineNumbers); + const normalizedParallelLine = { + left: options.contextLines[0], + right: options.contextLines[0], + line_code: '123', + }; + + utils.addContextLines(options); + + if (diffViewType === INLINE_DIFF_VIEW_TYPE) { + expect(inlineLines[inlineIndex]).toEqual(contextLines[0]); + } else { + expect(parallelLines[parallelIndex]).toEqual(normalizedParallelLine); + } + }); - expect(inlineLines[inlineLines.length - 1]).toEqual(contextLines[0]); - expect(parallelLines[parallelLines.length - 1]).toEqual(normalizedParallelLine); + it(`should add context lines properly with bottom parameter for ${diffViewType}`, () => { + const diffFile = getDiffFileMock(); + const inlineLines = diffFile.highlighted_diff_lines; + const parallelLines = diffFile.parallel_diff_lines; + const lineNumbers = { oldLineNumber: 3, newLineNumber: 5 }; + const contextLines = [{ lineNumber: 42, line_code: '123' }]; + const options = { + inlineLines, + parallelLines, + contextLines, + lineNumbers, + bottom: true, + diffViewType, + }; + const normalizedParallelLine = { + left: options.contextLines[0], + right: options.contextLines[0], + line_code: '123', + }; + + utils.addContextLines(options); + + if (diffViewType === INLINE_DIFF_VIEW_TYPE) { + expect(inlineLines[inlineLines.length - 1]).toEqual(contextLines[0]); + } else { + expect(parallelLines[parallelLines.length - 1]).toEqual(normalizedParallelLine); + } + }); }); }); diff --git a/spec/lib/banzai/filter/inline_metrics_redactor_filter_spec.rb b/spec/lib/banzai/filter/inline_metrics_redactor_filter_spec.rb index f91927412cb..b1d56b57596 100644 --- a/spec/lib/banzai/filter/inline_metrics_redactor_filter_spec.rb +++ b/spec/lib/banzai/filter/inline_metrics_redactor_filter_spec.rb @@ -5,8 +5,7 @@ require 'spec_helper' describe Banzai::Filter::InlineMetricsRedactorFilter do include FilterSpecHelper - set(:project) { create(:project) } - + let_it_be(:project) { create(:project) } let(:url) { urls.metrics_dashboard_project_environment_url(project, 1, embedded: true) } let(:input) { %(<a href="#{url}">example</a>) } let(:doc) { filter(input) } diff --git a/spec/lib/banzai/pipeline/gfm_pipeline_spec.rb b/spec/lib/banzai/pipeline/gfm_pipeline_spec.rb index 47ea273ef3a..448422b15e3 100644 --- a/spec/lib/banzai/pipeline/gfm_pipeline_spec.rb +++ b/spec/lib/banzai/pipeline/gfm_pipeline_spec.rb @@ -121,7 +121,7 @@ describe Banzai::Pipeline::GfmPipeline do end describe 'emoji in references' do - set(:project) { create(:project, :public) } + let_it_be(:project) { create(:project, :public) } let(:emoji) { '💯' } it 'renders a label reference with emoji inside' do diff --git a/spec/lib/event_filter_spec.rb b/spec/lib/event_filter_spec.rb index 21b8f726425..e35698f6030 100644 --- a/spec/lib/event_filter_spec.rb +++ b/spec/lib/event_filter_spec.rb @@ -18,17 +18,16 @@ describe EventFilter do end describe '#apply_filter' do - set(:public_project) { create(:project, :public) } - - set(:push_event) { create(:push_event, project: public_project) } - set(:merged_event) { create(:event, :merged, project: public_project, target: public_project) } - set(:created_event) { create(:event, :created, project: public_project, target: create(:issue, project: public_project)) } - set(:updated_event) { create(:event, :updated, project: public_project, target: create(:issue, project: public_project)) } - set(:closed_event) { create(:event, :closed, project: public_project, target: create(:issue, project: public_project)) } - set(:reopened_event) { create(:event, :reopened, project: public_project, target: create(:issue, project: public_project)) } - set(:comments_event) { create(:event, :commented, project: public_project, target: public_project) } - set(:joined_event) { create(:event, :joined, project: public_project, target: public_project) } - set(:left_event) { create(:event, :left, project: public_project, target: public_project) } + let_it_be(:public_project) { create(:project, :public) } + let_it_be(:push_event) { create(:push_event, project: public_project) } + let_it_be(:merged_event) { create(:event, :merged, project: public_project, target: public_project) } + let_it_be(:created_event) { create(:event, :created, project: public_project, target: create(:issue, project: public_project)) } + let_it_be(:updated_event) { create(:event, :updated, project: public_project, target: create(:issue, project: public_project)) } + let_it_be(:closed_event) { create(:event, :closed, project: public_project, target: create(:issue, project: public_project)) } + let_it_be(:reopened_event) { create(:event, :reopened, project: public_project, target: create(:issue, project: public_project)) } + let_it_be(:comments_event) { create(:event, :commented, project: public_project, target: public_project) } + let_it_be(:joined_event) { create(:event, :joined, project: public_project, target: public_project) } + let_it_be(:left_event) { create(:event, :left, project: public_project, target: public_project) } let(:filtered_events) { described_class.new(filter).apply_filter(Event.all) } diff --git a/spec/lib/gitlab/auth_spec.rb b/spec/lib/gitlab/auth_spec.rb index ed763f63756..209ba68ccbc 100644 --- a/spec/lib/gitlab/auth_spec.rb +++ b/spec/lib/gitlab/auth_spec.rb @@ -3,10 +3,9 @@ require 'spec_helper' describe Gitlab::Auth, :use_clean_rails_memory_store_caching do + let_it_be(:project) { create(:project) } let(:gl_auth) { described_class } - set(:project) { create(:project) } - describe 'constants' do it 'API_SCOPES contains all scopes for API access' do expect(subject::API_SCOPES).to eq %i[api read_user] diff --git a/spec/lib/gitlab/checks/force_push_spec.rb b/spec/lib/gitlab/checks/force_push_spec.rb index 9432be083d3..334dd8635a3 100644 --- a/spec/lib/gitlab/checks/force_push_spec.rb +++ b/spec/lib/gitlab/checks/force_push_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe Gitlab::Checks::ForcePush do - set(:project) { create(:project, :repository) } + let_it_be(:project) { create(:project, :repository) } describe '.force_push?' do it 'returns false if the repo is empty' do diff --git a/spec/lib/gitlab/ci/build/policy/changes_spec.rb b/spec/lib/gitlab/ci/build/policy/changes_spec.rb index 48ac2e4e657..07f52605929 100644 --- a/spec/lib/gitlab/ci/build/policy/changes_spec.rb +++ b/spec/lib/gitlab/ci/build/policy/changes_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe Gitlab::Ci::Build::Policy::Changes do - set(:project) { create(:project) } + let_it_be(:project) { create(:project) } describe '#satisfied_by?' do describe 'paths matching' do @@ -89,7 +89,7 @@ describe Gitlab::Ci::Build::Policy::Changes do end describe 'gitaly integration' do - set(:project) { create(:project, :repository) } + let_it_be(:project) { create(:project, :repository) } let(:pipeline) do create(:ci_empty_pipeline, project: project, @@ -119,6 +119,7 @@ describe Gitlab::Ci::Build::Policy::Changes do end context 'when branch is created' do + let_it_be(:project) { create(:project, :repository) } let(:pipeline) do create(:ci_empty_pipeline, project: project, ref: 'feature', diff --git a/spec/lib/gitlab/ci/build/policy/kubernetes_spec.rb b/spec/lib/gitlab/ci/build/policy/kubernetes_spec.rb index bc2e6fe6b8d..6d96bdc30c7 100644 --- a/spec/lib/gitlab/ci/build/policy/kubernetes_spec.rb +++ b/spec/lib/gitlab/ci/build/policy/kubernetes_spec.rb @@ -18,7 +18,7 @@ describe Gitlab::Ci::Build::Policy::Kubernetes do end context 'when kubernetes service is inactive' do - set(:project) { create(:project) } + let_it_be(:project) { create(:project) } it 'is not satisfied by a pipeline without kubernetes available' do expect(described_class.new('active')) diff --git a/spec/lib/gitlab/ci/build/policy/variables_spec.rb b/spec/lib/gitlab/ci/build/policy/variables_spec.rb index 66f2cb640b9..0e75726b81c 100644 --- a/spec/lib/gitlab/ci/build/policy/variables_spec.rb +++ b/spec/lib/gitlab/ci/build/policy/variables_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe Gitlab::Ci::Build::Policy::Variables do - set(:project) { create(:project) } + let_it_be(:project) { create(:project) } let(:pipeline) do build(:ci_empty_pipeline, project: project, ref: 'master', source: :push) diff --git a/spec/lib/gitlab/ci/config/external/file/local_spec.rb b/spec/lib/gitlab/ci/config/external/file/local_spec.rb index 95f0c93e758..53205a18762 100644 --- a/spec/lib/gitlab/ci/config/external/file/local_spec.rb +++ b/spec/lib/gitlab/ci/config/external/file/local_spec.rb @@ -3,13 +3,11 @@ require 'spec_helper' describe Gitlab::Ci::Config::External::File::Local do - set(:project) { create(:project, :repository) } - set(:user) { create(:user) } - + let_it_be(:project) { create(:project, :repository) } + let_it_be(:user) { create(:user) } let(:sha) { '12345' } let(:context_params) { { project: project, sha: sha, user: user } } let(:context) { Gitlab::Ci::Config::External::Context.new(**context_params) } - let(:params) { { local: location } } let(:local_file) { described_class.new(params, context) } diff --git a/spec/lib/gitlab/ci/config/external/file/project_spec.rb b/spec/lib/gitlab/ci/config/external/file/project_spec.rb index 0aea3a59b33..77a71f9972b 100644 --- a/spec/lib/gitlab/ci/config/external/file/project_spec.rb +++ b/spec/lib/gitlab/ci/config/external/file/project_spec.rb @@ -3,10 +3,9 @@ require 'spec_helper' describe Gitlab::Ci::Config::External::File::Project do - set(:context_project) { create(:project) } - set(:project) { create(:project, :repository) } - set(:user) { create(:user) } - + let_it_be(:context_project) { create(:project) } + let_it_be(:project) { create(:project, :repository) } + let_it_be(:user) { create(:user) } let(:context_user) { user } let(:context_params) { { project: context_project, sha: '12345', user: context_user } } let(:context) { Gitlab::Ci::Config::External::Context.new(**context_params) } diff --git a/spec/lib/gitlab/ci/config/external/file/template_spec.rb b/spec/lib/gitlab/ci/config/external/file/template_spec.rb index ee1660e4dfd..7ea5aadac52 100644 --- a/spec/lib/gitlab/ci/config/external/file/template_spec.rb +++ b/spec/lib/gitlab/ci/config/external/file/template_spec.rb @@ -3,14 +3,12 @@ require 'spec_helper' describe Gitlab::Ci::Config::External::File::Template do - set(:project) { create(:project) } - set(:user) { create(:user) } - + let_it_be(:project) { create(:project) } + let_it_be(:user) { create(:user) } let(:context_params) { { project: project, sha: '12345', user: user } } let(:context) { Gitlab::Ci::Config::External::Context.new(**context_params) } let(:template) { 'Auto-DevOps.gitlab-ci.yml' } let(:params) { { template: template } } - let(:template_file) { described_class.new(params, context) } before do diff --git a/spec/lib/gitlab/ci/config/external/mapper_spec.rb b/spec/lib/gitlab/ci/config/external/mapper_spec.rb index 2a5f62f7e74..6839002c3ab 100644 --- a/spec/lib/gitlab/ci/config/external/mapper_spec.rb +++ b/spec/lib/gitlab/ci/config/external/mapper_spec.rb @@ -5,9 +5,8 @@ require 'spec_helper' describe Gitlab::Ci::Config::External::Mapper do include StubRequests - set(:project) { create(:project, :repository) } - set(:user) { create(:user) } - + let_it_be(:project) { create(:project, :repository) } + let_it_be(:user) { create(:user) } let(:local_file) { '/lib/gitlab/ci/templates/non-existent-file.yml' } let(:remote_url) { 'https://gitlab.com/gitlab-org/gitlab-foss/blob/1234/.gitlab-ci-1.yml' } let(:template_file) { 'Auto-DevOps.gitlab-ci.yml' } diff --git a/spec/lib/gitlab/ci/config/external/processor_spec.rb b/spec/lib/gitlab/ci/config/external/processor_spec.rb index bb2d3f66972..ff08d4703fe 100644 --- a/spec/lib/gitlab/ci/config/external/processor_spec.rb +++ b/spec/lib/gitlab/ci/config/external/processor_spec.rb @@ -5,10 +5,9 @@ require 'spec_helper' describe Gitlab::Ci::Config::External::Processor do include StubRequests - set(:project) { create(:project, :repository) } - set(:another_project) { create(:project, :repository) } - set(:user) { create(:user) } - + let_it_be(:project) { create(:project, :repository) } + let_it_be(:another_project) { create(:project, :repository) } + let_it_be(:user) { create(:user) } let(:sha) { '12345' } let(:context_params) { { project: project, sha: sha, user: user } } let(:context) { Gitlab::Ci::Config::External::Context.new(**context_params) } diff --git a/spec/lib/gitlab/ci/config_spec.rb b/spec/lib/gitlab/ci/config_spec.rb index 63a36995284..525335cfea9 100644 --- a/spec/lib/gitlab/ci/config_spec.rb +++ b/spec/lib/gitlab/ci/config_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' describe Gitlab::Ci::Config do include StubRequests - set(:user) { create(:user) } + let_it_be(:user) { create(:user) } before do allow_next_instance_of(Gitlab::Ci::Config::External::Context) do |instance| diff --git a/spec/lib/gitlab/ci/pipeline/chain/build_spec.rb b/spec/lib/gitlab/ci/pipeline/chain/build_spec.rb index b81094f8b4a..094563bd979 100644 --- a/spec/lib/gitlab/ci/pipeline/chain/build_spec.rb +++ b/spec/lib/gitlab/ci/pipeline/chain/build_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' describe Gitlab::Ci::Pipeline::Chain::Build do - set(:project) { create(:project, :repository) } - set(:user) { create(:user, developer_projects: [project]) } + let_it_be(:project) { create(:project, :repository) } + let_it_be(:user) { create(:user, developer_projects: [project]) } let(:pipeline) { Ci::Pipeline.new } let(:variables_attributes) do diff --git a/spec/lib/gitlab/ci/pipeline/chain/command_spec.rb b/spec/lib/gitlab/ci/pipeline/chain/command_spec.rb index 5775e934cfd..56707f4e6e4 100644 --- a/spec/lib/gitlab/ci/pipeline/chain/command_spec.rb +++ b/spec/lib/gitlab/ci/pipeline/chain/command_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe Gitlab::Ci::Pipeline::Chain::Command do - set(:project) { create(:project, :repository) } + let_it_be(:project) { create(:project, :repository) } describe '#initialize' do subject do diff --git a/spec/lib/gitlab/ci/pipeline/chain/create_spec.rb b/spec/lib/gitlab/ci/pipeline/chain/create_spec.rb index 650ab193997..f18ad05a704 100644 --- a/spec/lib/gitlab/ci/pipeline/chain/create_spec.rb +++ b/spec/lib/gitlab/ci/pipeline/chain/create_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' describe Gitlab::Ci::Pipeline::Chain::Create do - set(:project) { create(:project) } - set(:user) { create(:user) } + let_it_be(:project) { create(:project) } + let_it_be(:user) { create(:user) } let(:pipeline) do build(:ci_empty_pipeline, project: project, ref: 'master') diff --git a/spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb b/spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb index 52e9432dc92..6dab5679e60 100644 --- a/spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb +++ b/spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' describe Gitlab::Ci::Pipeline::Chain::Populate do - set(:project) { create(:project, :repository) } - set(:user) { create(:user) } + let_it_be(:project) { create(:project, :repository) } + let_it_be(:user) { create(:user) } let(:pipeline) do build(:ci_pipeline, project: project, ref: 'master', user: user) diff --git a/spec/lib/gitlab/ci/pipeline/chain/sequence_spec.rb b/spec/lib/gitlab/ci/pipeline/chain/sequence_spec.rb index 9cb59442dfd..9033b71b19f 100644 --- a/spec/lib/gitlab/ci/pipeline/chain/sequence_spec.rb +++ b/spec/lib/gitlab/ci/pipeline/chain/sequence_spec.rb @@ -3,9 +3,8 @@ require 'spec_helper' describe Gitlab::Ci::Pipeline::Chain::Sequence do - set(:project) { create(:project) } - set(:user) { create(:user) } - + let_it_be(:project) { create(:project) } + let_it_be(:user) { create(:user) } let(:pipeline) { build_stubbed(:ci_pipeline) } let(:command) { Gitlab::Ci::Pipeline::Chain::Command.new } let(:first_step) { spy('first step') } diff --git a/spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb b/spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb index fe46633ed1b..55d6d35340e 100644 --- a/spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb +++ b/spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb @@ -3,9 +3,9 @@ require 'spec_helper' describe Gitlab::Ci::Pipeline::Chain::Skip do - set(:project) { create(:project) } - set(:user) { create(:user) } - set(:pipeline) { create(:ci_pipeline, project: project) } + let_it_be(:project, reload: true) { create(:project) } + let_it_be(:user) { create(:user) } + let_it_be(:pipeline, reload: true) { create(:ci_pipeline, project: project) } let(:command) do Gitlab::Ci::Pipeline::Chain::Command.new( diff --git a/spec/lib/gitlab/ci/pipeline/chain/validate/abilities_spec.rb b/spec/lib/gitlab/ci/pipeline/chain/validate/abilities_spec.rb index 24d3beb35b9..8bf8bdf08ff 100644 --- a/spec/lib/gitlab/ci/pipeline/chain/validate/abilities_spec.rb +++ b/spec/lib/gitlab/ci/pipeline/chain/validate/abilities_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' describe Gitlab::Ci::Pipeline::Chain::Validate::Abilities do - set(:project) { create(:project, :repository) } - set(:user) { create(:user) } + let_it_be(:project, reload: true) { create(:project, :repository) } + let_it_be(:user) { create(:user) } let(:pipeline) do build_stubbed(:ci_pipeline, project: project) diff --git a/spec/lib/gitlab/ci/pipeline/chain/validate/repository_spec.rb b/spec/lib/gitlab/ci/pipeline/chain/validate/repository_spec.rb index b866355906e..83271007ab0 100644 --- a/spec/lib/gitlab/ci/pipeline/chain/validate/repository_spec.rb +++ b/spec/lib/gitlab/ci/pipeline/chain/validate/repository_spec.rb @@ -3,10 +3,9 @@ require 'spec_helper' describe Gitlab::Ci::Pipeline::Chain::Validate::Repository do - set(:project) { create(:project, :repository) } - set(:user) { create(:user) } + let_it_be(:project) { create(:project, :repository) } + let_it_be(:user) { create(:user) } let(:pipeline) { build_stubbed(:ci_pipeline) } - let!(:step) { described_class.new(pipeline, command) } before do diff --git a/spec/lib/gitlab/ci/status/composite_spec.rb b/spec/lib/gitlab/ci/status/composite_spec.rb index 857483a9e0a..b9d4c39e0c2 100644 --- a/spec/lib/gitlab/ci/status/composite_spec.rb +++ b/spec/lib/gitlab/ci/status/composite_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe Gitlab::Ci::Status::Composite do - set(:pipeline) { create(:ci_pipeline) } + let_it_be(:pipeline) { create(:ci_pipeline) } before(:all) do @statuses = HasStatus::STATUSES_ENUM.map do |status, idx| diff --git a/spec/lib/gitlab/ci/trace/chunked_io_spec.rb b/spec/lib/gitlab/ci/trace/chunked_io_spec.rb index 1b034656e7d..92b3e5562a9 100644 --- a/spec/lib/gitlab/ci/trace/chunked_io_spec.rb +++ b/spec/lib/gitlab/ci/trace/chunked_io_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' describe Gitlab::Ci::Trace::ChunkedIO, :clean_gitlab_redis_cache do include ChunkedIOHelpers - set(:build) { create(:ci_build, :running) } + let_it_be(:build) { create(:ci_build, :running) } let(:chunked_io) { described_class.new(build) } before do diff --git a/spec/lib/gitlab/ci/trace/stream_spec.rb b/spec/lib/gitlab/ci/trace/stream_spec.rb index 45b59541ce6..ea79073840d 100644 --- a/spec/lib/gitlab/ci/trace/stream_spec.rb +++ b/spec/lib/gitlab/ci/trace/stream_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe Gitlab::Ci::Trace::Stream, :clean_gitlab_redis_cache do - set(:build) { create(:ci_build, :running) } + let_it_be(:build) { create(:ci_build, :running) } before do stub_feature_flags(ci_enable_live_trace: true) diff --git a/spec/lib/gitlab/data_builder/wiki_page_spec.rb b/spec/lib/gitlab/data_builder/wiki_page_spec.rb index 404d54bf2da..ae338e30a69 100644 --- a/spec/lib/gitlab/data_builder/wiki_page_spec.rb +++ b/spec/lib/gitlab/data_builder/wiki_page_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe Gitlab::DataBuilder::WikiPage do - set(:project) { create(:project, :repository, :wiki_repo) } + let_it_be(:project) { create(:project, :repository, :wiki_repo) } let(:wiki_page) { create(:wiki_page, wiki: project.wiki) } let(:user) { create(:user) } diff --git a/spec/lib/gitlab/git/lfs_changes_spec.rb b/spec/lib/gitlab/git/lfs_changes_spec.rb index a99e8c4f60c..adc63401b89 100644 --- a/spec/lib/gitlab/git/lfs_changes_spec.rb +++ b/spec/lib/gitlab/git/lfs_changes_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe Gitlab::Git::LfsChanges do - set(:project) { create(:project, :repository) } + let_it_be(:project) { create(:project, :repository) } let(:newrev) { '54fcc214b94e78d7a41a9a8fe6d87a5e59500e51' } let(:blob_object_id) { '0c304a93cb8430108629bbbcaa27db3343299bc0' } diff --git a/spec/lib/gitlab/git/merge_base_spec.rb b/spec/lib/gitlab/git/merge_base_spec.rb index fa95a1664ea..d92b13c5023 100644 --- a/spec/lib/gitlab/git/merge_base_spec.rb +++ b/spec/lib/gitlab/git/merge_base_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe Gitlab::Git::MergeBase do - set(:project) { create(:project, :repository) } + let_it_be(:project) { create(:project, :repository) } let(:repository) { project.repository } subject(:merge_base) { described_class.new(repository, refs) } diff --git a/spec/lib/gitlab/git/push_spec.rb b/spec/lib/gitlab/git/push_spec.rb index 32c4c1c82d4..c09e8a085df 100644 --- a/spec/lib/gitlab/git/push_spec.rb +++ b/spec/lib/gitlab/git/push_spec.rb @@ -3,8 +3,7 @@ require 'spec_helper' describe Gitlab::Git::Push do - set(:project) { create(:project, :repository) } - + let_it_be(:project) { create(:project, :repository) } let(:oldrev) { project.commit('HEAD~2').id } let(:newrev) { project.commit.id } let(:ref) { 'refs/heads/some-branch' } diff --git a/spec/lib/gitlab/git_post_receive_spec.rb b/spec/lib/gitlab/git_post_receive_spec.rb index f0df3794e29..0e25a616810 100644 --- a/spec/lib/gitlab/git_post_receive_spec.rb +++ b/spec/lib/gitlab/git_post_receive_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe ::Gitlab::GitPostReceive do - set(:project) { create(:project, :repository) } + let_it_be(:project) { create(:project, :repository) } subject { described_class.new(project, "project-#{project.id}", changes.dup, {}) } diff --git a/spec/lib/gitlab/gitaly_client/operation_service_spec.rb b/spec/lib/gitlab/gitaly_client/operation_service_spec.rb index d4337c51279..563e0590482 100644 --- a/spec/lib/gitlab/gitaly_client/operation_service_spec.rb +++ b/spec/lib/gitlab/gitaly_client/operation_service_spec.rb @@ -3,10 +3,10 @@ require 'spec_helper' describe Gitlab::GitalyClient::OperationService do - set(:project) { create(:project, :repository) } + let_it_be(:user) { create(:user) } + let_it_be(:project) { create(:project, :repository) } let(:repository) { project.repository.raw } let(:client) { described_class.new(repository) } - set(:user) { create(:user) } let(:gitaly_user) { Gitlab::Git::User.from_gitlab(user).to_gitaly } describe '#user_create_branch' do diff --git a/spec/lib/gitlab/global_id_spec.rb b/spec/lib/gitlab/global_id_spec.rb index d35b5da0b75..719743ed5dc 100644 --- a/spec/lib/gitlab/global_id_spec.rb +++ b/spec/lib/gitlab/global_id_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' describe Gitlab::GlobalId do describe '.build' do - set(:object) { create(:issue) } + let_it_be(:object) { create(:issue) } it 'returns a standard GlobalId if only object is passed' do expect(described_class.build(object).to_s).to eq(object.to_global_id.to_s) diff --git a/spec/lib/gitlab/graphql/loaders/batch_lfs_oid_loader_spec.rb b/spec/lib/gitlab/graphql/loaders/batch_lfs_oid_loader_spec.rb index 1e8de144b8d..b3d57c899d5 100644 --- a/spec/lib/gitlab/graphql/loaders/batch_lfs_oid_loader_spec.rb +++ b/spec/lib/gitlab/graphql/loaders/batch_lfs_oid_loader_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' describe Gitlab::Graphql::Loaders::BatchLfsOidLoader do include GraphqlHelpers - set(:project) { create(:project, :repository) } + let_it_be(:project) { create(:project, :repository) } let(:repository) { project.repository } let(:blob) { Gitlab::Graphql::Representation::TreeEntry.new(repository.blob_at('master', 'files/lfs/lfs_object.iso'), repository) } let(:otherblob) { Gitlab::Graphql::Representation::TreeEntry.new(repository.blob_at('master', 'README'), repository) } diff --git a/spec/lib/gitlab/hashed_storage/migrator_spec.rb b/spec/lib/gitlab/hashed_storage/migrator_spec.rb index f3cbb811679..c59b152a982 100644 --- a/spec/lib/gitlab/hashed_storage/migrator_spec.rb +++ b/spec/lib/gitlab/hashed_storage/migrator_spec.rb @@ -186,7 +186,7 @@ describe Gitlab::HashedStorage::Migrator, :redis do end describe 'migration_pending?' do - set(:project) { create(:project, :empty_repo) } + let_it_be(:project) { create(:project, :empty_repo) } it 'returns true when there are MigratorWorker jobs scheduled' do Sidekiq::Testing.disable! do @@ -210,7 +210,7 @@ describe Gitlab::HashedStorage::Migrator, :redis do end describe 'rollback_pending?' do - set(:project) { create(:project, :empty_repo) } + let_it_be(:project) { create(:project, :empty_repo) } it 'returns true when there are RollbackerWorker jobs scheduled' do Sidekiq::Testing.disable! do diff --git a/spec/lib/gitlab/hook_data/issuable_builder_spec.rb b/spec/lib/gitlab/hook_data/issuable_builder_spec.rb index 5135c84df19..cff489e0f3b 100644 --- a/spec/lib/gitlab/hook_data/issuable_builder_spec.rb +++ b/spec/lib/gitlab/hook_data/issuable_builder_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe Gitlab::HookData::IssuableBuilder do - set(:user) { create(:user) } + let_it_be(:user) { create(:user) } # This shared example requires a `builder` and `user` variable shared_examples 'issuable hook data' do |kind| diff --git a/spec/lib/gitlab/hook_data/issue_builder_spec.rb b/spec/lib/gitlab/hook_data/issue_builder_spec.rb index 8008f3d72b2..168603d6fcc 100644 --- a/spec/lib/gitlab/hook_data/issue_builder_spec.rb +++ b/spec/lib/gitlab/hook_data/issue_builder_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' describe Gitlab::HookData::IssueBuilder do - set(:label) { create(:label) } - set(:issue) { create(:labeled_issue, labels: [label], project: label.project) } + let_it_be(:label) { create(:label) } + let_it_be(:issue) { create(:labeled_issue, labels: [label], project: label.project) } let(:builder) { described_class.new(issue) } describe '#build' do diff --git a/spec/lib/gitlab/hook_data/merge_request_builder_spec.rb b/spec/lib/gitlab/hook_data/merge_request_builder_spec.rb index 506354e370c..67fa0a7426a 100644 --- a/spec/lib/gitlab/hook_data/merge_request_builder_spec.rb +++ b/spec/lib/gitlab/hook_data/merge_request_builder_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe Gitlab::HookData::MergeRequestBuilder do - set(:merge_request) { create(:merge_request) } + let_it_be(:merge_request) { create(:merge_request) } let(:builder) { described_class.new(merge_request) } describe '#build' do diff --git a/spec/lib/gitlab/import/merge_request_helpers_spec.rb b/spec/lib/gitlab/import/merge_request_helpers_spec.rb index 2b165994152..d81251c4a43 100644 --- a/spec/lib/gitlab/import/merge_request_helpers_spec.rb +++ b/spec/lib/gitlab/import/merge_request_helpers_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' describe Gitlab::Import::MergeRequestHelpers, type: :helper do - set(:project) { create(:project, :repository) } - set(:user) { create(:user) } + let_it_be(:project) { create(:project, :repository) } + let_it_be(:user) { create(:user) } describe '.create_merge_request_without_hooks' do let(:iid) { 42 } diff --git a/spec/lib/gitlab/import_export/repo_saver_spec.rb b/spec/lib/gitlab/import_export/repo_saver_spec.rb index fc1f782bfdd..a95d661ec3c 100644 --- a/spec/lib/gitlab/import_export/repo_saver_spec.rb +++ b/spec/lib/gitlab/import_export/repo_saver_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' describe Gitlab::ImportExport::RepoSaver do describe 'bundle a project Git repo' do - set(:user) { create(:user) } + let_it_be(:user) { create(:user) } let!(:project) { create(:project, :repository) } let(:export_path) { "#{Dir.tmpdir}/project_tree_saver_spec" } let(:shared) { project.import_export_shared } diff --git a/spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb b/spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb index 59a59223d8d..264272d2026 100644 --- a/spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb +++ b/spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb @@ -4,8 +4,8 @@ require 'spec_helper' describe Gitlab::ImportExport::WikiRepoSaver do describe 'bundle a wiki Git repo' do - set(:user) { create(:user) } - let!(:project) { create(:project, :wiki_repo) } + let_it_be(:user) { create(:user) } + let_it_be(:project) { create(:project, :wiki_repo) } let(:export_path) { "#{Dir.tmpdir}/project_tree_saver_spec" } let(:shared) { project.import_export_shared } let(:wiki_bundler) { described_class.new(project: project, shared: shared) } diff --git a/spec/lib/gitlab/json_cache_spec.rb b/spec/lib/gitlab/json_cache_spec.rb index 9d986abb8dd..9379499f602 100644 --- a/spec/lib/gitlab/json_cache_spec.rb +++ b/spec/lib/gitlab/json_cache_spec.rb @@ -3,13 +3,12 @@ require 'spec_helper' describe Gitlab::JsonCache do + let_it_be(:broadcast_message) { create(:broadcast_message) } let(:backend) { double('backend').as_null_object } let(:namespace) { 'geo' } let(:key) { 'foo' } let(:expanded_key) { "#{namespace}:#{key}:#{Gitlab::VERSION}:#{Rails.version}" } - set(:broadcast_message) { create(:broadcast_message) } - subject(:cache) { described_class.new(namespace: namespace, backend: backend) } describe '#active?' do diff --git a/spec/lib/gitlab/language_detection_spec.rb b/spec/lib/gitlab/language_detection_spec.rb index f558ce0d527..770fe2f80db 100644 --- a/spec/lib/gitlab/language_detection_spec.rb +++ b/spec/lib/gitlab/language_detection_spec.rb @@ -3,9 +3,9 @@ require 'spec_helper' describe Gitlab::LanguageDetection do - set(:project) { create(:project, :repository) } - set(:ruby) { create(:programming_language, name: 'Ruby') } - set(:haskell) { create(:programming_language, name: 'Haskell') } + let_it_be(:project) { create(:project, :repository) } + let_it_be(:ruby) { create(:programming_language, name: 'Ruby') } + let_it_be(:haskell) { create(:programming_language, name: 'Haskell') } let(:repository) { project.repository } let(:detection) do [{ value: 66.63, label: "Ruby", color: "#701516", highlight: "#701516" }, diff --git a/spec/lib/gitlab/metrics/dashboard/finder_spec.rb b/spec/lib/gitlab/metrics/dashboard/finder_spec.rb index 2d3b61e61ce..d772b0c7a5f 100644 --- a/spec/lib/gitlab/metrics/dashboard/finder_spec.rb +++ b/spec/lib/gitlab/metrics/dashboard/finder_spec.rb @@ -5,9 +5,9 @@ require 'spec_helper' describe Gitlab::Metrics::Dashboard::Finder, :use_clean_rails_memory_store_caching do include MetricsDashboardHelpers - set(:project) { create(:project) } - set(:user) { create(:user) } - set(:environment) { create(:environment, project: project) } + let_it_be(:project) { create(:project) } + let_it_be(:user) { create(:user) } + let_it_be(:environment) { create(:environment, project: project) } before do project.add_maintainer(user) diff --git a/spec/lib/gitlab/phabricator_import/cache/map_spec.rb b/spec/lib/gitlab/phabricator_import/cache/map_spec.rb index 14a5d40d445..b2a63e4f026 100644 --- a/spec/lib/gitlab/phabricator_import/cache/map_spec.rb +++ b/spec/lib/gitlab/phabricator_import/cache/map_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe Gitlab::PhabricatorImport::Cache::Map, :clean_gitlab_redis_cache do - set(:project) { create(:project) } + let_it_be(:project) { create(:project) } let(:redis) { Gitlab::Redis::Cache } subject(:map) { described_class.new(project) } diff --git a/spec/lib/gitlab/phabricator_import/issues/task_importer_spec.rb b/spec/lib/gitlab/phabricator_import/issues/task_importer_spec.rb index 06ed264e781..79f11d7fae6 100644 --- a/spec/lib/gitlab/phabricator_import/issues/task_importer_spec.rb +++ b/spec/lib/gitlab/phabricator_import/issues/task_importer_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' describe Gitlab::PhabricatorImport::Issues::TaskImporter do - set(:project) { create(:project) } + let_it_be(:project) { create(:project) } let(:task) do Gitlab::PhabricatorImport::Representation::Task.new( { diff --git a/spec/lib/gitlab/project_template_spec.rb b/spec/lib/gitlab/project_template_spec.rb index a2e3e2146f3..528eeb0f919 100644 --- a/spec/lib/gitlab/project_template_spec.rb +++ b/spec/lib/gitlab/project_template_spec.rb @@ -73,7 +73,7 @@ describe Gitlab::ProjectTemplate do end describe 'validate all templates' do - set(:admin) { create(:admin) } + let_it_be(:admin) { create(:admin) } described_class.all.each do |template| it "#{template.name} has a valid archive" do diff --git a/spec/lib/gitlab/repo_path_spec.rb b/spec/lib/gitlab/repo_path_spec.rb index cffd7cc89e7..2aeb69db2cb 100644 --- a/spec/lib/gitlab/repo_path_spec.rb +++ b/spec/lib/gitlab/repo_path_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' describe ::Gitlab::RepoPath do describe '.parse' do - set(:project) { create(:project, :repository) } + let_it_be(:project) { create(:project, :repository) } context 'a repository storage path' do it 'parses a full repository path' do diff --git a/spec/lib/gitlab/sanitizers/exif_spec.rb b/spec/lib/gitlab/sanitizers/exif_spec.rb index f0b733817b3..58fba673f8e 100644 --- a/spec/lib/gitlab/sanitizers/exif_spec.rb +++ b/spec/lib/gitlab/sanitizers/exif_spec.rb @@ -7,9 +7,9 @@ describe Gitlab::Sanitizers::Exif do describe '#batch_clean' do context 'with image uploads' do - set(:upload1) { create(:upload, :with_file, :issuable_upload) } - set(:upload2) { create(:upload, :with_file, :personal_snippet_upload) } - set(:upload3) { create(:upload, :with_file, created_at: 3.days.ago) } + let_it_be(:upload1) { create(:upload, :with_file, :issuable_upload) } + let_it_be(:upload2) { create(:upload, :with_file, :personal_snippet_upload) } + let_it_be(:upload3) { create(:upload, :with_file, created_at: 3.days.ago) } it 'processes all uploads if range ID is not set' do expect(sanitizer).to receive(:clean).exactly(3).times diff --git a/spec/lib/gitlab/shell_spec.rb b/spec/lib/gitlab/shell_spec.rb index 7b8d1b6cd9b..19ffb6440be 100644 --- a/spec/lib/gitlab/shell_spec.rb +++ b/spec/lib/gitlab/shell_spec.rb @@ -4,8 +4,7 @@ require 'spec_helper' require 'stringio' describe Gitlab::Shell do - set(:project) { create(:project, :repository) } - + let_it_be(:project) { create(:project, :repository) } let(:repository) { project.repository } let(:gitlab_shell) { described_class.new } let(:popen_vars) { { 'GIT_TERMINAL_PROMPT' => ENV['GIT_TERMINAL_PROMPT'] } } diff --git a/spec/lib/gitlab/slash_commands/issue_move_spec.rb b/spec/lib/gitlab/slash_commands/issue_move_spec.rb index 962ac3668bc..1a45b0e06ba 100644 --- a/spec/lib/gitlab/slash_commands/issue_move_spec.rb +++ b/spec/lib/gitlab/slash_commands/issue_move_spec.rb @@ -22,11 +22,11 @@ describe Gitlab::SlashCommands::IssueMove, service: true do end describe '#execute' do - set(:user) { create(:user) } - set(:issue) { create(:issue) } - set(:chat_name) { create(:chat_name, user: user) } - set(:project) { issue.project } - set(:other_project) { create(:project, namespace: project.namespace) } + let_it_be(:user) { create(:user) } + let_it_be(:issue) { create(:issue) } + let_it_be(:chat_name) { create(:chat_name, user: user) } + let_it_be(:project) { issue.project } + let_it_be(:other_project) { create(:project, namespace: project.namespace) } before do [project, other_project].each { |prj| prj.add_maintainer(user) } diff --git a/spec/lib/gitlab/slash_commands/presenters/issue_move_spec.rb b/spec/lib/gitlab/slash_commands/presenters/issue_move_spec.rb index 56b64d32192..7726c3b6a87 100644 --- a/spec/lib/gitlab/slash_commands/presenters/issue_move_spec.rb +++ b/spec/lib/gitlab/slash_commands/presenters/issue_move_spec.rb @@ -3,11 +3,11 @@ require 'spec_helper' describe Gitlab::SlashCommands::Presenters::IssueMove do - set(:admin) { create(:admin) } - set(:project) { create(:project) } - set(:other_project) { create(:project) } - set(:old_issue) { create(:issue, project: project) } - set(:new_issue) { Issues::MoveService.new(project, admin).execute(old_issue, other_project) } + let_it_be(:admin) { create(:admin) } + let_it_be(:project, reload: true) { create(:project) } + let_it_be(:other_project) { create(:project) } + let_it_be(:old_issue, reload: true) { create(:issue, project: project) } + let(:new_issue) { Issues::MoveService.new(project, admin).execute(old_issue, other_project) } let(:attachment) { subject[:attachments].first } subject { described_class.new(new_issue).present(old_issue) } diff --git a/spec/lib/gitlab/template/finders/repo_template_finders_spec.rb b/spec/lib/gitlab/template/finders/repo_template_finders_spec.rb index c8f2a37c5d6..cd5cde76b73 100644 --- a/spec/lib/gitlab/template/finders/repo_template_finders_spec.rb +++ b/spec/lib/gitlab/template/finders/repo_template_finders_spec.rb @@ -3,8 +3,7 @@ require 'spec_helper' describe Gitlab::Template::Finders::RepoTemplateFinder do - set(:project) { create(:project, :repository) } - + let_it_be(:project) { create(:project, :repository) } let(:categories) { { 'HTML' => 'html' } } subject(:finder) { described_class.new(project, 'files/', '.html', categories) } diff --git a/spec/lib/gitlab/workhorse_spec.rb b/spec/lib/gitlab/workhorse_spec.rb index 89381057f6b..921ed568b71 100644 --- a/spec/lib/gitlab/workhorse_spec.rb +++ b/spec/lib/gitlab/workhorse_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe Gitlab::Workhorse do - set(:project) { create(:project, :repository) } + let_it_be(:project) { create(:project, :repository) } let(:repository) { project.repository } def decode_workhorse_header(array) diff --git a/spec/support/capybara.rb b/spec/support/capybara.rb index 5ae042e4148..1a64ffea8f4 100644 --- a/spec/support/capybara.rb +++ b/spec/support/capybara.rb @@ -17,7 +17,8 @@ JS_CONSOLE_FILTER = Regexp.union([ '"[HMR] Waiting for update signal from WDS..."', '"[WDS] Hot Module Replacement enabled."', '"[WDS] Live Reloading enabled."', - "Download the Vue Devtools extension" + 'Download the Vue Devtools extension', + 'Download the Apollo DevTools' ]) CAPYBARA_WINDOW_SIZE = [1366, 768].freeze |