diff options
Diffstat (limited to 'spec')
-rw-r--r-- | spec/finders/issues_finder_spec.rb | 28 | ||||
-rw-r--r-- | spec/frontend/alert_handler_spec.js | 46 | ||||
-rw-r--r-- | spec/lib/gitlab_danger_spec.rb | 2 | ||||
-rw-r--r-- | spec/requests/api/merge_requests_spec.rb | 22 | ||||
-rw-r--r-- | spec/requests/api/notes_spec.rb | 4 | ||||
-rw-r--r-- | spec/requests/git_http_spec.rb | 2 | ||||
-rw-r--r-- | spec/requests/lfs_http_spec.rb | 8 | ||||
-rw-r--r-- | spec/requests/profiles/notifications_controller_spec.rb | 4 | ||||
-rw-r--r-- | spec/support/shared_examples/controllers/issuables_list_metadata_shared_examples.rb | 4 | ||||
-rw-r--r-- | spec/support/shared_examples/uploaders/workers/object_storage/migrate_uploads_shared_examples.rb | 4 | ||||
-rw-r--r-- | spec/workers/new_issue_worker_spec.rb | 4 | ||||
-rw-r--r-- | spec/workers/new_merge_request_worker_spec.rb | 4 | ||||
-rw-r--r-- | spec/workers/run_pipeline_schedule_worker_spec.rb | 2 |
13 files changed, 81 insertions, 53 deletions
diff --git a/spec/finders/issues_finder_spec.rb b/spec/finders/issues_finder_spec.rb index 303bfc59f61..28764f98fe1 100644 --- a/spec/finders/issues_finder_spec.rb +++ b/spec/finders/issues_finder_spec.rb @@ -1004,36 +1004,22 @@ RSpec.describe IssuesFinder do end end - context 'when attempt_group_search_optimizations is unset and attempt_project_search_optimizations is set' do - let(:params) { { search: 'foo', attempt_project_search_optimizations: true } } - - context 'and the corresponding feature flag is disabled' do - before do - stub_feature_flags(attempt_project_search_optimizations: false) - end + context 'when all conditions are met' do + context "uses group search optimization" do + let(:params) { { search: 'foo', attempt_group_search_optimizations: true } } - it 'returns false' do - expect(finder.use_cte_for_search?).to be_falsey + it 'returns true' do + expect(finder.use_cte_for_search?).to be_truthy end end - context 'and the corresponding feature flag is enabled' do - before do - stub_feature_flags(attempt_project_search_optimizations: true) - end + context "uses project search optimization" do + let(:params) { { search: 'foo', attempt_project_search_optimizations: true } } it 'returns true' do expect(finder.use_cte_for_search?).to be_truthy end end end - - context 'when all conditions are met' do - let(:params) { { search: 'foo', attempt_group_search_optimizations: true } } - - it 'returns true' do - expect(finder.use_cte_for_search?).to be_truthy - end - end end end diff --git a/spec/frontend/alert_handler_spec.js b/spec/frontend/alert_handler_spec.js new file mode 100644 index 00000000000..ba2f4f24aa5 --- /dev/null +++ b/spec/frontend/alert_handler_spec.js @@ -0,0 +1,46 @@ +import { setHTMLFixture } from 'helpers/fixtures'; +import initAlertHandler from '~/alert_handler'; + +describe('Alert Handler', () => { + const ALERT_SELECTOR = 'gl-alert'; + const CLOSE_SELECTOR = 'gl-alert-dismiss'; + const ALERT_HTML = `<div class="${ALERT_SELECTOR}"><button class="${CLOSE_SELECTOR}">Dismiss</button></div>`; + + const findFirstAlert = () => document.querySelector(`.${ALERT_SELECTOR}`); + const findAllAlerts = () => document.querySelectorAll(`.${ALERT_SELECTOR}`); + const findFirstCloseButton = () => document.querySelector(`.${CLOSE_SELECTOR}`); + + describe('initAlertHandler', () => { + describe('with one alert', () => { + beforeEach(() => { + setHTMLFixture(ALERT_HTML); + initAlertHandler(); + }); + + it('should render the alert', () => { + expect(findFirstAlert()).toExist(); + }); + + it('should dismiss the alert on click', () => { + findFirstCloseButton().click(); + expect(findFirstAlert()).not.toExist(); + }); + }); + + describe('with two alerts', () => { + beforeEach(() => { + setHTMLFixture(ALERT_HTML + ALERT_HTML); + initAlertHandler(); + }); + + it('should render two alerts', () => { + expect(findAllAlerts()).toHaveLength(2); + }); + + it('should dismiss only one alert on click', () => { + findFirstCloseButton().click(); + expect(findAllAlerts()).toHaveLength(1); + }); + }); + }); +}); diff --git a/spec/lib/gitlab_danger_spec.rb b/spec/lib/gitlab_danger_spec.rb index 49c7a46f321..b534823a888 100644 --- a/spec/lib/gitlab_danger_spec.rb +++ b/spec/lib/gitlab_danger_spec.rb @@ -9,7 +9,7 @@ RSpec.describe GitlabDanger do describe '.local_warning_message' do it 'returns an informational message with rules that can run' do - expect(described_class.local_warning_message).to eq('==> Only the following Danger rules can be run locally: changes_size, documentation, frozen_string, duplicate_yarn_dependencies, prettier, eslint, karma, database, commit_messages, telemetry, utility_css') + expect(described_class.local_warning_message).to eq('==> Only the following Danger rules can be run locally: changes_size, documentation, frozen_string, duplicate_yarn_dependencies, prettier, eslint, karma, database, commit_messages, telemetry, utility_css, pajamas') end end diff --git a/spec/requests/api/merge_requests_spec.rb b/spec/requests/api/merge_requests_spec.rb index eb2c4a3fbd5..7c008fcd0da 100644 --- a/spec/requests/api/merge_requests_spec.rb +++ b/spec/requests/api/merge_requests_spec.rb @@ -912,7 +912,7 @@ RSpec.describe API::MergeRequests do let(:parent_group) { create(:group) } before do - group.update(parent_id: parent_group.id) + group.update!(parent_id: parent_group.id) merge_request_merged.reload end @@ -1027,7 +1027,7 @@ RSpec.describe API::MergeRequests do let(:non_member) { create(:user) } before do - merge_request.update(author: non_member) + merge_request.update!(author: non_member) end it 'exposes first_contribution as true' do @@ -1084,8 +1084,8 @@ RSpec.describe API::MergeRequests do let(:merge_request) { create(:merge_request, :simple, author: user, source_project: project, source_branch: 'markdown', title: "Test") } before do - merge_request.update(head_pipeline: create(:ci_pipeline)) - merge_request.project.project_feature.update(builds_access_level: 10) + merge_request.update!(head_pipeline: create(:ci_pipeline)) + merge_request.project.project_feature.update!(builds_access_level: 10) end context 'when user can read the pipeline' do @@ -1691,7 +1691,7 @@ RSpec.describe API::MergeRequests do end it 'returns 403 when target project has disabled merge requests' do - project.project_feature.update(merge_requests_access_level: 0) + project.project_feature.update!(merge_requests_access_level: 0) post api("/projects/#{forked_project.id}/merge_requests", user2), params: { @@ -2146,7 +2146,7 @@ RSpec.describe API::MergeRequests do let(:source_branch) { merge_request.source_branch } before do - merge_request.update(merge_params: { 'force_remove_source_branch' => true }) + merge_request.update!(merge_params: { 'force_remove_source_branch' => true }) end it 'removes the source branch' do @@ -2173,7 +2173,7 @@ RSpec.describe API::MergeRequests do let(:merge_request) { create(:merge_request, :rebased, source_project: project, squash: true) } before do - project.update(merge_requests_ff_only_enabled: true) + project.update!(merge_requests_ff_only_enabled: true) end it "records the squash commit SHA and returns it in the response" do @@ -2263,7 +2263,7 @@ RSpec.describe API::MergeRequests do describe "PUT /projects/:id/merge_requests/:merge_request_iid" do context 'updates force_remove_source_branch properly' do it 'sets to false' do - merge_request.update(merge_params: { 'force_remove_source_branch' => true } ) + merge_request.update!(merge_params: { 'force_remove_source_branch' => true } ) expect(merge_request.force_remove_source_branch?).to be_truthy @@ -2275,7 +2275,7 @@ RSpec.describe API::MergeRequests do end it 'sets to true' do - merge_request.update(merge_params: { 'force_remove_source_branch' => false } ) + merge_request.update!(merge_params: { 'force_remove_source_branch' => false } ) expect(merge_request.force_remove_source_branch?).to be_falsey @@ -2760,7 +2760,7 @@ RSpec.describe API::MergeRequests do merge_request merge_request.created_at += 1.hour merge_request.updated_at += 30.minutes - merge_request.save + merge_request.save! merge_request end @@ -2768,7 +2768,7 @@ RSpec.describe API::MergeRequests do merge_request_closed merge_request_closed.created_at -= 1.hour merge_request_closed.updated_at -= 30.minutes - merge_request_closed.save + merge_request_closed.save! merge_request_closed end end diff --git a/spec/requests/api/notes_spec.rb b/spec/requests/api/notes_spec.rb index ca4ebd3689f..baab72d106f 100644 --- a/spec/requests/api/notes_spec.rb +++ b/spec/requests/api/notes_spec.rb @@ -81,7 +81,7 @@ RSpec.describe API::Notes do context "issue is confidential" do before do - ext_issue.update(confidential: true) + ext_issue.update!(confidential: true) end it "returns 404" do @@ -183,7 +183,7 @@ RSpec.describe API::Notes do context "when issue is confidential" do before do - issue.update(confidential: true) + issue.update!(confidential: true) end it "returns 404" do diff --git a/spec/requests/git_http_spec.rb b/spec/requests/git_http_spec.rb index 5b6ffabb7ac..dbba2b35d74 100644 --- a/spec/requests/git_http_spec.rb +++ b/spec/requests/git_http_spec.rb @@ -763,7 +763,7 @@ RSpec.describe 'Git HTTP requests' do context 'and build created by' do before do - build.update(user: user) + build.update!(user: user) project.add_reporter(user) end diff --git a/spec/requests/lfs_http_spec.rb b/spec/requests/lfs_http_spec.rb index fd4261fb50d..31bb0586e9f 100644 --- a/spec/requests/lfs_http_spec.rb +++ b/spec/requests/lfs_http_spec.rb @@ -786,7 +786,7 @@ RSpec.describe 'Git LFS API and storage' do let(:authorization) { authorize_deploy_key } let(:update_user_permissions) do - project.deploy_keys_projects.create(deploy_key: key, can_push: true) + project.deploy_keys_projects.create!(deploy_key: key, can_push: true) end it_behaves_like 'pushes new LFS objects', renew_authorization: false @@ -991,7 +991,7 @@ RSpec.describe 'Git LFS API and storage' do context 'and workhorse requests upload finalize for a new LFS object' do before do - lfs_object.destroy + lfs_object.destroy! end context 'with object storage disabled' do @@ -1009,7 +1009,7 @@ RSpec.describe 'Git LFS API and storage' do end let(:tmp_object) do - fog_connection.directories.new(key: 'lfs-objects').files.create( + fog_connection.directories.new(key: 'lfs-objects').files.create( # rubocop: disable Rails/SaveBang key: 'tmp/uploads/12312300', body: 'content' ) @@ -1080,7 +1080,7 @@ RSpec.describe 'Git LFS API and storage' do context 'without the lfs object' do before do - lfs_object.destroy + lfs_object.destroy! end it 'rejects slashes in the tempfile name (path traversal)' do diff --git a/spec/requests/profiles/notifications_controller_spec.rb b/spec/requests/profiles/notifications_controller_spec.rb index d162f5b220d..87669b3594c 100644 --- a/spec/requests/profiles/notifications_controller_spec.rb +++ b/spec/requests/profiles/notifications_controller_spec.rb @@ -5,8 +5,8 @@ require 'spec_helper' RSpec.describe 'view user notifications' do let(:user) do create(:user) do |user| - user.emails.create(email: 'original@example.com', confirmed_at: Time.current) - user.emails.create(email: 'new@example.com', confirmed_at: Time.current) + user.emails.create!(email: 'original@example.com', confirmed_at: Time.current) + user.emails.create!(email: 'new@example.com', confirmed_at: Time.current) user.notification_email = 'original@example.com' user.save! end diff --git a/spec/support/shared_examples/controllers/issuables_list_metadata_shared_examples.rb b/spec/support/shared_examples/controllers/issuables_list_metadata_shared_examples.rb index 62a1a07b6c1..02915206cc5 100644 --- a/spec/support/shared_examples/controllers/issuables_list_metadata_shared_examples.rb +++ b/spec/support/shared_examples/controllers/issuables_list_metadata_shared_examples.rb @@ -42,10 +42,6 @@ RSpec.shared_examples 'issuables list meta-data' do |issuable_type, action = nil let(:result_issuable) { issuables.first } let(:search) { result_issuable.title } - before do - stub_feature_flags(attempt_project_search_optimizations: true) - end - # .simple_sorts is the same across all Sortable classes sorts = ::Issue.simple_sorts.keys + %w[popularity priority label_priority] sorts.each do |sort| diff --git a/spec/support/shared_examples/uploaders/workers/object_storage/migrate_uploads_shared_examples.rb b/spec/support/shared_examples/uploaders/workers/object_storage/migrate_uploads_shared_examples.rb index f143cbc7165..5a9a3dfc2d2 100644 --- a/spec/support/shared_examples/uploaders/workers/object_storage/migrate_uploads_shared_examples.rb +++ b/spec/support/shared_examples/uploaders/workers/object_storage/migrate_uploads_shared_examples.rb @@ -63,7 +63,7 @@ RSpec.shared_examples 'uploads migration worker' do if success > 0 it 'outputs the reports' do - expect(Rails.logger).to receive(:info).with(%r{Migrated #{success}/#{total} files}) + expect(Gitlab::AppLogger).to receive(:info).with(%r{Migrated #{success}/#{total} files}) perform(uploads) end @@ -71,7 +71,7 @@ RSpec.shared_examples 'uploads migration worker' do if failures > 0 it 'outputs upload failures' do - expect(Rails.logger).to receive(:warn).with(/Error .* I am a teapot/) + expect(Gitlab::AppLogger).to receive(:warn).with(/Error .* I am a teapot/) perform(uploads) end diff --git a/spec/workers/new_issue_worker_spec.rb b/spec/workers/new_issue_worker_spec.rb index d56732770a3..570b5d9c06e 100644 --- a/spec/workers/new_issue_worker_spec.rb +++ b/spec/workers/new_issue_worker_spec.rb @@ -15,7 +15,7 @@ RSpec.describe NewIssueWorker do end it 'logs an error' do - expect(Rails.logger).to receive(:error).with('NewIssueWorker: couldn\'t find Issue with ID=99, skipping job') + expect(Gitlab::AppLogger).to receive(:error).with('NewIssueWorker: couldn\'t find Issue with ID=99, skipping job') worker.perform(99, create(:user).id) end @@ -32,7 +32,7 @@ RSpec.describe NewIssueWorker do it 'logs an error' do issue = create(:issue) - expect(Rails.logger).to receive(:error).with('NewIssueWorker: couldn\'t find User with ID=99, skipping job') + expect(Gitlab::AppLogger).to receive(:error).with('NewIssueWorker: couldn\'t find User with ID=99, skipping job') worker.perform(issue.id, 99) end diff --git a/spec/workers/new_merge_request_worker_spec.rb b/spec/workers/new_merge_request_worker_spec.rb index 37449540db5..3d78b9703fa 100644 --- a/spec/workers/new_merge_request_worker_spec.rb +++ b/spec/workers/new_merge_request_worker_spec.rb @@ -17,7 +17,7 @@ RSpec.describe NewMergeRequestWorker do it 'logs an error' do user = create(:user) - expect(Rails.logger).to receive(:error).with('NewMergeRequestWorker: couldn\'t find MergeRequest with ID=99, skipping job') + expect(Gitlab::AppLogger).to receive(:error).with('NewMergeRequestWorker: couldn\'t find MergeRequest with ID=99, skipping job') worker.perform(99, user.id) end @@ -34,7 +34,7 @@ RSpec.describe NewMergeRequestWorker do it 'logs an error' do merge_request = create(:merge_request) - expect(Rails.logger).to receive(:error).with('NewMergeRequestWorker: couldn\'t find User with ID=99, skipping job') + expect(Gitlab::AppLogger).to receive(:error).with('NewMergeRequestWorker: couldn\'t find User with ID=99, skipping job') worker.perform(merge_request.id, 99) end diff --git a/spec/workers/run_pipeline_schedule_worker_spec.rb b/spec/workers/run_pipeline_schedule_worker_spec.rb index 4999909934b..0b9f95e09fe 100644 --- a/spec/workers/run_pipeline_schedule_worker_spec.rb +++ b/spec/workers/run_pipeline_schedule_worker_spec.rb @@ -59,7 +59,7 @@ RSpec.describe RunPipelineScheduleWorker do end it 'logging a pipeline error' do - expect(Rails.logger) + expect(Gitlab::AppLogger) .to receive(:error) .with(a_string_matching('ActiveRecord::StatementInvalid')) .and_call_original |