From ce5bc4f8cac6fbabf44e3881b0fd4258e9eefd9e Mon Sep 17 00:00:00 2001 From: Robert Speicher <rspeicher@gmail.com> Date: Thu, 2 Jul 2015 12:35:49 -0400 Subject: [PATCH] RSpec 3 updates for EE --- features/steps/admin/appearance.rb | 22 +++---- features/steps/admin/email.rb | 2 +- features/steps/admin/groups.rb | 4 +- features/steps/admin/settings.rb | 2 +- features/steps/admin/users.rb | 2 +- features/steps/group_hooks.rb | 14 ++--- features/steps/groups.rb | 12 ++-- features/steps/groups_management.rb | 12 ++-- features/steps/project/audit_event.rb | 4 +- features/steps/project/git_hooks.rb | 6 +- features/steps/project/merge_requests.rb | 26 ++++---- features/steps/project/network_graph.rb | 2 +- features/steps/project/project.rb | 12 ++-- features/steps/project/project_group_links.rb | 6 +- features/steps/project/redirects.rb | 2 +- features/steps/project/services.rb | 8 +-- features/steps/project/team_management.rb | 6 +- features/steps/project/wiki.rb | 4 +- features/steps/search.rb | 6 +- features/steps/shared/paths.rb | 2 +- features/steps/user.rb | 4 +- spec/features/issues_spec.rb | 2 +- spec/helpers/merge_request_helper_spec.rb | 12 ++-- spec/helpers/oauth_helper_spec.rb | 4 +- spec/lib/gitlab/auth_spec.rb | 10 +-- spec/lib/gitlab/git_access_spec.rb | 20 +++--- .../gitlab/kerberos/authentication_spec.rb | 8 +-- spec/lib/gitlab/ldap/access_spec.rb | 63 +++++++++---------- spec/lib/gitlab/ldap/person_spec.rb | 2 +- .../lib/gitlab/satellite/merge_action_spec.rb | 48 +++++++------- spec/mailers/notify_spec.rb | 4 +- spec/models/concerns/mentionable_spec.rb | 4 +- spec/models/ldap_group_link_spec.rb | 2 +- spec/models/license_spec.rb | 10 +-- spec/models/merge_request_spec.rb | 4 +- .../project_services/jenkins_service_spec.rb | 2 +- .../project_services/jira_service_spec.rb | 6 +- spec/models/user_spec.rb | 4 +- spec/requests/api/ldap_group_links_spec.rb | 6 +- spec/requests/api/ldap_spec.rb | 24 ++++--- spec/requests/api/project_git_hook_spec.rb | 44 ++++++------- spec/requests/api/project_members_spec.rb | 4 +- spec/requests/api/projects_spec.rb | 14 ++--- spec/requests/api/system_hooks_spec.rb | 2 +- spec/requests/api/users_spec.rb | 6 +- spec/services/git_push_service_spec.rb | 8 +-- .../services/ldap_group_reset_service_spec.rb | 12 ++-- spec/services/projects/create_service_spec.rb | 2 +- spec/services/system_note_service_spec.rb | 6 +- 49 files changed, 241 insertions(+), 250 deletions(-) diff --git a/features/steps/admin/appearance.rb b/features/steps/admin/appearance.rb index 4127d7af56c..441228d2986 100644 --- a/features/steps/admin/appearance.rb +++ b/features/steps/admin/appearance.rb @@ -9,14 +9,14 @@ class Spinach::Features::AdminAppearance < Spinach::FeatureSteps end step 'I should be redirected to admin appearance page' do - current_path.should == admin_appearances_path - page.should have_content 'Appearance settings' + expect(current_path).to eq admin_appearances_path + expect(page).to have_content 'Appearance settings' end step 'I should see newly created appearance' do - page.should have_field('appearance_title', with: 'MyCompany') - page.should have_field('appearance_description', with: 'dev server') - page.should have_content 'Last edit' + expect(page).to have_field('appearance_title', with: 'MyCompany') + expect(page).to have_field('appearance_description', with: 'dev server') + expect(page).to have_content 'Last edit' end step 'I click preview button' do @@ -28,8 +28,8 @@ class Spinach::Features::AdminAppearance < Spinach::FeatureSteps end step 'I should see a customized appearance' do - page.should have_content appearance.title - page.should have_content appearance.description + expect(page).to have_content appearance.title + expect(page).to have_content appearance.description end step 'I attach a logo' do @@ -43,11 +43,11 @@ class Spinach::Features::AdminAppearance < Spinach::FeatureSteps end step 'I should see a logo' do - page.should have_xpath('//img[@src="/uploads/appearance/logo/1/gitlab_logo.png"]') + expect(page).to have_xpath('//img[@src="/uploads/appearance/logo/1/gitlab_logo.png"]') end step 'I should see header logos' do - page.should have_xpath('//img[@src="/uploads/appearance/light_logo/1/header_logo_light.png"]') + expect(page).to have_xpath('//img[@src="/uploads/appearance/light_logo/1/header_logo_light.png"]') end step 'I remove the logo' do @@ -59,11 +59,11 @@ class Spinach::Features::AdminAppearance < Spinach::FeatureSteps end step 'I should see logo removed' do - page.should_not have_xpath('//img[@src="/uploads/appearance/logo/1/gitlab_logo.png"]') + expect(page).not_to have_xpath('//img[@src="/uploads/appearance/logo/1/gitlab_logo.png"]') end step 'I should see header logos removed' do - page.should_not have_xpath('//img[@src="/uploads/appearance/light_logo/1/header_logo_light.png"]') + expect(page).not_to have_xpath('//img[@src="/uploads/appearance/light_logo/1/header_logo_light.png"]') end def appearance diff --git a/features/steps/admin/email.rb b/features/steps/admin/email.rb index 996a3d03090..a565f4b31d4 100644 --- a/features/steps/admin/email.rb +++ b/features/steps/admin/email.rb @@ -50,7 +50,7 @@ class Spinach::Features::AdminEmail < Spinach::FeatureSteps end step 'I get redirected to the sign in path' do - current_path.should == root_path + expect(current_path).to eq root_path end step 'unsubscribed email is sent' do diff --git a/features/steps/admin/groups.rb b/features/steps/admin/groups.rb index f420c83d699..9a3f4158732 100644 --- a/features/steps/admin/groups.rb +++ b/features/steps/admin/groups.rb @@ -68,8 +68,8 @@ class Spinach::Features::AdminGroups < Spinach::FeatureSteps end step 'I should see project shared with group' do - page.should have_content(shared_project.name_with_namespace) - page.should have_content "Projects shared with" + expect(page).to have_content(shared_project.name_with_namespace) + expect(page).to have_content "Projects shared with" end step 'we have user "John Doe" in group' do diff --git a/features/steps/admin/settings.rb b/features/steps/admin/settings.rb index 3c69e990376..aeb94b2a0a3 100644 --- a/features/steps/admin/settings.rb +++ b/features/steps/admin/settings.rb @@ -22,7 +22,7 @@ class Spinach::Features::AdminSettings < Spinach::FeatureSteps end step 'I should see the help text' do - page.should have_content help_text + expect(page).to have_content help_text end step 'I go to help page' do diff --git a/features/steps/admin/users.rb b/features/steps/admin/users.rb index 6c4b91586d6..c55f15932be 100644 --- a/features/steps/admin/users.rb +++ b/features/steps/admin/users.rb @@ -149,7 +149,7 @@ class Spinach::Features::AdminUsers < Spinach::FeatureSteps step 'I should not see twitter details' do expect(page).to have_content 'Pete' - expect(page).to_not have_content 'twitter' + expect(page).not_to have_content 'twitter' end step 'click on ssh keys tab' do diff --git a/features/steps/group_hooks.rb b/features/steps/group_hooks.rb index 789846040aa..0b7d5261676 100644 --- a/features/steps/group_hooks.rb +++ b/features/steps/group_hooks.rb @@ -28,7 +28,7 @@ class Spinach::Features::GroupHooks < Spinach::FeatureSteps end step 'I should see group hook' do - page.should have_content @hook.url + expect(page).to have_content @hook.url end step 'I submit new hook' do @@ -38,8 +38,8 @@ class Spinach::Features::GroupHooks < Spinach::FeatureSteps end step 'I should see newly created hook' do - current_path.should == group_hooks_path(@group) - page.should have_content(@url) + expect(current_path).to eq group_hooks_path(@group) + expect(page).to have_content(@url) end step 'I click test hook button' do @@ -53,18 +53,18 @@ class Spinach::Features::GroupHooks < Spinach::FeatureSteps end step 'hook should be triggered' do - current_path.should == group_hooks_path(@group) - page.should have_selector '.flash-notice', + expect(current_path).to eq group_hooks_path(@group) + expect(page).to have_selector '.flash-notice', text: 'Hook successfully executed.' end step 'I should see hook error message' do - page.should have_selector '.flash-alert', + expect(page).to have_selector '.flash-alert', text: 'Hook execution failed. Ensure the group has a project with commits.' end step 'I should see hook service down error message' do - page.should have_selector '.flash-alert', + expect(page).to have_selector '.flash-alert', text: 'Hook execution failed. '\ 'Ensure hook URL is correct and '\ 'service is up.' diff --git a/features/steps/groups.rb b/features/steps/groups.rb index 0d00e0f8385..54ac01e696e 100644 --- a/features/steps/groups.rb +++ b/features/steps/groups.rb @@ -119,11 +119,11 @@ class Spinach::Features::Groups < Spinach::FeatureSteps step 'I should see the audit event listed' do within ('table#audits') do - page.should have_content 'Add user access as reporter' - page.should have_content 'Change access level from reporter to developer' - page.should have_content 'Remove user access' - page.should have_content('John Doe', count: 3) - page.should have_content('Mary Jane', count: 3) + expect(page).to have_content 'Add user access as reporter' + expect(page).to have_content 'Change access level from reporter to developer' + expect(page).to have_content 'Remove user access' + expect(page).to have_content('John Doe', count: 3) + expect(page).to have_content('Mary Jane', count: 3) end end @@ -143,7 +143,7 @@ class Spinach::Features::Groups < Spinach::FeatureSteps end Then 'I should be redirected to group page' do - current_path.should == group_path(Group.last) + expect(current_path).to eq group_path(Group.last) end And 'I change group name' do diff --git a/features/steps/groups_management.rb b/features/steps/groups_management.rb index 3a6562d5503..b7f98b0208c 100644 --- a/features/steps/groups_management.rb +++ b/features/steps/groups_management.rb @@ -28,9 +28,9 @@ class Spinach::Features::GroupsManagement < Spinach::FeatureSteps end step 'I can control user membership' do - page.should have_button 'Add members' - page.should have_link 'Import members' - page.should have_selector '#project_member_access_level' + expect(page).to have_button 'Add members' + expect(page).to have_link 'Import members' + expect(page).to have_selector '#project_member_access_level' end step 'I reload "Open" project members page' do @@ -57,8 +57,8 @@ class Spinach::Features::GroupsManagement < Spinach::FeatureSteps end step 'I cannot control user membership from project page' do - page.should_not have_button 'Add members' - page.should_not have_link 'Import members' - page.should have_selector '#project_member_access_level' + expect(page).not_to have_button 'Add members' + expect(page).not_to have_link 'Import members' + expect(page).to have_selector '#project_member_access_level' end end diff --git a/features/steps/project/audit_event.rb b/features/steps/project/audit_event.rb index e1f82b4a94b..cd1e02b0434 100644 --- a/features/steps/project/audit_event.rb +++ b/features/steps/project/audit_event.rb @@ -18,10 +18,10 @@ class Spinach::Features::AuditEvent < Spinach::FeatureSteps end step 'I see remove deploy key event' do - page.should have_content("Remove deploy key") + expect(page).to have_content("Remove deploy key") end step 'I see deploy key event' do - page.should have_content("Add deploy key") + expect(page).to have_content("Add deploy key") end end diff --git a/features/steps/project/git_hooks.rb b/features/steps/project/git_hooks.rb index 025bbb3e41f..b8ee48934c7 100644 --- a/features/steps/project/git_hooks.rb +++ b/features/steps/project/git_hooks.rb @@ -10,9 +10,9 @@ class Spinach::Features::GitHooks < Spinach::FeatureSteps step 'I should see git hook form' do - page.should have_selector('input#git_hook_commit_message_regex') - page.should have_content "Commit message" - page.should have_content "Commit author's email" + expect(page).to have_selector('input#git_hook_commit_message_regex') + expect(page).to have_content "Commit message" + expect(page).to have_content "Commit author's email" end diff --git a/features/steps/project/merge_requests.rb b/features/steps/project/merge_requests.rb index e807b767685..5e40e982d1b 100644 --- a/features/steps/project/merge_requests.rb +++ b/features/steps/project/merge_requests.rb @@ -167,24 +167,24 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps step 'I should see a discussion has started on diff' do page.within(".notes .discussion") do - page.should have_content "#{current_user.name} started a discussion" - page.should have_content sample_commit.line_code_path - page.should have_content "Line is wrong" + expect(page).to have_content "#{current_user.name} started a discussion" + expect(page).to have_content sample_commit.line_code_path + expect(page).to have_content "Line is wrong" end end step 'I should see a discussion has started on commit diff' do page.within(".notes .discussion") do - page.should have_content "#{current_user.name} started a discussion on commit" - page.should have_content sample_commit.line_code_path - page.should have_content "Line is wrong" + expect(page).to have_content "#{current_user.name} started a discussion on commit" + expect(page).to have_content sample_commit.line_code_path + expect(page).to have_content "Line is wrong" end end step 'I should see a discussion has started on commit' do page.within(".notes .discussion") do - page.should have_content "#{current_user.name} started a discussion on commit" - page.should have_content "One comment to rule them all" + expect(page).to have_content "#{current_user.name} started a discussion on commit" + expect(page).to have_content "One comment to rule them all" end end @@ -203,9 +203,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps end step 'I accept this merge request' do - Gitlab::Satellite::MergeAction.any_instance.stub( - merge!: true, - ) + allow_any_instance_of(Gitlab::Satellite::MergeAction).to receive(:merge!).and_return(true) page.within '.mr-state-widget' do click_button "Accept Merge Request" @@ -299,7 +297,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps end step 'I should see description field pre-filled' do - find_field('merge_request_description').value.should == 'This merge request should contain the following.' + expect(find_field('merge_request_description').value).to eq 'This merge request should contain the following.' end step 'I unfold diff' do @@ -356,13 +354,13 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps step 'I should not see merge button' do within '.mr-state-widget' do - page.should_not have_button("Accept Merge Request") + expect(page).not_to have_button("Accept Merge Request") end end step 'I should see approved merge request "Bug NS-04"' do within '.mr-state-widget' do - page.should have_button("Accept Merge Request") + expect(page).to have_button("Accept Merge Request") end end diff --git a/features/steps/project/network_graph.rb b/features/steps/project/network_graph.rb index 992cf2734fd..81494954d6e 100644 --- a/features/steps/project/network_graph.rb +++ b/features/steps/project/network_graph.rb @@ -9,7 +9,7 @@ class Spinach::Features::ProjectNetworkGraph < Spinach::FeatureSteps When 'I visit project "Shop" network page' do # Stub Graph max_size to speed up test (10 commits vs. 650) - Network::Graph.stub(max_count: 10) + allow(Network::Graph).to receive(:max_count).and_return(10) project = Project.find_by(name: "Shop") visit namespace_project_network_path(project.namespace, project, "master") diff --git a/features/steps/project/project.rb b/features/steps/project/project.rb index 07031213f0c..0fe172c397e 100644 --- a/features/steps/project/project.rb +++ b/features/steps/project/project.rb @@ -15,7 +15,7 @@ class Spinach::Features::Project < Spinach::FeatureSteps step 'I should see project with new settings' do expect(find_field('project_name').value).to eq 'NewName' - expect(find('#project_issues_enabled')).to_not be_checked + expect(find('#project_issues_enabled')).not_to be_checked expect(find('#project_merge_requests_enabled')).to be_checked end @@ -74,12 +74,12 @@ class Spinach::Features::Project < Spinach::FeatureSteps end step 'I should see project with merge request template saved' do - find_field('project_merge_requests_template').value.should == 'This merge request should contain the following.' + expect(find_field('project_merge_requests_template').value).to eq 'This merge request should contain the following.' end step 'I should see project "Shop" README link' do within '.project-side' do - page.should have_content "README.md" + expect(page).to have_content "README.md" end end @@ -149,9 +149,9 @@ class Spinach::Features::Project < Spinach::FeatureSteps step 'I should see the audit event listed' do within ('table#audits') do - page.should have_content "Change access level from developer to master" - page.should have_content(project.owner.name) - page.should have_content('Pete') + expect(page).to have_content "Change access level from developer to master" + expect(page).to have_content(project.owner.name) + expect(page).to have_content('Pete') end end diff --git a/features/steps/project/project_group_links.rb b/features/steps/project/project_group_links.rb index 1bdf03fe1f3..6e35d54fbca 100644 --- a/features/steps/project/project_group_links.rb +++ b/features/steps/project/project_group_links.rb @@ -6,13 +6,13 @@ class Spinach::Features::ProjectGroupLinks < Spinach::FeatureSteps step 'I should see project already shared with group "Ops"' do within '.enabled-groups' do - page.should have_content "Ops" + expect(page).to have_content "Ops" end end step 'I should see project is not shared with group "Market"' do within '.enabled-groups' do - page.should_not have_content "Market" + expect(page).not_to have_content "Market" end end @@ -25,7 +25,7 @@ class Spinach::Features::ProjectGroupLinks < Spinach::FeatureSteps step 'I should see project is shared with group "Market"' do within '.enabled-groups' do - page.should have_content "Market" + expect(page).to have_content "Market" end end diff --git a/features/steps/project/redirects.rb b/features/steps/project/redirects.rb index 0e724138a8a..7b1c9d2ab1e 100644 --- a/features/steps/project/redirects.rb +++ b/features/steps/project/redirects.rb @@ -17,7 +17,7 @@ class Spinach::Features::ProjectRedirects < Spinach::FeatureSteps end step 'I should see project "Community" home page' do - Gitlab.config.gitlab.should_receive(:host).and_return("www.example.com") + expect(Gitlab.config.gitlab).to receive(:host).and_return("www.example.com") page.within '.navbar-gitlab .title' do expect(page).to have_content 'Community' end diff --git a/features/steps/project/services.rb b/features/steps/project/services.rb index 06742a2c78f..12447759399 100644 --- a/features/steps/project/services.rb +++ b/features/steps/project/services.rb @@ -198,10 +198,10 @@ class Spinach::Features::ProjectServices < Spinach::FeatureSteps end step 'I should see jira service settings saved' do - find_field('Project url').value.should == 'http://jira.example' - find_field('Username').value.should == 'gitlab' - find_field('Password').value.should_not == 'gitlab' - find_field('Api version').value.should == '2' + expect(find_field('Project url').value).to eq 'http://jira.example' + expect(find_field('Username').value).to eq 'gitlab' + expect(find_field('Password').value).not_to eq 'gitlab' + expect(find_field('Api version').value).to eq '2' end step 'I click Atlassian Bamboo CI service link' do diff --git a/features/steps/project/team_management.rb b/features/steps/project/team_management.rb index 2298c4a53fe..80b9f53fd97 100644 --- a/features/steps/project/team_management.rb +++ b/features/steps/project/team_management.rb @@ -142,8 +142,8 @@ class Spinach::Features::ProjectTeamManagement < Spinach::FeatureSteps end step 'I should see "Opensource" group user listing' do - page.should have_content("Shared with OpenSource group, members with Master role (2)") - page.should have_content(@os_user1.name) - page.should have_content(@os_user2.name) + expect(page).to have_content("Shared with OpenSource group, members with Master role (2)") + expect(page).to have_content(@os_user1.name) + expect(page).to have_content(@os_user2.name) end end diff --git a/features/steps/project/wiki.rb b/features/steps/project/wiki.rb index eebfaee1ede..72e4f302f07 100644 --- a/features/steps/project/wiki.rb +++ b/features/steps/project/wiki.rb @@ -96,8 +96,8 @@ class Spinach::Features::ProjectWiki < Spinach::FeatureSteps step 'I click on existing image link' do file = Gollum::File.new(wiki.wiki) - Gollum::Wiki.any_instance.stub(:file).with("image.jpg", "master", true).and_return(file) - Gollum::File.any_instance.stub(:mime_type).and_return("image/jpeg") + allow_any_instance_of(Gollum::Wiki).to receive(:file).with("image.jpg", "master", true).and_return(file) + allow_any_instance_of(Gollum::File).to receive(:mime_type).and_return("image/jpeg") expect(page).to have_link('image', href: "image.jpg") click_on "image" end diff --git a/features/steps/search.rb b/features/steps/search.rb index 87893aa0205..ea71ca26a61 100644 --- a/features/steps/search.rb +++ b/features/steps/search.rb @@ -53,7 +53,7 @@ class Spinach::Features::Search < Spinach::FeatureSteps step 'I should see code results for project "Shop"' do page.within('.results') do - page.should have_content 'Update capybara, rspec-rails, poltergeist to recent versions' + expect(page).to have_content 'Update capybara, rspec-rails, poltergeist to recent versions' end end @@ -74,7 +74,7 @@ class Spinach::Features::Search < Spinach::FeatureSteps step 'I should see "Foo" link in the search results' do page.within('.results') do - find(:css, '.search-results').should have_link 'Foo' + expect(find(:css, '.search-results')).to have_link 'Foo' end end @@ -84,7 +84,7 @@ class Spinach::Features::Search < Spinach::FeatureSteps step 'I should see "test_wiki" link in the search results' do page.within('.results') do - find(:css, '.search-results').should have_link 'test_wiki.md' + expect(find(:css, '.search-results')).to have_link 'test_wiki.md' end end diff --git a/features/steps/shared/paths.rb b/features/steps/shared/paths.rb index b8dd819cd3a..2bb19bba1dd 100644 --- a/features/steps/shared/paths.rb +++ b/features/steps/shared/paths.rb @@ -242,7 +242,7 @@ module SharedPaths step "I visit my project's network page" do # Stub Graph max_size to speed up test (10 commits vs. 650) - Network::Graph.stub(max_count: 10) + allow(Network::Graph).to receive(:max_count).and_return(10) visit namespace_project_network_path(@project.namespace, @project, root_ref) end diff --git a/features/steps/user.rb b/features/steps/user.rb index c70875e589f..a2627d4f1ff 100644 --- a/features/steps/user.rb +++ b/features/steps/user.rb @@ -14,7 +14,7 @@ class Spinach::Features::User < Spinach::FeatureSteps end step 'I should see unsubscribe text and button' do - page.should have_content "Unsubscribe from Admin notifications Yes, I want to unsubscribe joh@doe.org from any further admin emails." + expect(page).to have_content "Unsubscribe from Admin notifications Yes, I want to unsubscribe joh@doe.org from any further admin emails." end step 'I press the unsubscribe button' do @@ -22,7 +22,7 @@ class Spinach::Features::User < Spinach::FeatureSteps end step 'I should be unsubscribed' do - current_path.should == root_path + expect(current_path).to eq root_path end step '"John Doe" has contributions' do diff --git a/spec/features/issues_spec.rb b/spec/features/issues_spec.rb index 808a6eeb958..faeac9f0d9b 100644 --- a/spec/features/issues_spec.rb +++ b/spec/features/issues_spec.rb @@ -36,7 +36,7 @@ describe 'Issues', feature: true do end it 'does not change issue count' do - expect { click_button 'Save changes' }.to_not change { Issue.count } + expect { click_button 'Save changes' }.not_to change { Issue.count } end it 'should update issue fields' do diff --git a/spec/helpers/merge_request_helper_spec.rb b/spec/helpers/merge_request_helper_spec.rb index 76bfc4ed5b3..34c2cd4907a 100644 --- a/spec/helpers/merge_request_helper_spec.rb +++ b/spec/helpers/merge_request_helper_spec.rb @@ -7,16 +7,16 @@ describe MergeRequestsHelper do let(:last_commit) { Commit.new({}, project) } before do - merge_request.stub(:source_project) { project } - merge_request.stub(:last_commit) { last_commit } - project.stub(:ci_service) { ci_service } - last_commit.stub(:sha) { '12d65c' } + allow(merge_request).to receive(:source_project) { project } + allow(merge_request).to receive(:last_commit) { last_commit } + allow(project).to receive(:ci_service) { ci_service } + allow(last_commit).to receive(:sha) { '12d65c' } end describe 'ci_build_details_path' do it 'does not include api credentials in a link' do - ci_service.stub(:build_page) { "http://secretuser:secretpass@jenkins.example.com:8888/job/test1/scm/bySHA1/12d65c" } - expect(ci_build_details_path(merge_request)).to_not match("secret") + allow(ci_service).to receive(:build_page) { "http://secretuser:secretpass@jenkins.example.com:8888/job/test1/scm/bySHA1/12d65c" } + expect(ci_build_details_path(merge_request)).not_to match("secret") end end diff --git a/spec/helpers/oauth_helper_spec.rb b/spec/helpers/oauth_helper_spec.rb index 46e5cce3487..4b1e67178d8 100644 --- a/spec/helpers/oauth_helper_spec.rb +++ b/spec/helpers/oauth_helper_spec.rb @@ -21,12 +21,12 @@ describe OauthHelper do describe "kerberos_enabled?" do it 'returns true' do allow(helper).to receive(:enabled_oauth_providers) { [:twitter, :github, :kerberos] } - helper.kerberos_enabled?.should be_truthy + expect(helper).to be_kerberos_enabled end it 'returns false' do allow(helper).to receive(:enabled_oauth_providers) { [:twitter, :ldapmain] } - helper.kerberos_enabled?.should be_falsey + expect(helper).not_to be_kerberos_enabled end end end diff --git a/spec/lib/gitlab/auth_spec.rb b/spec/lib/gitlab/auth_spec.rb index 0b4640e887f..318bb29710f 100644 --- a/spec/lib/gitlab/auth_spec.rb +++ b/spec/lib/gitlab/auth_spec.rb @@ -36,12 +36,14 @@ describe Gitlab::Auth do end context "with kerberos" do - before { Devise.stub(omniauth_providers: [:kerberos]) } + before do + allow(Devise).to receive_messages(omniauth_providers: [:kerberos]) + end it "finds user" do - Gitlab::Kerberos::Authentication.stub(valid?: true) - Gitlab::Kerberos::Authentication.stub(email: user.email) - + allow(Gitlab::Kerberos::Authentication).to receive_messages(valid?: true) + allow(Gitlab::Kerberos::Authentication).to receive_messages(email: user.email) + expect( gl_auth.find(username, password) ).to eql user end end diff --git a/spec/lib/gitlab/git_access_spec.rb b/spec/lib/gitlab/git_access_spec.rb index 033b6cc30f0..8f043342c8e 100644 --- a/spec/lib/gitlab/git_access_spec.rb +++ b/spec/lib/gitlab/git_access_spec.rb @@ -249,19 +249,19 @@ describe Gitlab::GitAccess do describe "git_hook_check" do describe "author email check" do it 'returns true' do - access.git_hook_check(user, project, 'refs/heads/master', '6f6d7e7ed', '570e7b2ab').should be_truthy + expect(access.git_hook_check(user, project, 'refs/heads/master', '6f6d7e7ed', '570e7b2ab')).to be_truthy end it 'returns false' do project.create_git_hook project.git_hook.update(commit_message_regex: "@only.com") - access.git_hook_check(user, project, 'refs/heads/master', '6f6d7e7ed', '570e7b2ab').allowed?.should be_falsey + expect(access.git_hook_check(user, project, 'refs/heads/master', '6f6d7e7ed', '570e7b2ab')).not_to be_allowed end it 'returns true for tags' do project.create_git_hook project.git_hook.update(commit_message_regex: "@only.com") - access.git_hook_check(user, project, 'refs/tags/v1', '6f6d7e7ed', '570e7b2ab').allowed?.should be_truthy + expect(access.git_hook_check(user, project, 'refs/tags/v1', '6f6d7e7ed', '570e7b2ab')).to be_allowed end end @@ -272,12 +272,12 @@ describe Gitlab::GitAccess do end it 'returns false for non-member user' do - access.git_hook_check(user, project, 'refs/heads/master', '6f6d7e7ed', '570e7b2ab').allowed?.should be_falsey + expect(access.git_hook_check(user, project, 'refs/heads/master', '6f6d7e7ed', '570e7b2ab')).not_to be_allowed end it 'returns true if committer is a gitlab member' do create(:user, email: 'dmitriy.zaporozhets@gmail.com') - access.git_hook_check(user, project, 'refs/heads/master', '6f6d7e7ed', '570e7b2ab').allowed?.should be_truthy + expect(access.git_hook_check(user, project, 'refs/heads/master', '6f6d7e7ed', '570e7b2ab')).to be_allowed end end @@ -285,13 +285,13 @@ describe Gitlab::GitAccess do it 'returns false when filename is prohibited' do project.create_git_hook project.git_hook.update(file_name_regex: "jpg$") - access.git_hook_check(user, project, 'refs/heads/master', '913c66a37', '33f3729a4').allowed?.should be_falsey + expect(access.git_hook_check(user, project, 'refs/heads/master', '913c66a37', '33f3729a4')).not_to be_allowed end it 'returns true if file name is allowed' do project.create_git_hook project.git_hook.update(file_name_regex: "exe$") - access.git_hook_check(user, project, 'refs/heads/master', '913c66a37', '33f3729a4').allowed?.should be_truthy + expect(access.git_hook_check(user, project, 'refs/heads/master', '913c66a37', '33f3729a4')).to be_allowed end end @@ -299,17 +299,17 @@ describe Gitlab::GitAccess do before do allow_any_instance_of(Gitlab::Git::Blob).to receive(:size).and_return(1.5.megabytes.to_i) end - + it "returns false when size is too large" do project.create_git_hook project.git_hook.update(max_file_size: 1) - access.git_hook_check(user, project, 'refs/heads/master', 'cfe32cf6', '913c66a37').allowed?.should be_falsey + expect(access.git_hook_check(user, project, 'refs/heads/master', 'cfe32cf6', '913c66a37')).not_to be_allowed end it "returns true when size is allowed" do project.create_git_hook project.git_hook.update(max_file_size: 2) - access.git_hook_check(user, project, 'refs/heads/master', 'cfe32cf6', '913c66a37').allowed?.should be_truthy + expect(access.git_hook_check(user, project, 'refs/heads/master', 'cfe32cf6', '913c66a37')).to be_allowed end end end diff --git a/spec/lib/gitlab/kerberos/authentication_spec.rb b/spec/lib/gitlab/kerberos/authentication_spec.rb index 598e7d9c400..1d1fb742226 100644 --- a/spec/lib/gitlab/kerberos/authentication_spec.rb +++ b/spec/lib/gitlab/kerberos/authentication_spec.rb @@ -8,13 +8,12 @@ describe Gitlab::Kerberos::Authentication do describe :login do before do - Devise.stub(omniauth_providers: [:kerberos]) + allow(Devise).to receive_messages(omniauth_providers: [:kerberos]) end it "finds the user if authentication is successful" do kerberos_realm = user.email.sub(/.*@/, '') - ::Krb5Auth::Krb5.any_instance.stub(get_init_creds_password: true) - ::Krb5Auth::Krb5.any_instance.stub(get_default_realm: kerberos_realm) + allow_any_instance_of(::Krb5Auth::Krb5).to receive_messages(get_init_creds_password: true, get_default_realm: kerberos_realm) expect(klass.login('gitlab', password)).to be_truthy end @@ -22,8 +21,7 @@ describe Gitlab::Kerberos::Authentication do it "returns false if there is no such user in kerberos" do kerberos_login = "some-login" kerberos_realm = user.email.sub(/.*@/, '') - ::Krb5Auth::Krb5.any_instance.stub(get_init_creds_password: true) - ::Krb5Auth::Krb5.any_instance.stub(get_default_realm: kerberos_realm) + allow_any_instance_of(::Krb5Auth::Krb5).to receive_messages(get_init_creds_password: true, get_default_realm: kerberos_realm) expect(klass.login(kerberos_login, password)).to be_falsy end diff --git a/spec/lib/gitlab/ldap/access_spec.rb b/spec/lib/gitlab/ldap/access_spec.rb index 6ec702e061c..ed092b41254 100644 --- a/spec/lib/gitlab/ldap/access_spec.rb +++ b/spec/lib/gitlab/ldap/access_spec.rb @@ -88,29 +88,28 @@ describe Gitlab::LDAP::Access do subject { access.update_permissions } it "syncs ssh keys if enabled by configuration" do - access.stub sync_ssh_keys?: 'sshpublickey' + allow(access).to receive_messages(sync_ssh_keys?: 'sshpublickey') expect(access).to receive(:update_ssh_keys).once subject end it "does update group permissions with a group base configured" do - access.stub group_base: 'my-group-base' + allow(access).to receive_messages(group_base: 'my-group-base') expect(access).to receive(:update_ldap_group_links) subject end it "does not update group permissions without a group base configured" do - access.stub group_base: '' + allow(access).to receive_messages(group_base: '') expect(access).not_to receive(:update_ldap_group_links) subject end it "does update admin group permissions if admin group is configured" do - access.stub admin_group: 'my-admin-group' - access.stub :update_ldap_group_links + allow(access).to receive_messages(admin_group: 'my-admin-group', update_ldap_group_links: nil) expect(access).to receive(:update_admin_status) subject @@ -125,18 +124,18 @@ describe Gitlab::LDAP::Access do end before do - Gitlab::LDAP::Config.any_instance.stub(sync_ssh_keys: ssh_key_attribute_name) - access.stub sync_ssh_keys?: true + allow_any_instance_of(Gitlab::LDAP::Config).to receive_messages(sync_ssh_keys: ssh_key_attribute_name) + allow(access).to receive_messages(sync_ssh_keys?: true) end it "should add a SSH key if it is in LDAP but not in gitlab" do - Gitlab::LDAP::Adapter.any_instance.stub(:user) { Gitlab::LDAP::Person.new(entry, 'ldapmain') } + allow_any_instance_of(Gitlab::LDAP::Adapter).to receive(:user) { Gitlab::LDAP::Person.new(entry, 'ldapmain') } expect{ access.update_ssh_keys }.to change(user.keys, :count).from(0).to(1) end it "should add a SSH key and give it a proper name" do - Gitlab::LDAP::Adapter.any_instance.stub(:user) { Gitlab::LDAP::Person.new(entry, 'ldapmain') } + allow_any_instance_of(Gitlab::LDAP::Adapter).to receive(:user) { Gitlab::LDAP::Person.new(entry, 'ldapmain') } access.update_ssh_keys expect(user.keys.last.title).to match(/LDAP/) @@ -145,9 +144,9 @@ describe Gitlab::LDAP::Access do it "should not add a SSH key if it is invalid" do entry = Net::LDAP::Entry.from_single_ldif_string("dn: cn=foo, dc=bar, dc=com\n#{ssh_key_attribute_name}: I am not a valid key") - Gitlab::LDAP::Adapter.any_instance.stub(:user) { Gitlab::LDAP::Person.new(entry, 'ldapmain') } + allow_any_instance_of(Gitlab::LDAP::Adapter).to receive(:user) { Gitlab::LDAP::Person.new(entry, 'ldapmain') } - expect{ access.update_ssh_keys }.to_not change(user.keys, :count) + expect{ access.update_ssh_keys }.not_to change(user.keys, :count) end context 'user has at least one LDAPKey' do @@ -155,14 +154,14 @@ describe Gitlab::LDAP::Access do it "should remove a SSH key if it is no longer in LDAP" do entry = Net::LDAP::Entry.from_single_ldif_string("dn: cn=foo, dc=bar, dc=com\n#{ssh_key_attribute_name}:\n") - Gitlab::LDAP::Adapter.any_instance.stub(:user) { Gitlab::LDAP::Person.new(entry, 'ldapmain') } + allow_any_instance_of(Gitlab::LDAP::Adapter).to receive(:user) { Gitlab::LDAP::Person.new(entry, 'ldapmain') } expect{ access.update_ssh_keys }.to change(user.keys, :count).from(1).to(0) end it "should remove a SSH key if the ldap attribute was removed" do entry = Net::LDAP::Entry.from_single_ldif_string("dn: cn=foo, dc=bar, dc=com") - Gitlab::LDAP::Adapter.any_instance.stub(:user) { Gitlab::LDAP::Person.new(entry, 'ldapmain') } + allow_any_instance_of(Gitlab::LDAP::Adapter).to receive(:user) { Gitlab::LDAP::Person.new(entry, 'ldapmain') } expect{ access.update_ssh_keys }.to change(user.keys, :count).from(1).to(0) end @@ -173,21 +172,21 @@ describe Gitlab::LDAP::Access do let(:entry) { Net::LDAP::Entry.new } before do - access.stub ldap_user: Gitlab::LDAP::Person.new(entry, user.ldap_identity.provider) + allow(access).to receive_messages(ldap_user: Gitlab::LDAP::Person.new(entry, user.ldap_identity.provider)) end it "should not update email if email attribute is not set" do - expect{ access.update_email }.to_not change(user, :email) + expect{ access.update_email }.not_to change(user, :email) end it "should not update the email if the user has the same email in GitLab and in LDAP" do entry['mail'] = [user.email] - expect{ access.update_email }.to_not change(user, :email) + expect{ access.update_email }.not_to change(user, :email) end it "should not update the email if the user has the same email GitLab and in LDAP, but with upper case in LDAP" do entry['mail'] = [user.email.upcase] - expect{ access.update_email }.to_not change(user, :email) + expect{ access.update_email }.not_to change(user, :email) end it "should update the email if the user email is different" do @@ -199,10 +198,10 @@ describe Gitlab::LDAP::Access do describe :update_admin_status do before do - access.stub(admin_group: "GLAdmins") + allow(access).to receive_messages(admin_group: "GLAdmins") ldap_user_entry = Net::LDAP::Entry.new - Gitlab::LDAP::Adapter.any_instance.stub(:user) { Gitlab::LDAP::Person.new(ldap_user_entry, user.ldap_identity.provider) } - Gitlab::LDAP::Person.any_instance.stub(:uid) { 'admin2' } + allow_any_instance_of(Gitlab::LDAP::Adapter).to receive(:user) { Gitlab::LDAP::Person.new(ldap_user_entry, user.ldap_identity.provider) } + allow_any_instance_of(Gitlab::LDAP::Person).to receive(:uid) { 'admin2' } end it "should give admin privileges to an User" do @@ -217,7 +216,7 @@ memberuid: admin3 objectclass: top objectclass: posixGroup }) - Gitlab::LDAP::Adapter.any_instance.stub(:group) { Gitlab::LDAP::Group.new(admin_group) } + allow_any_instance_of(Gitlab::LDAP::Adapter).to receive(:group) { Gitlab::LDAP::Group.new(admin_group) } expect{ access.update_admin_status }.to change(user, :admin?).to(true) end @@ -234,7 +233,7 @@ memberuid: admin3 objectclass: top objectclass: posixGroup }) - Gitlab::LDAP::Adapter.any_instance.stub(:group) { Gitlab::LDAP::Group.new(admin_group) } + allow_any_instance_of(Gitlab::LDAP::Adapter).to receive(:group) { Gitlab::LDAP::Group.new(admin_group) } expect{ access.update_admin_status }.to change(user, :admin?).to(false) end end @@ -246,7 +245,7 @@ objectclass: posixGroup let(:gitlab_group_2) { create :group } before do - access.stub(cns_with_access: cns_with_access) + allow(access).to receive_messages(cns_with_access: cns_with_access) end context "non existing access for group-1, allowed via ldap-group1 as MASTER" do @@ -291,7 +290,7 @@ objectclass: posixGroup before do gitlab_group_1.group_members.masters.create(user_id: user.id) gitlab_group_1.ldap_group_links.create(cn: 'ldap-group1', group_access: Gitlab::Access::MASTER, provider: 'ldapmain') - access.stub(cns_with_access: ['ldap-group2']) + allow(access).to receive_messages(cns_with_access: ['ldap-group2']) end it "removes user from gitlab_group_1" do @@ -304,7 +303,7 @@ objectclass: posixGroup before do gitlab_group_1.group_members.owners.create(user_id: user.id) gitlab_group_1.ldap_group_links.create(cn: 'ldap-group1', group_access: Gitlab::Access::OWNER, provider: 'ldapmain') - access.stub(cns_with_access: ['ldap-group2']) + allow(access).to receive_messages(cns_with_access: ['ldap-group2']) end it "does not remove the user from gitlab_group_1 since it's the last owner" do @@ -318,7 +317,7 @@ objectclass: posixGroup owner2 = create(:user) # a 2nd owner gitlab_group_1.group_members.owners.create([{ user_id: user.id }, { user_id: owner2.id }]) gitlab_group_1.ldap_group_links.create(cn: 'ldap-group1', group_access: Gitlab::Access::OWNER, provider: 'ldapmain') - access.stub(cns_with_access: ['ldap-group2']) + allow(access).to receive_messages(cns_with_access: ['ldap-group2']) end it "removes user from gitlab_group_1" do @@ -345,14 +344,14 @@ objectclass: posixGroup it "returns an interator of LDAP Groups" do ::LdapGroupLink.create({ cn: 'example', group_access: Gitlab::Access::DEVELOPER, group_id: 42, provider: 'ldapmain' }) - Gitlab::LDAP::Adapter.any_instance.stub(:group) { Gitlab::LDAP::Group.new(ldap_group_1) } + allow_any_instance_of(Gitlab::LDAP::Adapter).to receive(:group) { Gitlab::LDAP::Group.new(ldap_group_1) } expect(access.ldap_groups.first).to be_a Gitlab::LDAP::Group end it "only returns found ldap groups" do ::LdapGroupLink.create cn: 'example', group_access: Gitlab::Access::DEVELOPER, group_id: 42 - Gitlab::LDAP::Group.stub(find_by_cn: nil) # group not found + allow(Gitlab::LDAP::Group).to receive_messages(find_by_cn: nil) # group not found expect(access.ldap_groups).to be_empty end @@ -392,13 +391,13 @@ objectclass: posixGroup let(:ldap_user) { Gitlab::LDAP::Person.new(Net::LDAP::Entry.new, user.ldap_identity.provider) } before do - access.stub(ldap_user: ldap_user) - ldap_user.stub(:uid) { 'user1' } - ldap_user.stub(:dn) { 'uid=user1,ou=People,dc=example' } + allow(access).to receive_messages(ldap_user: ldap_user) + allow(ldap_user).to receive(:uid) { 'user1' } + allow(ldap_user).to receive(:dn) { 'uid=user1,ou=People,dc=example' } end it "only returns ldap cns to which the user has access" do - access.stub(ldap_groups: ldap_groups) + allow(access).to receive_messages(ldap_groups: ldap_groups) expect(access.cns_with_access).to eql ['group1'] end end diff --git a/spec/lib/gitlab/ldap/person_spec.rb b/spec/lib/gitlab/ldap/person_spec.rb index 390a9ebb8d7..0ae621f476e 100644 --- a/spec/lib/gitlab/ldap/person_spec.rb +++ b/spec/lib/gitlab/ldap/person_spec.rb @@ -13,7 +13,7 @@ describe Gitlab::LDAP::Person do subject { Gitlab::LDAP::Person.new(entry, 'ldapmain') } before do - Gitlab::LDAP::Config.any_instance.stub(sync_ssh_keys: ssh_key_attribute_name) + allow_any_instance_of(Gitlab::LDAP::Config).to receive_messages(sync_ssh_keys: ssh_key_attribute_name) end context "when the SSH key is literal" do diff --git a/spec/lib/gitlab/satellite/merge_action_spec.rb b/spec/lib/gitlab/satellite/merge_action_spec.rb index a24b018f292..9bbaa73a2da 100644 --- a/spec/lib/gitlab/satellite/merge_action_spec.rb +++ b/spec/lib/gitlab/satellite/merge_action_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe 'Gitlab::Satellite::MergeAction' do +describe Gitlab::Satellite::MergeAction do include RepoHelpers let(:project) { create(:project, namespace: create(:group)) } @@ -20,14 +20,14 @@ describe 'Gitlab::Satellite::MergeAction' do context 'on fork' do it 'should get proper commits between' do - commits = Gitlab::Satellite::MergeAction.new(merge_request_fork.author, merge_request_fork).commits_between + commits = described_class.new(merge_request_fork.author, merge_request_fork).commits_between verify_commits(commits, sample_compare.commits.first, sample_compare.commits.last) end end context 'between branches' do it 'should raise exception -- not expected to be used by non forks' do - expect { Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).commits_between }.to raise_error(RuntimeError) + expect { described_class.new(merge_request.author, merge_request).commits_between }.to raise_error(RuntimeError) end end end @@ -41,14 +41,14 @@ describe 'Gitlab::Satellite::MergeAction' do context 'on fork' do it 'should build a format patch' do - patch = Gitlab::Satellite::MergeAction.new(merge_request_fork.author, merge_request_fork).format_patch + patch = described_class.new(merge_request_fork.author, merge_request_fork).format_patch verify_content(patch) end end context 'between branches' do it 'should build a format patch' do - patch = Gitlab::Satellite::MergeAction.new(merge_request_fork.author, merge_request).format_patch + patch = described_class.new(merge_request_fork.author, merge_request).format_patch verify_content(patch) end end @@ -67,15 +67,15 @@ describe 'Gitlab::Satellite::MergeAction' do context 'on fork' do it 'should get proper diffs' do - diffs = Gitlab::Satellite::MergeAction.new(merge_request_fork.author, merge_request_fork).diffs_between_satellite - diff = Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request_fork).diff_in_satellite + diffs = described_class.new(merge_request_fork.author, merge_request_fork).diffs_between_satellite + diff = described_class.new(merge_request.author, merge_request_fork).diff_in_satellite is_a_matching_diff(diff, diffs) end end context 'between branches' do it 'should get proper diffs' do - expect{ Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).diffs_between_satellite }.to raise_error(RuntimeError) + expect { described_class.new(merge_request.author, merge_request).diffs_between_satellite }.to raise_error(RuntimeError) end end end @@ -83,21 +83,21 @@ describe 'Gitlab::Satellite::MergeAction' do describe '#can_be_merged?' do context 'on fork' do it do - expect(Gitlab::Satellite::MergeAction.new(merge_request_fork.author, merge_request_fork).can_be_merged?).to be_truthy + expect(described_class.new(merge_request_fork.author, merge_request_fork).can_be_merged?).to be_truthy end it do - expect(Gitlab::Satellite::MergeAction.new(merge_request_fork_with_conflict.author, merge_request_fork_with_conflict).can_be_merged?).to be_falsey + expect(described_class.new(merge_request_fork_with_conflict.author, merge_request_fork_with_conflict).can_be_merged?).to be_falsey end end context 'between branches' do it do - expect(Gitlab::Satellite::MergeAction.new(merge_request.author, merge_request).can_be_merged?).to be_truthy + expect(described_class.new(merge_request.author, merge_request).can_be_merged?).to be_truthy end it do - expect(Gitlab::Satellite::MergeAction.new(merge_request_with_conflict.author, merge_request_with_conflict).can_be_merged?).to be_falsey + expect(described_class.new(merge_request_with_conflict.author, merge_request_with_conflict).can_be_merged?).to be_falsey end end end @@ -106,37 +106,33 @@ describe 'Gitlab::Satellite::MergeAction' do describe '#can_be_rebased?' do context 'on fork' do before(:each) do - merge_request.stub(:should_rebase).and_return(true) + allow(merge_request).to receive(:should_rebase).and_return(true) end it do - Gitlab::Satellite::MergeAction.new( - merge_request_fork.author, - merge_request_fork).merge!.should be_truthy + result = described_class.new(merge_request_fork.author, merge_request_fork).merge! + expect(result).to be_truthy end it do - Gitlab::Satellite::MergeAction.new( - merge_request_fork_with_conflict.author, - merge_request_fork_with_conflict).merge!.should be_falsey + result = described_class.new(merge_request_fork_with_conflict.author, merge_request_fork_with_conflict).merge! + expect(result).to be_falsey end end context 'between branches' do before(:each) do - merge_request.stub(:should_rebase).and_return(true) + allow(merge_request).to receive(:should_rebase).and_return(true) end it do - Gitlab::Satellite::MergeAction.new( - merge_request.author, - merge_request).merge!.should be_truthy + result = described_class.new(merge_request.author, merge_request).merge! + expect(result).to be_truthy end it do - Gitlab::Satellite::MergeAction.new( - merge_request_with_conflict.author, - merge_request_with_conflict).merge!.should be_falsey + result = described_class.new(merge_request_with_conflict.author, merge_request_with_conflict).merge! + expect(result).to be_falsey end end end diff --git a/spec/mailers/notify_spec.rb b/spec/mailers/notify_spec.rb index e8c328e725c..eaf05b08fa0 100644 --- a/spec/mailers/notify_spec.rb +++ b/spec/mailers/notify_spec.rb @@ -808,8 +808,8 @@ describe Notify do it 'is sent as the author' do sender = subject.header[:from].addrs[0] - sender.display_name.should eq("GitLab") - sender.address.should eq(gitlab_sender) + expect(sender.display_name).to eq("GitLab") + expect(sender.address).to eq(gitlab_sender) end it 'is sent to recipient' do diff --git a/spec/models/concerns/mentionable_spec.rb b/spec/models/concerns/mentionable_spec.rb index 7c501fcb85e..62a76993c12 100644 --- a/spec/models/concerns/mentionable_spec.rb +++ b/spec/models/concerns/mentionable_spec.rb @@ -7,8 +7,8 @@ describe Mentionable do let(:project) { create(:project) } it 'excludes JIRA references' do - project.stub(jira_tracker?: true) - references(project, 'JIRA-123').should be_empty + allow(project).to receive_messages(jira_tracker?: true) + expect(references(project, 'JIRA-123')).to be_empty end end end diff --git a/spec/models/ldap_group_link_spec.rb b/spec/models/ldap_group_link_spec.rb index 7daf8af047c..d2b1af20238 100644 --- a/spec/models/ldap_group_link_spec.rb +++ b/spec/models/ldap_group_link_spec.rb @@ -11,7 +11,7 @@ describe LdapGroupLink do group_link = build(:ldap_group_link, cn: 'group1', group_id: 1, provider: 'ldapmain') - expect(group_link).to_not be_valid + expect(group_link).not_to be_valid group_link.group_id = 2 expect(group_link).to be_valid diff --git a/spec/models/license_spec.rb b/spec/models/license_spec.rb index d4465cfd307..7583d4ee412 100644 --- a/spec/models/license_spec.rb +++ b/spec/models/license_spec.rb @@ -18,7 +18,7 @@ describe License do end it "is invalid" do - expect(license).to_not be_valid + expect(license).not_to be_valid end end end @@ -41,7 +41,7 @@ describe License do context "when the license started" do it "is invalid" do - expect(license).to_not be_valid + expect(license).not_to be_valid end end @@ -57,7 +57,7 @@ describe License do let(:date) { License.current.starts_at - 6.months } it "is invalid" do - expect(license).to_not be_valid + expect(license).not_to be_valid end end @@ -94,7 +94,7 @@ describe License do end it "is valid" do - expect(license).to_not be_valid + expect(license).not_to be_valid end end @@ -197,7 +197,7 @@ describe License do context "when valid license data is provided" do it "returns the license" do - expect(license.license).to_not be_nil + expect(license.license).not_to be_nil end end end diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb index c169e4b276d..c15dbd8e4ed 100644 --- a/spec/models/merge_request_spec.rb +++ b/spec/models/merge_request_spec.rb @@ -142,9 +142,9 @@ describe MergeRequest do let(:issue1) { JiraIssue.new('FOOBAR-4567', subject.project) } it 'returns sorted JiraIssues' do - subject.project.stub(default_branch: subject.target_branch) + allow(subject.project).to receive_messages(default_branch: subject.target_branch) - subject.closes_issues.should eq([issue1, issue0]) + expect(subject.closes_issues).to eq([issue1, issue0]) end end end diff --git a/spec/models/project_services/jenkins_service_spec.rb b/spec/models/project_services/jenkins_service_spec.rb index b00714dd8b2..e78b3f27afc 100644 --- a/spec/models/project_services/jenkins_service_spec.rb +++ b/spec/models/project_services/jenkins_service_spec.rb @@ -28,7 +28,7 @@ describe JenkinsService do describe 'commits methods' do before do @service = JenkinsService.new - @service.stub( + allow(@service).to receive_messages( service_hook: true, project_url: 'http://jenkins.gitlab.org/projects/2', token: 'verySecret' diff --git a/spec/models/project_services/jira_service_spec.rb b/spec/models/project_services/jira_service_spec.rb index b0a826b37fb..d8692311b89 100644 --- a/spec/models/project_services/jira_service_spec.rb +++ b/spec/models/project_services/jira_service_spec.rb @@ -34,7 +34,7 @@ describe JiraService do before do @jira_service = JiraService.new - @jira_service.stub( + allow(@jira_service).to receive_messages( project_id: project.id, project: project, service_hook: true, @@ -52,7 +52,7 @@ describe JiraService do it "should call JIRA API" do @jira_service.execute(sample_commit, JiraIssue.new("JIRA-123", project)) - WebMock.should have_requested(:post, @api_url).with( + expect(WebMock).to have_requested(:post, @api_url).with( body: /Issue solved with/ ).once end @@ -60,7 +60,7 @@ describe JiraService do it "calls the api with jira_issue_transition_id" do @jira_service.jira_issue_transition_id = 'this-is-a-custom-id' @jira_service.execute(sample_commit, JiraIssue.new("JIRA-123", project)) - WebMock.should have_requested(:post, @api_url).with( + expect(WebMock).to have_requested(:post, @api_url).with( body: /this-is-a-custom-id/ ).once end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 79200cae118..4e7fb05bdaa 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -185,8 +185,8 @@ describe User do create :omniauth_user, provider: "gitlub" users = User.non_ldap - users.count.should == 2 - users.detect{ |user| user.username == ldap_user.username }.should be_nil + expect(users.count).to eq 2 + expect(users.detect { |user| user.username == ldap_user.username }).to be_nil end end diff --git a/spec/requests/api/ldap_group_links_spec.rb b/spec/requests/api/ldap_group_links_spec.rb index 76321f4d1eb..9247efe92c8 100644 --- a/spec/requests/api/ldap_group_links_spec.rb +++ b/spec/requests/api/ldap_group_links_spec.rb @@ -23,7 +23,7 @@ describe API::API, api: true do context "when unauthenticated" do it "should return authentication error" do post api("/groups/#{group_with_ldap_links.id}/ldap_group_links") - response.status.should == 401 + expect(response.status).to eq 401 end end @@ -89,7 +89,7 @@ describe API::API, api: true do context "when unauthenticated" do it "should return authentication error" do delete api("/groups/#{group_with_ldap_links.id}/ldap_group_links/ldap-group1") - response.status.should == 401 + expect(response.status).to eq 401 end end @@ -126,7 +126,7 @@ describe API::API, api: true do context "when unauthenticated" do it "should return authentication error" do delete api("/groups/#{group_with_ldap_links.id}/ldap_group_links/ldap2/ldap-group2") - response.status.should == 401 + expect(response.status).to eq 401 end end diff --git a/spec/requests/api/ldap_spec.rb b/spec/requests/api/ldap_spec.rb index 7913e0c4803..8477a73ec34 100644 --- a/spec/requests/api/ldap_spec.rb +++ b/spec/requests/api/ldap_spec.rb @@ -10,26 +10,24 @@ describe API::API do OpenStruct.new(cn: 'students') ] - Gitlab::LDAP::Adapter.any_instance.stub( - groups: groups - ) + allow_any_instance_of(Gitlab::LDAP::Adapter).to receive_messages(groups: groups) end describe "GET /ldap/groups" do context "when unauthenticated" do it "should return authentication error" do get api("/ldap/groups") - response.status.should == 401 + expect(response.status).to eq 401 end end context "when authenticated as user" do it "should return an array of ldap groups" do get api("/ldap/groups", user) - response.status.should == 200 - json_response.should be_an Array - json_response.length.should == 2 - json_response.first['cn'].should == 'developers' + expect(response.status).to eq 200 + expect(json_response).to be_an Array + expect(json_response.length).to eq 2 + expect(json_response.first['cn']).to eq 'developers' end end end @@ -38,17 +36,17 @@ describe API::API do context "when unauthenticated" do it "should return authentication error" do get api("/ldap/ldapmain/groups") - response.status.should == 401 + expect(response.status).to eq 401 end end context "when authenticated as user" do it "should return an array of ldap groups" do get api("/ldap/ldapmain/groups", user) - response.status.should == 200 - json_response.should be_an Array - json_response.length.should == 2 - json_response.first['cn'].should == 'developers' + expect(response.status).to eq 200 + expect(json_response).to be_an Array + expect(json_response.length).to eq 2 + expect(json_response.first['cn']).to eq 'developers' end end end diff --git a/spec/requests/api/project_git_hook_spec.rb b/spec/requests/api/project_git_hook_spec.rb index 72b5d4b6c18..de45deb01cc 100644 --- a/spec/requests/api/project_git_hook_spec.rb +++ b/spec/requests/api/project_git_hook_spec.rb @@ -19,17 +19,17 @@ describe API::API, 'ProjectGitHook', api: true do context "authorized user" do it "should return project git hook" do get api("/projects/#{project.id}/git_hook", user) - response.status.should eq(200) + expect(response.status).to eq(200) - json_response.should be_an Hash - json_response['project_id'].should eq(project.id) + expect(json_response).to be_an Hash + expect(json_response['project_id']).to eq(project.id) end end context "unauthorized user" do it "should not access project git hooks" do get api("/projects/#{project.id}/git_hook", user3) - response.status.should eq(403) + expect(response.status).to eq(403) end end end @@ -40,11 +40,11 @@ describe API::API, 'ProjectGitHook', api: true do it "should add git hook to project" do post api("/projects/#{project.id}/git_hook", user), deny_delete_tag: true - response.status.should eq(201) + expect(response.status).to eq(201) - json_response.should be_an Hash - json_response['project_id'].should eq(project.id) - json_response['deny_delete_tag'].should eq(true) + expect(json_response).to be_an Hash + expect(json_response['project_id']).to eq(project.id) + expect(json_response['deny_delete_tag']).to eq(true) end end @@ -52,7 +52,7 @@ describe API::API, 'ProjectGitHook', api: true do it "should not add git hook to project" do post api("/projects/#{project.id}/git_hook", user3), deny_delete_tag: true - response.status.should eq(403) + expect(response.status).to eq(403) end end end @@ -66,7 +66,7 @@ describe API::API, 'ProjectGitHook', api: true do it "should not add git hook to project" do post api("/projects/#{project.id}/git_hook", user), deny_delete_tag: true - response.status.should eq(422) + expect(response.status).to eq(422) end end end @@ -79,10 +79,10 @@ describe API::API, 'ProjectGitHook', api: true do it "should update an existing project git hook" do put api("/projects/#{project.id}/git_hook", user), deny_delete_tag: false, commit_message_regex: 'Fixes \d+\..*' - response.status.should eq(200) + expect(response.status).to eq(200) - json_response['deny_delete_tag'].should eq(false) - json_response['commit_message_regex'].should eq('Fixes \d+\..*') + expect(json_response['deny_delete_tag']).to eq(false) + expect(json_response['commit_message_regex']).to eq('Fixes \d+\..*') end end @@ -90,13 +90,13 @@ describe API::API, 'ProjectGitHook', api: true do it "should error on non existing project git hook" do put api("/projects/#{project.id}/git_hook", user), deny_delete_tag: false, commit_message_regex: 'Fixes \d+\..*' - response.status.should eq(404) + expect(response.status).to eq(404) end it "should not update git hook for unauthorized user" do post api("/projects/#{project.id}/git_hook", user3), deny_delete_tag: true - response.status.should eq(403) + expect(response.status).to eq(403) end end @@ -108,16 +108,16 @@ describe API::API, 'ProjectGitHook', api: true do context "authorized user" do it "should delete git hook from project" do delete api("/projects/#{project.id}/git_hook", user) - response.status.should eq(200) + expect(response.status).to eq(200) - json_response.should be_an Hash + expect(json_response).to be_an Hash end end context "unauthorized user" do it "should return a 403 error" do delete api("/projects/#{project.id}/git_hook", user3) - response.status.should eq(403) + expect(response.status).to eq(403) end end end @@ -126,15 +126,15 @@ describe API::API, 'ProjectGitHook', api: true do context "for non existing git hook" do it "should delete git hook from project" do delete api("/projects/#{project.id}/git_hook", user) - response.status.should eq(404) + expect(response.status).to eq(404) - json_response.should be_an Hash - json_response['message'].should eq("404 Not Found") + expect(json_response).to be_an Hash + expect(json_response['message']).to eq("404 Not Found") end it "should return a 403 error if not authorized" do delete api("/projects/#{project.id}/git_hook", user3) - response.status.should eq(403) + expect(response.status).to eq(403) end end end diff --git a/spec/requests/api/project_members_spec.rb b/spec/requests/api/project_members_spec.rb index 2cf0d2d92dc..1daa4115ad1 100644 --- a/spec/requests/api/project_members_spec.rb +++ b/spec/requests/api/project_members_spec.rb @@ -98,7 +98,7 @@ describe API::API, api: true do end it 'should return a 405 method not allowed error when group membership lock is enabled' do - response.status.should == 405 + expect(response.status).to eq 405 end end end @@ -143,7 +143,7 @@ describe API::API, api: true do delete api("/projects/#{project.id}/members/#{user3.id}", user) expect do delete api("/projects/#{project.id}/members/#{user3.id}", user) - end.to_not change { ProjectMember.count } + end.not_to change { ProjectMember.count } end it "should return 200 if team member already removed" do diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb index 0368b1666c8..da13637aa27 100644 --- a/spec/requests/api/projects_spec.rb +++ b/spec/requests/api/projects_spec.rb @@ -642,25 +642,25 @@ describe API::API, api: true do post api("/projects/#{project.id}/share", user), group_id: group.id, group_access: Gitlab::Access::DEVELOPER end.to change { ProjectGroupLink.count }.by(1) - response.status.should == 201 - json_response['group_id'].should == group.id - json_response['group_access'].should == Gitlab::Access::DEVELOPER + expect(response.status).to eq 201 + expect(json_response['group_id']).to eq group.id + expect(json_response['group_access']).to eq Gitlab::Access::DEVELOPER end it "should return a 400 error when group id is not given" do post api("/projects/#{project.id}/share", user), group_access: Gitlab::Access::DEVELOPER - response.status.should == 400 + expect(response.status).to eq 400 end it "should return a 400 error when access level is not given" do post api("/projects/#{project.id}/share", user), group_id: group.id - response.status.should == 400 + expect(response.status).to eq 400 end it "should return a 409 error when wrong params passed" do post api("/projects/#{project.id}/share", user), group_id: group.id, group_access: 1234 - response.status.should == 409 - json_response['message'].should == 'Group access is not included in the list' + expect(response.status).to eq 409 + expect(json_response['message']).to eq 'Group access is not included in the list' end end diff --git a/spec/requests/api/system_hooks_spec.rb b/spec/requests/api/system_hooks_spec.rb index 3e676515488..94eebc48ec8 100644 --- a/spec/requests/api/system_hooks_spec.rb +++ b/spec/requests/api/system_hooks_spec.rb @@ -49,7 +49,7 @@ describe API::API, api: true do it "should not create new hook without url" do expect do post api("/hooks", admin) - end.to_not change { SystemHook.count } + end.not_to change { SystemHook.count } end end diff --git a/spec/requests/api/users_spec.rb b/spec/requests/api/users_spec.rb index 6c927b7cf1c..55563512314 100644 --- a/spec/requests/api/users_spec.rb +++ b/spec/requests/api/users_spec.rb @@ -44,10 +44,10 @@ describe API::API, api: true do User.delete_all create :omniauth_user, provider: "ldapserver1" get api("/users", user), skip_ldap: "true" - response.status.should == 200 - json_response.should be_an Array + expect(response.status).to eq 200 + expect(json_response).to be_an Array username = user.username - json_response.first["username"].should == username + expect(json_response.first["username"]).to eq username end end end diff --git a/spec/services/git_push_service_spec.rb b/spec/services/git_push_service_spec.rb index bcd0d2457f1..81057fa2cc7 100644 --- a/spec/services/git_push_service_spec.rb +++ b/spec/services/git_push_service_spec.rb @@ -265,14 +265,14 @@ describe GitPushService do WebMock.stub_request(:get, jira_api_comment_url).to_return(body: jira_issue_comments) WebMock.stub_request(:get, jira_api_project_url) - closing_commit.stub({ + allow(closing_commit).to receive_messages({ issue_closing_regex: Regexp.new(Gitlab.config.gitlab.issue_closing_pattern), safe_message: "this is some work.\n\ncloses JIRA-1", author_name: commit_author.name, author_email: commit_author.email }) - project.repository.stub(commits_between: [closing_commit]) + allow(project.repository).to receive_messages(commits_between: [closing_commit]) end after do @@ -294,7 +294,7 @@ describe GitPushService do }.to_json service.execute(project, user, @oldrev, @newrev, @ref) - WebMock.should have_requested(:post, jira_api_transition_url).with( + expect(WebMock).to have_requested(:post, jira_api_transition_url).with( body: message ).once end @@ -302,7 +302,7 @@ describe GitPushService do it "should initiate one api call to jira server to mention the issue" do service.execute(project, user, @oldrev, @newrev, @ref) - WebMock.should have_requested(:post, jira_api_comment_url).with( + expect(WebMock).to have_requested(:post, jira_api_comment_url).with( body: /mentioned this issue in/ ).once end diff --git a/spec/services/ldap_group_reset_service_spec.rb b/spec/services/ldap_group_reset_service_spec.rb index 3113645910f..bfdf1b2ed13 100644 --- a/spec/services/ldap_group_reset_service_spec.rb +++ b/spec/services/ldap_group_reset_service_spec.rb @@ -18,9 +18,9 @@ describe LdapGroupResetService do context 'initiated by ldap user' do before { LdapGroupResetService.new.execute(group, ldap_user) } - it { member_access(ldap_user).should == Gitlab::Access::OWNER } - it { member_access(ldap_user_2).should == Gitlab::Access::GUEST } - it { member_access(user).should == Gitlab::Access::OWNER } + it { expect(member_access(ldap_user)).to eq Gitlab::Access::OWNER } + it { expect(member_access(ldap_user_2)).to eq Gitlab::Access::GUEST } + it { expect(member_access(user)).to eq Gitlab::Access::OWNER } it { expect(ldap_user.reload.last_credential_check_at).to be_nil } it { expect(ldap_user_2.reload.last_credential_check_at).to be_nil } end @@ -28,9 +28,9 @@ describe LdapGroupResetService do context 'initiated by regular user' do before { LdapGroupResetService.new.execute(group, user) } - it { member_access(ldap_user).should == Gitlab::Access::GUEST } - it { member_access(ldap_user_2).should == Gitlab::Access::GUEST } - it { member_access(user).should == Gitlab::Access::OWNER } + it { expect(member_access(ldap_user)).to eq Gitlab::Access::GUEST } + it { expect(member_access(ldap_user_2)).to eq Gitlab::Access::GUEST } + it { expect(member_access(user)).to eq Gitlab::Access::OWNER } it { expect(ldap_user.reload.last_credential_check_at).to be_nil } it { expect(ldap_user_2.reload.last_credential_check_at).to be_nil } end diff --git a/spec/services/projects/create_service_spec.rb b/spec/services/projects/create_service_spec.rb index 1aebcb6e205..99e8b6397a8 100644 --- a/spec/services/projects/create_service_spec.rb +++ b/spec/services/projects/create_service_spec.rb @@ -91,7 +91,7 @@ describe Projects::CreateService do it "creates git hook from sample" do git_hook = create_project(@user, @opts).git_hook [:force_push_regex, :deny_delete_tag, :delete_branch_regex, :commit_message_regex].each do |attr_name| - git_hook.send(attr_name).should == @git_hook_sample.send(attr_name) + expect(git_hook.send(attr_name)).to eq @git_hook_sample.send(attr_name) end end end diff --git a/spec/services/system_note_service_spec.rb b/spec/services/system_note_service_spec.rb index 6f4f17ef31a..4e22ac963e9 100644 --- a/spec/services/system_note_service_spec.rb +++ b/spec/services/system_note_service_spec.rb @@ -414,7 +414,7 @@ describe SystemNoteService do WebMock.stub_request(:get, jira_api_comment_url).to_return(body: jira_issue_comments) end - subject { Note.create_cross_reference_note(jira_issue, commit, author) } + subject { described_class.cross_reference(jira_issue, commit, author) } it { is_expected.to eq(jira_status_message) } end @@ -425,7 +425,7 @@ describe SystemNoteService do WebMock.stub_request(:get, jira_api_comment_url).to_return(body: "{\"comments\":[{\"body\":\"#{message}\"}]}") end - subject { Note.create_cross_reference_note(jira_issue, commit, author) } + subject { described_class.cross_reference(jira_issue, commit, author) } it { is_expected.not_to eq(jira_status_message) } end end @@ -442,7 +442,7 @@ describe SystemNoteService do jira_tracker.destroy! end - subject { Note.create_cross_reference_note(jira_issue, issue, author) } + subject { described_class.cross_reference(jira_issue, issue, author) } it { is_expected.to eq(jira_status_message) } end -- 2.30.9