Commit 5a9ede47 authored by Robert Speicher's avatar Robert Speicher Committed by Dmitriy Zaporozhets

Update mock and stub syntax for specs

parent dad88568
module BroadcastMessagesHelper module BroadcastMessagesHelper
def broadcast_styling(broadcast_message) def broadcast_styling(broadcast_message)
if(broadcast_message.color || broadcast_message.font) styling = ''
"background-color:#{broadcast_message.color};color:#{broadcast_message.font}"
else if broadcast_message.color.present?
"" styling << "background-color: #{broadcast_message.color}"
styling << '; ' if broadcast_message.font.present?
end end
if broadcast_message.font.present?
styling << "color: #{broadcast_message.font}"
end
styling
end end
end end
module IconsHelper module IconsHelper
include FontAwesome::Rails::IconHelper
# Creates an icon tag given icon name(s) and possible icon modifiers. # Creates an icon tag given icon name(s) and possible icon modifiers.
# #
# Right now this method simply delegates directly to `fa_icon` from the # Right now this method simply delegates directly to `fa_icon` from the
......
module NotificationsHelper module NotificationsHelper
include IconsHelper
def notification_icon(notification) def notification_icon(notification)
if notification.disabled? if notification.disabled?
icon('volume-off', class: 'ns-mute') icon('volume-off', class: 'ns-mute')
......
...@@ -16,7 +16,7 @@ describe AutocompleteController do ...@@ -16,7 +16,7 @@ describe AutocompleteController do
let(:body) { JSON.parse(response.body) } let(:body) { JSON.parse(response.body) }
it { expect(body).to be_kind_of(Array) } it { expect(body).to be_kind_of(Array) }
it { expect(body.size).to eq(1) } it { expect(body.size).to eq 1 }
it { expect(body.first["username"]).to eq user.username } it { expect(body.first["username"]).to eq user.username }
end end
...@@ -33,7 +33,7 @@ describe AutocompleteController do ...@@ -33,7 +33,7 @@ describe AutocompleteController do
let(:body) { JSON.parse(response.body) } let(:body) { JSON.parse(response.body) }
it { expect(body).to be_kind_of(Array) } it { expect(body).to be_kind_of(Array) }
it { expect(body.size).to eq(1) } it { expect(body.size).to eq 1 }
it { expect(body.first["username"]).to eq user.username } it { expect(body.first["username"]).to eq user.username }
end end
...@@ -46,6 +46,6 @@ describe AutocompleteController do ...@@ -46,6 +46,6 @@ describe AutocompleteController do
let(:body) { JSON.parse(response.body) } let(:body) { JSON.parse(response.body) }
it { expect(body).to be_kind_of(Array) } it { expect(body).to be_kind_of(Array) }
it { expect(body.size).to eq(User.count) } it { expect(body.size).to eq User.count }
end end
end end
...@@ -11,7 +11,8 @@ describe "GitLab Flavored Markdown", feature: true do ...@@ -11,7 +11,8 @@ describe "GitLab Flavored Markdown", feature: true do
end end
before do before do
Commit.any_instance.stub(title: "fix #{issue.to_reference}\n\nask #{fred.to_reference} for details") allow_any_instance_of(Commit).to receive(:title).
and_return("fix #{issue.to_reference}\n\nask #{fred.to_reference} for details")
end end
let(:commit) { project.commit } let(:commit) { project.commit }
......
...@@ -9,7 +9,8 @@ describe 'Profile account page', feature: true do ...@@ -9,7 +9,8 @@ describe 'Profile account page', feature: true do
describe 'when signup is enabled' do describe 'when signup is enabled' do
before do before do
ApplicationSetting.any_instance.stub(signup_enabled?: true) allow_any_instance_of(ApplicationSetting).
to receive(:signup_enabled?).and_return(true)
visit profile_account_path visit profile_account_path
end end
...@@ -23,7 +24,8 @@ describe 'Profile account page', feature: true do ...@@ -23,7 +24,8 @@ describe 'Profile account page', feature: true do
describe 'when signup is disabled' do describe 'when signup is disabled' do
before do before do
ApplicationSetting.any_instance.stub(signup_enabled?: false) allow_any_instance_of(ApplicationSetting).
to receive(:signup_enabled?).and_return(false)
visit profile_account_path visit profile_account_path
end end
......
...@@ -76,8 +76,8 @@ describe ApplicationHelper do ...@@ -76,8 +76,8 @@ describe ApplicationHelper do
end end
it 'should return an url for the avatar with relative url' do it 'should return an url for the avatar with relative url' do
Gitlab.config.gitlab.stub(relative_url_root: '/gitlab') allow(Gitlab.config.gitlab).to receive(:relative_url_root).and_return('/gitlab')
Gitlab.config.gitlab.stub(url: Settings.send(:build_gitlab_url)) allow(Gitlab.config.gitlab).to receive(:url).and_return(Settings.send(:build_gitlab_url))
user = create(:user) user = create(:user)
user.avatar = File.open(avatar_file_path) user.avatar = File.open(avatar_file_path)
...@@ -97,7 +97,7 @@ describe ApplicationHelper do ...@@ -97,7 +97,7 @@ describe ApplicationHelper do
let(:user_email) { 'user@email.com' } let(:user_email) { 'user@email.com' }
it 'should return a generic avatar path when Gravatar is disabled' do it 'should return a generic avatar path when Gravatar is disabled' do
ApplicationSetting.any_instance.stub(gravatar_enabled?: false) allow_any_instance_of(ApplicationSetting).to receive(:gravatar_enabled?).and_return(false)
expect(gravatar_icon(user_email)).to match('no_avatar.png') expect(gravatar_icon(user_email)).to match('no_avatar.png')
end end
...@@ -106,13 +106,13 @@ describe ApplicationHelper do ...@@ -106,13 +106,13 @@ describe ApplicationHelper do
end end
it 'should return default gravatar url' do it 'should return default gravatar url' do
Gitlab.config.gitlab.stub(https: false) allow(Gitlab.config.gitlab).to receive(:https).and_return(false)
url = 'http://www.gravatar.com/avatar/b58c6f14d292556214bd64909bcdb118' url = 'http://www.gravatar.com/avatar/b58c6f14d292556214bd64909bcdb118'
expect(gravatar_icon(user_email)).to match(url) expect(gravatar_icon(user_email)).to match(url)
end end
it 'should use SSL when appropriate' do it 'should use SSL when appropriate' do
Gitlab.config.gitlab.stub(https: true) allow(Gitlab.config.gitlab).to receive(:https).and_return(true)
expect(gravatar_icon(user_email)).to match('https://secure.gravatar.com') expect(gravatar_icon(user_email)).to match('https://secure.gravatar.com')
end end
......
...@@ -2,20 +2,20 @@ require 'spec_helper' ...@@ -2,20 +2,20 @@ require 'spec_helper'
describe BroadcastMessagesHelper do describe BroadcastMessagesHelper do
describe 'broadcast_styling' do describe 'broadcast_styling' do
let(:broadcast_message) { double(color: "", font: "") } let(:broadcast_message) { double(color: '', font: '') }
context "default style" do context "default style" do
it "should have no style" do it "should have no style" do
expect(broadcast_styling(broadcast_message)).to match('') expect(broadcast_styling(broadcast_message)).to eq ''
end end
end end
context "customiezd style" do context "customized style" do
before { broadcast_message.stub(color: "#f2dede", font: "#b94a48") } let(:broadcast_message) { double(color: "#f2dede", font: '#b94a48') }
it "should have a customized style" do it "should have a customized style" do
expect(broadcast_styling(broadcast_message)). expect(broadcast_styling(broadcast_message)).
to match('background-color:#f2dede;color:#b94a48') to match('background-color: #f2dede; color: #b94a48')
end end
end end
end end
......
...@@ -48,19 +48,19 @@ describe DiffHelper do ...@@ -48,19 +48,19 @@ describe DiffHelper do
end end
it 'should return only the first file if the diff line count in the 2nd file takes the total beyond safe limits' do it 'should return only the first file if the diff line count in the 2nd file takes the total beyond safe limits' do
diffs[1].diff.stub(lines: [""] * 4999) #simulate 4999 lines allow(diffs[1].diff).to receive(:lines).and_return([""] * 4999) #simulate 4999 lines
expect(safe_diff_files(diffs).length).to eq(1) expect(safe_diff_files(diffs).length).to eq(1)
end end
it 'should return all files from a commit that is beyond safe limit for numbers of lines if force diff is true' do it 'should return all files from a commit that is beyond safe limit for numbers of lines if force diff is true' do
allow(controller).to receive(:params) { { force_show_diff: true } } allow(controller).to receive(:params) { { force_show_diff: true } }
diffs[1].diff.stub(lines: [""] * 4999) #simulate 4999 lines allow(diffs[1].diff).to receive(:lines).and_return([""] * 4999) #simulate 4999 lines
expect(safe_diff_files(diffs).length).to eq(2) expect(safe_diff_files(diffs).length).to eq(2)
end end
it 'should return only the first file if the diff line count in the 2nd file takes the total beyond hard limits' do it 'should return only the first file if the diff line count in the 2nd file takes the total beyond hard limits' do
allow(controller).to receive(:params) { { force_show_diff: true } } allow(controller).to receive(:params) { { force_show_diff: true } }
diffs[1].diff.stub(lines: [""] * 49999) #simulate 49999 lines allow(diffs[1].diff).to receive(:lines).and_return([""] * 49999) #simulate 49999 lines
expect(safe_diff_files(diffs).length).to eq(1) expect(safe_diff_files(diffs).length).to eq(1)
end end
......
require 'spec_helper' require 'spec_helper'
describe NotificationsHelper do describe NotificationsHelper do
include FontAwesome::Rails::IconHelper
include IconsHelper
describe 'notification_icon' do describe 'notification_icon' do
let(:notification) { double(disabled?: false, participating?: false, watch?: false) } let(:notification) { double(disabled?: false, participating?: false, watch?: false) }
context "disabled notification" do context "disabled notification" do
before { notification.stub(disabled?: true) } before { allow(notification).to receive(:disabled?).and_return(true) }
it "has a red icon" do it "has a red icon" do
expect(notification_icon(notification)).to match('class="fa fa-volume-off ns-mute"') expect(notification_icon(notification)).to match('class="fa fa-volume-off ns-mute"')
...@@ -16,7 +13,7 @@ describe NotificationsHelper do ...@@ -16,7 +13,7 @@ describe NotificationsHelper do
end end
context "participating notification" do context "participating notification" do
before { notification.stub(participating?: true) } before { allow(notification).to receive(:participating?).and_return(true) }
it "has a blue icon" do it "has a blue icon" do
expect(notification_icon(notification)).to match('class="fa fa-volume-down ns-part"') expect(notification_icon(notification)).to match('class="fa fa-volume-down ns-part"')
...@@ -24,7 +21,7 @@ describe NotificationsHelper do ...@@ -24,7 +21,7 @@ describe NotificationsHelper do
end end
context "watched notification" do context "watched notification" do
before { notification.stub(watch?: true) } before { allow(notification).to receive(:watch?).and_return(true) }
it "has a green icon" do it "has a green icon" do
expect(notification_icon(notification)).to match('class="fa fa-volume-up ns-watch"') expect(notification_icon(notification)).to match('class="fa fa-volume-up ns-watch"')
......
...@@ -14,41 +14,41 @@ describe SubmoduleHelper do ...@@ -14,41 +14,41 @@ describe SubmoduleHelper do
context 'submodule on self' do context 'submodule on self' do
before do before do
Gitlab.config.gitlab.stub(protocol: 'http') # set this just to be sure allow(Gitlab.config.gitlab).to receive(:protocol).and_return('http') # set this just to be sure
end end
it 'should detect ssh on standard port' do it 'should detect ssh on standard port' do
Gitlab.config.gitlab_shell.stub(ssh_port: 22) # set this just to be sure allow(Gitlab.config.gitlab_shell).to receive(:ssh_port).and_return(22) # set this just to be sure
Gitlab.config.gitlab_shell.stub(ssh_path_prefix: Settings.send(:build_gitlab_shell_ssh_path_prefix)) allow(Gitlab.config.gitlab_shell).to receive(:ssh_path_prefix).and_return(Settings.send(:build_gitlab_shell_ssh_path_prefix))
stub_url([ config.user, '@', config.host, ':gitlab-org/gitlab-ce.git' ].join('')) stub_url([ config.user, '@', config.host, ':gitlab-org/gitlab-ce.git' ].join(''))
expect(submodule_links(submodule_item)).to eq([ namespace_project_path('gitlab-org', 'gitlab-ce'), namespace_project_tree_path('gitlab-org', 'gitlab-ce', 'hash') ]) expect(submodule_links(submodule_item)).to eq([ namespace_project_path('gitlab-org', 'gitlab-ce'), namespace_project_tree_path('gitlab-org', 'gitlab-ce', 'hash') ])
end end
it 'should detect ssh on non-standard port' do it 'should detect ssh on non-standard port' do
Gitlab.config.gitlab_shell.stub(ssh_port: 2222) allow(Gitlab.config.gitlab_shell).to receive(:ssh_port).and_return(2222)
Gitlab.config.gitlab_shell.stub(ssh_path_prefix: Settings.send(:build_gitlab_shell_ssh_path_prefix)) allow(Gitlab.config.gitlab_shell).to receive(:ssh_path_prefix).and_return(Settings.send(:build_gitlab_shell_ssh_path_prefix))
stub_url([ 'ssh://', config.user, '@', config.host, ':2222/gitlab-org/gitlab-ce.git' ].join('')) stub_url([ 'ssh://', config.user, '@', config.host, ':2222/gitlab-org/gitlab-ce.git' ].join(''))
expect(submodule_links(submodule_item)).to eq([ namespace_project_path('gitlab-org', 'gitlab-ce'), namespace_project_tree_path('gitlab-org', 'gitlab-ce', 'hash') ]) expect(submodule_links(submodule_item)).to eq([ namespace_project_path('gitlab-org', 'gitlab-ce'), namespace_project_tree_path('gitlab-org', 'gitlab-ce', 'hash') ])
end end
it 'should detect http on standard port' do it 'should detect http on standard port' do
Gitlab.config.gitlab.stub(port: 80) allow(Gitlab.config.gitlab).to receive(:port).and_return(80)
Gitlab.config.gitlab.stub(url: Settings.send(:build_gitlab_url)) allow(Gitlab.config.gitlab).to receive(:url).and_return(Settings.send(:build_gitlab_url))
stub_url([ 'http://', config.host, '/gitlab-org/gitlab-ce.git' ].join('')) stub_url([ 'http://', config.host, '/gitlab-org/gitlab-ce.git' ].join(''))
expect(submodule_links(submodule_item)).to eq([ namespace_project_path('gitlab-org', 'gitlab-ce'), namespace_project_tree_path('gitlab-org', 'gitlab-ce', 'hash') ]) expect(submodule_links(submodule_item)).to eq([ namespace_project_path('gitlab-org', 'gitlab-ce'), namespace_project_tree_path('gitlab-org', 'gitlab-ce', 'hash') ])
end end
it 'should detect http on non-standard port' do it 'should detect http on non-standard port' do
Gitlab.config.gitlab.stub(port: 3000) allow(Gitlab.config.gitlab).to receive(:port).and_return(3000)
Gitlab.config.gitlab.stub(url: Settings.send(:build_gitlab_url)) allow(Gitlab.config.gitlab).to receive(:url).and_return(Settings.send(:build_gitlab_url))
stub_url([ 'http://', config.host, ':3000/gitlab-org/gitlab-ce.git' ].join('')) stub_url([ 'http://', config.host, ':3000/gitlab-org/gitlab-ce.git' ].join(''))
expect(submodule_links(submodule_item)).to eq([ namespace_project_path('gitlab-org', 'gitlab-ce'), namespace_project_tree_path('gitlab-org', 'gitlab-ce', 'hash') ]) expect(submodule_links(submodule_item)).to eq([ namespace_project_path('gitlab-org', 'gitlab-ce'), namespace_project_tree_path('gitlab-org', 'gitlab-ce', 'hash') ])
end end
it 'should work with relative_url_root' do it 'should work with relative_url_root' do
Gitlab.config.gitlab.stub(port: 80) # set this just to be sure allow(Gitlab.config.gitlab).to receive(:port).and_return(80) # set this just to be sure
Gitlab.config.gitlab.stub(relative_url_root: '/gitlab/root') allow(Gitlab.config.gitlab).to receive(:relative_url_root).and_return('/gitlab/root')
Gitlab.config.gitlab.stub(url: Settings.send(:build_gitlab_url)) allow(Gitlab.config.gitlab).to receive(:url).and_return(Settings.send(:build_gitlab_url))
stub_url([ 'http://', config.host, '/gitlab/root/gitlab-org/gitlab-ce.git' ].join('')) stub_url([ 'http://', config.host, '/gitlab/root/gitlab-org/gitlab-ce.git' ].join(''))
expect(submodule_links(submodule_item)).to eq([ namespace_project_path('gitlab-org', 'gitlab-ce'), namespace_project_tree_path('gitlab-org', 'gitlab-ce', 'hash') ]) expect(submodule_links(submodule_item)).to eq([ namespace_project_path('gitlab-org', 'gitlab-ce'), namespace_project_tree_path('gitlab-org', 'gitlab-ce', 'hash') ])
end end
...@@ -156,6 +156,6 @@ describe SubmoduleHelper do ...@@ -156,6 +156,6 @@ describe SubmoduleHelper do
end end
def stub_url(url) def stub_url(url)
repo.stub(submodule_url_for: url) allow(repo).to receive(:submodule_url_for).and_return(url)
end end
end end
...@@ -9,8 +9,11 @@ describe ExtractsPath do ...@@ -9,8 +9,11 @@ describe ExtractsPath do
before do before do
@project = project @project = project
project.stub(repository: double(ref_names: ['master', 'foo/bar/baz', 'v1.0.0', 'v2.0.0']))
project.stub(path_with_namespace: 'gitlab/gitlab-ci') repo = double(ref_names: ['master', 'foo/bar/baz', 'v1.0.0', 'v2.0.0'])
allow(project).to receive(:repository).and_return(repo)
allow(project).to receive(:path_with_namespace).
and_return('gitlab/gitlab-ci')
end end
describe '#assign_ref' do describe '#assign_ref' do
......
...@@ -36,7 +36,9 @@ describe Gitlab::Auth do ...@@ -36,7 +36,9 @@ describe Gitlab::Auth do
end end
context "with ldap enabled" do context "with ldap enabled" do
before { Gitlab::LDAP::Config.stub(enabled?: true) } before do
allow(Gitlab::LDAP::Config).to receive(:enabled?).and_return(true)
end
it "tries to autheticate with db before ldap" do it "tries to autheticate with db before ldap" do
expect(Gitlab::LDAP::Authentication).not_to receive(:login) expect(Gitlab::LDAP::Authentication).not_to receive(:login)
......
...@@ -5,7 +5,7 @@ describe Gitlab::Shell do ...@@ -5,7 +5,7 @@ describe Gitlab::Shell do
let(:gitlab_shell) { Gitlab::Shell.new } let(:gitlab_shell) { Gitlab::Shell.new }
before do before do
Project.stub(find: project) allow(Project).to receive(:find).and_return(project)
end end
it { is_expected.to respond_to :add_key } it { is_expected.to respond_to :add_key }
......
...@@ -8,16 +8,24 @@ describe Gitlab::LDAP::Access do ...@@ -8,16 +8,24 @@ describe Gitlab::LDAP::Access do
subject { access.allowed? } subject { access.allowed? }
context 'when the user cannot be found' do context 'when the user cannot be found' do
before { Gitlab::LDAP::Person.stub(find_by_dn: nil) } before do
allow(Gitlab::LDAP::Person).to receive(:find_by_dn).and_return(nil)
end
it { is_expected.to be_falsey } it { is_expected.to be_falsey }
end end
context 'when the user is found' do context 'when the user is found' do
before { Gitlab::LDAP::Person.stub(find_by_dn: :ldap_user) } before do
allow(Gitlab::LDAP::Person).
to receive(:find_by_dn).and_return(:ldap_user)
end
context 'and the user is disabled via active directory' do context 'and the user is disabled via active directory' do
before { Gitlab::LDAP::Person.stub(disabled_via_active_directory?: true) } before do
allow(Gitlab::LDAP::Person).
to receive(:disabled_via_active_directory?).and_return(true)
end
it { is_expected.to be_falsey } it { is_expected.to be_falsey }
...@@ -30,8 +38,9 @@ describe Gitlab::LDAP::Access do ...@@ -30,8 +38,9 @@ describe Gitlab::LDAP::Access do
context 'and has no disabled flag in active diretory' do context 'and has no disabled flag in active diretory' do
before do before do
user.block user.block
Gitlab::LDAP::Person.stub(disabled_via_active_directory?: false) allow(Gitlab::LDAP::Person).
to receive(:disabled_via_active_directory?).and_return(false)
end end
it { is_expected.to be_truthy } it { is_expected.to be_truthy }
...@@ -39,7 +48,8 @@ describe Gitlab::LDAP::Access do ...@@ -39,7 +48,8 @@ describe Gitlab::LDAP::Access do
context 'when auto-created users are blocked' do context 'when auto-created users are blocked' do
before do before do
Gitlab::LDAP::Config.any_instance.stub(block_auto_created_users: true) allow_any_instance_of(Gitlab::LDAP::Config).
to receive(:block_auto_created_users).and_return(true)
end end
it "does not unblock user in GitLab" do it "does not unblock user in GitLab" do
...@@ -51,7 +61,8 @@ describe Gitlab::LDAP::Access do ...@@ -51,7 +61,8 @@ describe Gitlab::LDAP::Access do
context "when auto-created users are not blocked" do context "when auto-created users are not blocked" do
before do before do
Gitlab::LDAP::Config.any_instance.stub(block_auto_created_users: false) allow_any_instance_of(Gitlab::LDAP::Config).
to receive(:block_auto_created_users).and_return(false)
end end
it "should unblock user in GitLab" do it "should unblock user in GitLab" do
...@@ -63,8 +74,9 @@ describe Gitlab::LDAP::Access do ...@@ -63,8 +74,9 @@ describe Gitlab::LDAP::Access do
context 'without ActiveDirectory enabled' do context 'without ActiveDirectory enabled' do
before do before do
Gitlab::LDAP::Config.stub(enabled?: true) allow(Gitlab::LDAP::Config).to receive(:enabled?).and_return(true)
Gitlab::LDAP::Config.any_instance.stub(active_directory: false) allow_any_instance_of(Gitlab::LDAP::Config).
to receive(:active_directory).and_return(false)
end end
it { is_expected.to be_truthy } it { is_expected.to be_truthy }
......
...@@ -3,27 +3,32 @@ require 'spec_helper' ...@@ -3,27 +3,32 @@ require 'spec_helper'
describe Gitlab::LDAP::Adapter do describe Gitlab::LDAP::Adapter do
let(:adapter) { Gitlab::LDAP::Adapter.new 'ldapmain' } let(:adapter) { Gitlab::LDAP::Adapter.new 'ldapmain' }
describe :dn_matches_filter? do describe '#dn_matches_filter?' do
let(:ldap) { double(:ldap) } let(:ldap) { double(:ldap) }
subject { adapter.dn_matches_filter?(:dn, :filter) } subject { adapter.dn_matches_filter?(:dn, :filter) }
before { adapter.stub(ldap: ldap) } before { allow(adapter).to receive(:ldap).and_return(ldap) }
context "when the search is successful" do context "when the search is successful" do
context "and the result is non-empty" do context "and the result is non-empty" do
before { ldap.stub(search: [:foo]) } before { allow(ldap).to receive(:search).and_return([:foo]) }
it { is_expected.to be_truthy } it { is_expected.to be_truthy }
end end
context "and the result is empty" do context "and the result is empty" do
before { ldap.stub(search: []) } before { allow(ldap).to receive(:search).and_return([]) }
it { is_expected.to be_falsey } it { is_expected.to be_falsey }
end end
end end
context "when the search encounters an error" do context "when the search encounters an error" do
before { ldap.stub(search: nil, get_operation_result: double(code: 1, message: 'some error')) } before do
allow(ldap).to receive_messages(
search: nil,
get_operation_result: double(code: 1, message: 'some error')
)
end
it { is_expected.to be_falsey } it { is_expected.to be_falsey }
end end
......
require 'spec_helper' require 'spec_helper'
describe Gitlab::LDAP::Authentication do describe Gitlab::LDAP::Authentication do
let(:klass) { Gitlab::LDAP::Authentication } let(:user) { create(:omniauth_user, extern_uid: dn) }
let(:user) { create(:omniauth_user, extern_uid: dn) } let(:dn) { 'uid=john,ou=people,dc=example,dc=com' }
let(:dn) { 'uid=john,ou=people,dc=example,dc=com' } let(:login) { 'john' }
let(:login) { 'john' }
let(:password) { 'password' } let(:password) { 'password' }
describe :login do describe 'login' do
let(:adapter) { double :adapter }
before do before do
Gitlab::LDAP::Config.stub(enabled?: true) allow(Gitlab::LDAP::Config).to receive(:enabled?).and_return(true)
end end
it "finds the user if authentication is successful" do it "finds the user if authentication is successful" do
user expect(user).not_to be_nil
# try only to fake the LDAP call # try only to fake the LDAP call
klass.any_instance.stub(adapter: double(:adapter, adapter = double('adapter', dn: dn).as_null_object
bind_as: double(:ldap_user, dn: dn) allow_any_instance_of(described_class).
)) to receive(:adapter).and_return(adapter)
expect(klass.login(login, password)).to be_truthy
expect(described_class.login(login, password)).to be_truthy
end end
it "is false if the user does not exist" do it "is false if the user does not exist" do
# try only to fake the LDAP call # try only to fake the LDAP call
klass.any_instance.stub(adapter: double(:adapter, adapter = double('adapter', dn: dn).as_null_object
bind_as: double(:ldap_user, dn: dn) allow_any_instance_of(described_class).
)) to receive(:adapter).and_return(adapter)
expect(klass.login(login, password)).to be_falsey
expect(described_class.login(login, password)).to be_falsey
end end
it "is false if authentication fails" do it "is false if authentication fails" do
user expect(user).not_to be_nil
# try only to fake the LDAP call # try only to fake the LDAP call
klass.any_instance.stub(adapter: double(:adapter, bind_as: nil)) adapter = double('adapter', bind_as: nil).as_null_object
expect(klass.login(login, password)).to be_falsey allow_any_instance_of(described_class).
to receive(:adapter).and_return(adapter)
expect(described_class.login(login, password)).to be_falsey
end end
it "fails if ldap is disabled" do it "fails if ldap is disabled" do
Gitlab::LDAP::Config.stub(enabled?: false) allow(Gitlab::LDAP::Config).to receive(:enabled?).and_return(false)
expect(klass.login(login, password)).to be_falsey expect(described_class.login(login, password)).to be_falsey
end end
it "fails if no login is supplied" do it "fails if no login is supplied" do
expect(klass.login('', password)).to be_falsey expect(described_class.login('', password)).to be_falsey
end end
it "fails if no password is supplied" do it "fails if no password is supplied" do
expect(klass.login(login, '')).to be_falsey expect(described_class.login(login, '')).to be_falsey
end end
end end
end end
\ No newline at end of file
...@@ -16,24 +16,24 @@ describe Gitlab::LDAP::User do ...@@ -16,24 +16,24 @@ describe Gitlab::LDAP::User do
describe :changed? do describe :changed? do
it "marks existing ldap user as changed" do it "marks existing ldap user as changed" do
existing_user = create(:omniauth_user, extern_uid: 'my-uid', provider: 'ldapmain') create(:omniauth_user, extern_uid: 'my-uid', provider: 'ldapmain')
expect(ldap_user.changed?).to be_truthy expect(ldap_user.changed?).to be_truthy
end end
it "marks existing non-ldap user if the email matches as changed" do it "marks existing non-ldap user if the email matches as changed" do
existing_user = create(:user, email: 'john@example.com') create(:user, email: 'john@example.com')
expect(ldap_user.changed?).to be_truthy expect(ldap_user.changed?).to be_truthy
end end
it "dont marks existing ldap user as changed" do it "dont marks existing ldap user as changed" do
existing_user = create(:omniauth_user, email: 'john@example.com', extern_uid: 'my-uid', provider: 'ldapmain') create(:omniauth_user, email: 'john@example.com', extern_uid: 'my-uid', provider: 'ldapmain')
expect(ldap_user.changed?).to be_falsey expect(ldap_user.changed?).to be_falsey
end end
end end
describe :find_or_create do describe :find_or_create do
it "finds the user if already existing" do it "finds the user if already existing" do
existing_user = create(:omniauth_user, extern_uid: 'my-uid', provider: 'ldapmain') create(:omniauth_user, extern_uid: 'my-uid', provider: 'ldapmain')
expect{ ldap_user.save }.to_not change{ User.count } expect{ ldap_user.save }.to_not change{ User.count }
end end
...@@ -52,11 +52,15 @@ describe Gitlab::LDAP::User do ...@@ -52,11 +52,15 @@ describe Gitlab::LDAP::User do
end end
end end
describe 'blocking' do describe 'blocking' do
def configure_block(value)
allow_any_instance_of(Gitlab::LDAP::Config).
to receive(:block_auto_created_users).and_return(value)
end
context 'signup' do context 'signup' do
context 'dont block on create' do context 'dont block on create' do
before { Gitlab::LDAP::Config.any_instance.stub block_auto_created_users: false } before { configure_block(false) }
it do it do
ldap_user.save ldap_user.save
...@@ -66,7 +70,7 @@ describe Gitlab::LDAP::User do ...@@ -66,7 +70,7 @@ describe Gitlab::LDAP::User do
end end
context 'block on create' do context 'block on create' do
before { Gitlab::LDAP::Config.any_instance.stub block_auto_created_users: true } before { configure_block(true) }
it do it do
ldap_user.save ldap_user.save
...@@ -83,7 +87,7 @@ describe Gitlab::LDAP::User do ...@@ -83,7 +87,7 @@ describe Gitlab::LDAP::User do
end end
context 'dont block on create' do context 'dont block on create' do
before { Gitlab::LDAP::Config.any_instance.stub block_auto_created_users: false } before { configure_block(false) }
it do it do
ldap_user.save ldap_user.save
...@@ -93,7 +97,7 @@ describe Gitlab::LDAP::User do ...@@ -93,7 +97,7 @@ describe Gitlab::LDAP::User do
end end
context 'block on create' do context 'block on create' do
before { Gitlab::LDAP::Config.any_instance.stub block_auto_created_users: true } before { configure_block(true) }
it do it do
ldap_user.save ldap_user.save
......
...@@ -10,14 +10,14 @@ describe Gitlab::Upgrader do ...@@ -10,14 +10,14 @@ describe Gitlab::Upgrader do
describe 'latest_version?' do describe 'latest_version?' do
it 'should be true if newest version' do it 'should be true if newest version' do
upgrader.stub(latest_version_raw: current_version) allow(upgrader).to receive(:latest_version_raw).and_return(current_version)
expect(upgrader.latest_version?).to be_truthy expect(upgrader.latest_version?).to be_truthy
end end
end end
describe 'latest_version_raw' do describe 'latest_version_raw' do
it 'should be latest version for GitLab 5' do it 'should be latest version for GitLab 5' do
upgrader.stub(current_version_raw: "5.3.0") allow(upgrader).to receive(:current_version_raw).and_return("5.3.0")
expect(upgrader.latest_version_raw).to eq("v5.4.2") expect(upgrader.latest_version_raw).to eq("v5.4.2")
end end
......
...@@ -77,13 +77,13 @@ eos ...@@ -77,13 +77,13 @@ eos
let(:other_issue) { create :issue, project: other_project } let(:other_issue) { create :issue, project: other_project }
it 'detects issues that this commit is marked as closing' do it 'detects issues that this commit is marked as closing' do
commit.stub(safe_message: "Fixes ##{issue.iid}") allow(commit).to receive(:safe_message).and_return("Fixes ##{issue.iid}")
expect(commit.closes_issues).to eq([issue]) expect(commit.closes_issues).to eq([issue])
end end
it 'does not detect issues from other projects' do it 'does not detect issues from other projects' do
ext_ref = "#{other_project.path_with_namespace}##{other_issue.iid}" ext_ref = "#{other_project.path_with_namespace}##{other_issue.iid}"
commit.stub(safe_message: "Fixes #{ext_ref}") allow(commit).to receive(:safe_message).and_return("Fixes #{ext_ref}")
expect(commit.closes_issues).to be_empty expect(commit.closes_issues).to be_empty
end end
end end
...@@ -93,7 +93,9 @@ eos ...@@ -93,7 +93,9 @@ eos
let(:author) { create(:user, email: commit.author_email) } let(:author) { create(:user, email: commit.author_email) }
let(:backref_text) { "commit #{subject.id}" } let(:backref_text) { "commit #{subject.id}" }
let(:set_mentionable_text) { ->(txt){ subject.stub(safe_message: txt) } } let(:set_mentionable_text) do
->(txt) { allow(subject).to receive(:safe_message).and_return(txt) }
end
# Include the subject in the repository stub. # Include the subject in the repository stub.
let(:extra_commits) { [subject] } let(:extra_commits) { [subject] }
......
...@@ -11,7 +11,10 @@ describe Issue, "Issuable" do ...@@ -11,7 +11,10 @@ describe Issue, "Issuable" do
end end
describe "Validation" do describe "Validation" do
before { subject.stub(set_iid: false) } before do
allow(subject).to receive(:set_iid).and_return(false)
end
it { is_expected.to validate_presence_of(:project) } it { is_expected.to validate_presence_of(:project) }
it { is_expected.to validate_presence_of(:iid) } it { is_expected.to validate_presence_of(:iid) }
it { is_expected.to validate_presence_of(:author) } it { is_expected.to validate_presence_of(:author) }
......
...@@ -58,10 +58,10 @@ describe :forked_from_project do ...@@ -58,10 +58,10 @@ describe :forked_from_project do
end end
def fork_project(from_project, user) def fork_project(from_project, user)
context = Projects::ForkService.new(from_project, user) shell = double('gitlab_shell', fork_repository: true)
shell = double("gitlab_shell")
shell.stub(fork_repository: true) service = Projects::ForkService.new(from_project, user)
context.stub(gitlab_shell: shell) allow(service).to receive(:gitlab_shell).and_return(shell)
context.execute
end
service.execute
end
...@@ -24,8 +24,11 @@ describe GroupMember do ...@@ -24,8 +24,11 @@ describe GroupMember do
describe "#after_create" do describe "#after_create" do
it "should send email to user" do it "should send email to user" do
membership = build(:group_member) membership = build(:group_member)
membership.stub(notification_service: double('NotificationService').as_null_object)
allow(membership).to receive(:notification_service).
and_return(double('NotificationService').as_null_object)
expect(membership).to receive(:notification_service) expect(membership).to receive(:notification_service)
membership.save membership.save
end end
end end
...@@ -33,7 +36,8 @@ describe GroupMember do ...@@ -33,7 +36,8 @@ describe GroupMember do
describe "#after_update" do describe "#after_update" do
before do before do
@group_member = create :group_member @group_member = create :group_member
@group_member.stub(notification_service: double('NotificationService').as_null_object) allow(@group_member).to receive(:notification_service).
and_return(double('NotificationService').as_null_object)
end end
it "should send email to user" do it "should send email to user" do
......
...@@ -111,17 +111,18 @@ describe MergeRequest do ...@@ -111,17 +111,18 @@ describe MergeRequest do
let(:commit2) { double('commit2', closes_issues: [issue1]) } let(:commit2) { double('commit2', closes_issues: [issue1]) }
before do before do
subject.stub(commits: [commit0, commit1, commit2]) allow(subject).to receive(:commits).and_return([commit0, commit1, commit2])
end end
it 'accesses the set of issues that will be closed on acceptance' do it 'accesses the set of issues that will be closed on acceptance' do
subject.project.stub(default_branch: subject.target_branch) allow(subject.project).to receive(:default_branch).
and_return(subject.target_branch)
expect(subject.closes_issues).to eq([issue0, issue1].sort_by(&:id)) expect(subject.closes_issues).to eq([issue0, issue1].sort_by(&:id))
end end
it 'only lists issues as to be closed if it targets the default branch' do it 'only lists issues as to be closed if it targets the default branch' do
subject.project.stub(default_branch: 'master') allow(subject.project).to receive(:default_branch).and_return('master')
subject.target_branch = 'something-else' subject.target_branch = 'something-else'
expect(subject.closes_issues).to be_empty expect(subject.closes_issues).to be_empty
...@@ -130,7 +131,8 @@ describe MergeRequest do ...@@ -130,7 +131,8 @@ describe MergeRequest do
it 'detects issues mentioned in the description' do it 'detects issues mentioned in the description' do
issue2 = create(:issue, project: subject.project) issue2 = create(:issue, project: subject.project)
subject.description = "Closes #{issue2.to_reference}" subject.description = "Closes #{issue2.to_reference}"
subject.project.stub(default_branch: subject.target_branch) allow(subject.project).to receive(:default_branch).
and_return(subject.target_branch)
expect(subject.closes_issues).to include(issue2) expect(subject.closes_issues).to include(issue2)
end end
......
...@@ -21,11 +21,11 @@ describe Milestone do ...@@ -21,11 +21,11 @@ describe Milestone do
it { is_expected.to have_many(:issues) } it { is_expected.to have_many(:issues) }
end end
describe "Mass assignment" do
end
describe "Validation" do describe "Validation" do
before { subject.stub(set_iid: false) } before do
allow(subject).to receive(:set_iid).and_return(false)
end
it { is_expected.to validate_presence_of(:title) } it { is_expected.to validate_presence_of(:title) }
it { is_expected.to validate_presence_of(:project) } it { is_expected.to validate_presence_of(:project) }
end end
...@@ -66,7 +66,7 @@ describe Milestone do ...@@ -66,7 +66,7 @@ describe Milestone do
describe :expired? do describe :expired? do
context "expired" do context "expired" do
before do before do
milestone.stub(due_date: Date.today.prev_year) allow(milestone).to receive(:due_date).and_return(Date.today.prev_year)
end end
it { expect(milestone.expired?).to be_truthy } it { expect(milestone.expired?).to be_truthy }
...@@ -74,7 +74,7 @@ describe Milestone do ...@@ -74,7 +74,7 @@ describe Milestone do
context "not expired" do context "not expired" do
before do before do
milestone.stub(due_date: Date.today.next_year) allow(milestone).to receive(:due_date).and_return(Date.today.next_year)
end end
it { expect(milestone.expired?).to be_falsey } it { expect(milestone.expired?).to be_falsey }
...@@ -83,7 +83,7 @@ describe Milestone do ...@@ -83,7 +83,7 @@ describe Milestone do
describe :percent_complete do describe :percent_complete do
before do before do
milestone.stub( allow(milestone).to receive_messages(
closed_items_count: 3, closed_items_count: 3,
total_items_count: 4 total_items_count: 4
) )
......
...@@ -53,7 +53,7 @@ describe Namespace do ...@@ -53,7 +53,7 @@ describe Namespace do
describe :move_dir do describe :move_dir do
before do before do
@namespace = create :namespace @namespace = create :namespace
@namespace.stub(path_changed?: true) allow(@namespace).to receive(:path_changed?).and_return(true)
end end
it "should raise error when directory exists" do it "should raise error when directory exists" do
...@@ -62,8 +62,8 @@ describe Namespace do ...@@ -62,8 +62,8 @@ describe Namespace do
it "should move dir if path changed" do it "should move dir if path changed" do
new_path = @namespace.path + "_new" new_path = @namespace.path + "_new"
@namespace.stub(path_was: @namespace.path) allow(@namespace).to receive(:path_was).and_return(@namespace.path)
@namespace.stub(path: new_path) allow(@namespace).to receive(:path).and_return(new_path)
expect(@namespace.move_dir).to be_truthy expect(@namespace.move_dir).to be_truthy
end end
end end
......
...@@ -42,7 +42,7 @@ describe AsanaService, models: true do ...@@ -42,7 +42,7 @@ describe AsanaService, models: true do
before do before do
@asana = AsanaService.new @asana = AsanaService.new
@asana.stub( allow(@asana).to receive_messages(
project: project, project: project,
project_id: project.id, project_id: project.id,
service_hook: true, service_hook: true,
......
...@@ -32,7 +32,7 @@ describe AssemblaService, models: true do ...@@ -32,7 +32,7 @@ describe AssemblaService, models: true do
before do before do
@assembla_service = AssemblaService.new @assembla_service = AssemblaService.new
@assembla_service.stub( allow(@assembla_service).to receive_messages(
project_id: project.id, project_id: project.id,
project: project, project: project,
service_hook: true, service_hook: true,
......
...@@ -29,12 +29,10 @@ describe BuildkiteService do ...@@ -29,12 +29,10 @@ describe BuildkiteService do
describe 'commits methods' do describe 'commits methods' do
before do before do
@project = Project.new @project = Project.new
@project.stub( allow(@project).to receive(:default_branch).and_return('default-brancho')
default_branch: 'default-brancho'
)
@service = BuildkiteService.new @service = BuildkiteService.new
@service.stub( allow(@service).to receive_messages(
project: @project, project: @project,
service_hook: true, service_hook: true,
project_url: 'https://buildkite.com/account-name/example-project', project_url: 'https://buildkite.com/account-name/example-project',
......
...@@ -32,7 +32,7 @@ describe FlowdockService do ...@@ -32,7 +32,7 @@ describe FlowdockService do
before do before do
@flowdock_service = FlowdockService.new @flowdock_service = FlowdockService.new
@flowdock_service.stub( allow(@flowdock_service).to receive_messages(
project_id: project.id, project_id: project.id,
project: project, project: project,
service_hook: true, service_hook: true,
......
...@@ -32,7 +32,7 @@ describe GemnasiumService do ...@@ -32,7 +32,7 @@ describe GemnasiumService do
before do before do
@gemnasium_service = GemnasiumService.new @gemnasium_service = GemnasiumService.new
@gemnasium_service.stub( allow(@gemnasium_service).to receive_messages(
project_id: project.id, project_id: project.id,
project: project, project: project,
service_hook: true, service_hook: true,
......
...@@ -21,18 +21,15 @@ ...@@ -21,18 +21,15 @@
require 'spec_helper' require 'spec_helper'
describe GitlabCiService do describe GitlabCiService do
describe "Associations" do describe 'associations' do
it { is_expected.to belong_to :project } it { is_expected.to belong_to(:project) }
it { is_expected.to have_one :service_hook } it { is_expected.to have_one(:service_hook) }
end
describe "Mass assignment" do
end end
describe 'commits methods' do describe 'commits methods' do
before do before do
@service = GitlabCiService.new @service = GitlabCiService.new
@service.stub( allow(@service).to receive_messages(
service_hook: true, service_hook: true,
project_url: 'http://ci.gitlab.org/projects/2', project_url: 'http://ci.gitlab.org/projects/2',
token: 'verySecret' token: 'verySecret'
...@@ -56,9 +53,9 @@ describe GitlabCiService do ...@@ -56,9 +53,9 @@ describe GitlabCiService do
it "calls ci_yaml_file" do it "calls ci_yaml_file" do
service_hook = double service_hook = double
service_hook.should_receive(:execute) expect(service_hook).to receive(:execute)
@service.should_receive(:service_hook).and_return(service_hook) expect(@service).to receive(:service_hook).and_return(service_hook)
@service.should_receive(:ci_yaml_file).with(push_sample_data[:checkout_sha]) expect(@service).to receive(:ci_yaml_file).with(push_sample_data[:checkout_sha])
@service.execute(push_sample_data) @service.execute(push_sample_data)
end end
...@@ -72,7 +69,7 @@ describe GitlabCiService do ...@@ -72,7 +69,7 @@ describe GitlabCiService do
@user = create(:user) @user = create(:user)
@service = GitlabCiService.new @service = GitlabCiService.new
@service.stub( allow(@service).to receive_messages(
service_hook: true, service_hook: true,
project_url: 'http://ci.gitlab.org/projects/2', project_url: 'http://ci.gitlab.org/projects/2',
token: 'verySecret', token: 'verySecret',
......
...@@ -37,7 +37,7 @@ describe HipchatService do ...@@ -37,7 +37,7 @@ describe HipchatService do
let(:push_sample_data) { Gitlab::PushDataBuilder.build_sample(project, user) } let(:push_sample_data) { Gitlab::PushDataBuilder.build_sample(project, user) }
before(:each) do before(:each) do
hipchat.stub( allow(hipchat).to receive_messages(
project_id: project.id, project_id: project.id,
project: project, project: project,
room: 123456, room: 123456,
...@@ -48,7 +48,7 @@ describe HipchatService do ...@@ -48,7 +48,7 @@ describe HipchatService do
end end
it 'should use v1 if version is provided' do it 'should use v1 if version is provided' do
hipchat.stub(api_version: 'v1') allow(hipchat).to receive(:api_version).and_return('v1')
expect(HipChat::Client).to receive(:new). expect(HipChat::Client).to receive(:new).
with(token, with(token,
api_version: 'v1', api_version: 'v1',
...@@ -59,7 +59,7 @@ describe HipchatService do ...@@ -59,7 +59,7 @@ describe HipchatService do
end end
it 'should use v2 as the version when nothing is provided' do it 'should use v2 as the version when nothing is provided' do
hipchat.stub(api_version: '') allow(hipchat).to receive(:api_version).and_return('')
expect(HipChat::Client).to receive(:new). expect(HipChat::Client).to receive(:new).
with(token, with(token,
api_version: 'v2', api_version: 'v2',
...@@ -245,12 +245,12 @@ describe HipchatService do ...@@ -245,12 +245,12 @@ describe HipchatService do
end end
it "should set notfiy to true" do it "should set notfiy to true" do
hipchat.stub(notify: '1') allow(hipchat).to receive(:notify).and_return('1')
expect(hipchat.send(:message_options)).to eq({notify: true, color: 'yellow'}) expect(hipchat.send(:message_options)).to eq({notify: true, color: 'yellow'})
end end
it "should set the color" do it "should set the color" do
hipchat.stub(color: 'red') allow(hipchat).to receive(:color).and_return('red')
expect(hipchat.send(:message_options)).to eq({notify: false, color: 'red'}) expect(hipchat.send(:message_options)).to eq({notify: false, color: 'red'})
end end
end end
......
...@@ -24,8 +24,8 @@ require 'json' ...@@ -24,8 +24,8 @@ require 'json'
describe IrkerService do describe IrkerService do
describe 'Associations' do describe 'Associations' do
it { should belong_to :project } it { is_expected.to belong_to :project }
it { should have_one :service_hook } it { is_expected.to have_one :service_hook }
end end
describe 'Validations' do describe 'Validations' do
...@@ -66,7 +66,7 @@ describe IrkerService do ...@@ -66,7 +66,7 @@ describe IrkerService do
let(:colorize_messages) { '1' } let(:colorize_messages) { '1' }
before do before do
irker.stub( allow(irker).to receive_messages(
active: true, active: true,
project: project, project: project,
project_id: project.id, project_id: project.id,
......
...@@ -52,7 +52,7 @@ describe PushoverService do ...@@ -52,7 +52,7 @@ describe PushoverService do
let(:api_url) { 'https://api.pushover.net/1/messages.json' } let(:api_url) { 'https://api.pushover.net/1/messages.json' }
before do before do
pushover.stub( allow(pushover).to receive_messages(
project: project, project: project,
project_id: project.id, project_id: project.id,
service_hook: true, service_hook: true,
......
...@@ -46,7 +46,7 @@ describe SlackService do ...@@ -46,7 +46,7 @@ describe SlackService do
let(:channel) { 'slack_channel' } let(:channel) { 'slack_channel' }
before do before do
slack.stub( allow(slack).to receive_messages(
project: project, project: project,
project_id: project.id, project_id: project.id,
service_hook: true, service_hook: true,
...@@ -96,7 +96,7 @@ describe SlackService do ...@@ -96,7 +96,7 @@ describe SlackService do
end end
it 'should use the username as an option for slack when configured' do it 'should use the username as an option for slack when configured' do
slack.stub(username: username) allow(slack).to receive(:username).and_return(username)
expect(Slack::Notifier).to receive(:new). expect(Slack::Notifier).to receive(:new).
with(webhook_url, username: username). with(webhook_url, username: username).
and_return( and_return(
...@@ -106,7 +106,7 @@ describe SlackService do ...@@ -106,7 +106,7 @@ describe SlackService do
end end
it 'should use the channel as an option when it is configured' do it 'should use the channel as an option when it is configured' do
slack.stub(channel: channel) allow(slack).to receive(:channel).and_return(channel)
expect(Slack::Notifier).to receive(:new). expect(Slack::Notifier).to receive(:new).
with(webhook_url, channel: channel). with(webhook_url, channel: channel).
and_return( and_return(
...@@ -130,11 +130,11 @@ describe SlackService do ...@@ -130,11 +130,11 @@ describe SlackService do
let(:webhook_url) { 'https://hooks.slack.com/services/SVRWFV0VVAR97N/B02R25XN3/ZBqu7xMupaEEICInN685' } let(:webhook_url) { 'https://hooks.slack.com/services/SVRWFV0VVAR97N/B02R25XN3/ZBqu7xMupaEEICInN685' }
before do before do
slack.stub( allow(slack).to receive_messages(
project: project, project: project,
project_id: project.id, project_id: project.id,
service_hook: true, service_hook: true,
webhook: webhook_url webhook: webhook_url
) )
WebMock.stub_request(:post, webhook_url) WebMock.stub_request(:post, webhook_url)
......
...@@ -127,7 +127,7 @@ describe Project do ...@@ -127,7 +127,7 @@ describe Project do
describe 'last_activity' do describe 'last_activity' do
it 'should alias last_activity to last_event' do it 'should alias last_activity to last_event' do
project.stub(last_event: last_event) allow(project).to receive(:last_event).and_return(last_event)
expect(project.last_activity).to eq(last_event) expect(project.last_activity).to eq(last_event)
end end
end end
......
...@@ -39,9 +39,7 @@ describe Service do ...@@ -39,9 +39,7 @@ describe Service do
let (:project) { create :project } let (:project) { create :project }
before do before do
@service.stub( allow(@service).to receive(:project).and_return(project)
project: project
)
@testable = @service.can_test? @testable = @service.can_test?
end end
...@@ -54,9 +52,7 @@ describe Service do ...@@ -54,9 +52,7 @@ describe Service do
let (:project) { create :project } let (:project) { create :project }
before do before do
@service.stub( allow(@service).to receive(:project).and_return(project)
project: project
)
@testable = @service.can_test? @testable = @service.can_test?
end end
......
...@@ -458,21 +458,25 @@ describe User do ...@@ -458,21 +458,25 @@ describe User do
it 'is false when LDAP is disabled' do it 'is false when LDAP is disabled' do
# Create a condition which would otherwise cause 'true' to be returned # Create a condition which would otherwise cause 'true' to be returned
user.stub(ldap_user?: true) allow(user).to receive(:ldap_user?).and_return(true)
user.last_credential_check_at = nil user.last_credential_check_at = nil
expect(user.requires_ldap_check?).to be_falsey expect(user.requires_ldap_check?).to be_falsey
end end
context 'when LDAP is enabled' do context 'when LDAP is enabled' do
before { Gitlab.config.ldap.stub(enabled: true) } before do
allow(Gitlab.config.ldap).to receive(:enabled).and_return(true)
end
it 'is false for non-LDAP users' do it 'is false for non-LDAP users' do
user.stub(ldap_user?: false) allow(user).to receive(:ldap_user?).and_return(false)
expect(user.requires_ldap_check?).to be_falsey expect(user.requires_ldap_check?).to be_falsey
end end
context 'and when the user is an LDAP user' do context 'and when the user is an LDAP user' do
before { user.stub(ldap_user?: true) } before do
allow(user).to receive(:ldap_user?).and_return(true)
end
it 'is true when the user has never had an LDAP check before' do it 'is true when the user has never had an LDAP check before' do
user.last_credential_check_at = nil user.last_credential_check_at = nil
......
...@@ -47,7 +47,7 @@ describe API, api: true do ...@@ -47,7 +47,7 @@ describe API, api: true do
it "should return nil for a user without access" do it "should return nil for a user without access" do
env[API::APIHelpers::PRIVATE_TOKEN_HEADER] = user.private_token env[API::APIHelpers::PRIVATE_TOKEN_HEADER] = user.private_token
Gitlab::UserAccess.stub(allowed?: false) allow(Gitlab::UserAccess).to receive(:allowed?).and_return(false)
expect(current_user).to be_nil expect(current_user).to be_nil
end end
......
...@@ -141,7 +141,9 @@ describe API::API, api: true do ...@@ -141,7 +141,9 @@ describe API::API, api: true do
end end
describe "DELETE /projects/:id/repository/branches/:branch" do describe "DELETE /projects/:id/repository/branches/:branch" do
before { Repository.any_instance.stub(rm_branch: true) } before do
allow_any_instance_of(Repository).to receive(:rm_branch).and_return(true)
end
it "should remove branch" do it "should remove branch" do
delete api("/projects/#{project.id}/repository/branches/#{branch_name}", user) delete api("/projects/#{project.id}/repository/branches/#{branch_name}", user)
......
...@@ -60,9 +60,8 @@ describe API::API, api: true do ...@@ -60,9 +60,8 @@ describe API::API, api: true do
end end
it "should return a 400 if editor fails to create file" do it "should return a 400 if editor fails to create file" do
Repository.any_instance.stub( allow_any_instance_of(Repository).to receive(:commit_file).
commit_file: false, and_return(false)
)
post api("/projects/#{project.id}/repository/files", user), valid_params post api("/projects/#{project.id}/repository/files", user), valid_params
expect(response.status).to eq(400) expect(response.status).to eq(400)
...@@ -112,9 +111,7 @@ describe API::API, api: true do ...@@ -112,9 +111,7 @@ describe API::API, api: true do
end end
it "should return a 400 if satellite fails to create file" do it "should return a 400 if satellite fails to create file" do
Repository.any_instance.stub( allow_any_instance_of(Repository).to receive(:remove_file).and_return(false)
remove_file: false,
)
delete api("/projects/#{project.id}/repository/files", user), valid_params delete api("/projects/#{project.id}/repository/files", user), valid_params
expect(response.status).to eq(400) expect(response.status).to eq(400)
......
...@@ -167,7 +167,8 @@ describe API::API, api: true do ...@@ -167,7 +167,8 @@ describe API::API, api: true do
describe "POST /groups/:id/projects/:project_id" do describe "POST /groups/:id/projects/:project_id" do
let(:project) { create(:project) } let(:project) { create(:project) }
before(:each) do before(:each) do
Projects::TransferService.any_instance.stub(execute: true) allow_any_instance_of(Projects::TransferService).
to receive(:execute).and_return(true)
allow(Project).to receive(:find).and_return(project) allow(Project).to receive(:find).and_return(project)
end end
......
...@@ -301,14 +301,20 @@ describe API::API, api: true do ...@@ -301,14 +301,20 @@ describe API::API, api: true do
describe "PUT /projects/:id/merge_request/:merge_request_id/merge" do describe "PUT /projects/:id/merge_request/:merge_request_id/merge" do
it "should return merge_request in case of success" do it "should return merge_request in case of success" do
MergeRequest.any_instance.stub(can_be_merged?: true, automerge!: true) allow_any_instance_of(MergeRequest).
to receive_messages(can_be_merged?: true, automerge!: true)
put api("/projects/#{project.id}/merge_request/#{merge_request.id}/merge", user) put api("/projects/#{project.id}/merge_request/#{merge_request.id}/merge", user)
expect(response.status).to eq(200) expect(response.status).to eq(200)
end end
it "should return 405 if branch can't be merged" do it "should return 405 if branch can't be merged" do
MergeRequest.any_instance.stub(can_be_merged?: false) allow_any_instance_of(MergeRequest).
to receive(:can_be_merged?).and_return(false)
put api("/projects/#{project.id}/merge_request/#{merge_request.id}/merge", user) put api("/projects/#{project.id}/merge_request/#{merge_request.id}/merge", user)
expect(response.status).to eq(405) expect(response.status).to eq(405)
expect(json_response['message']).to eq('Branch cannot be merged') expect(json_response['message']).to eq('Branch cannot be merged')
end end
......
...@@ -121,15 +121,13 @@ describe API::API, api: true do ...@@ -121,15 +121,13 @@ describe API::API, api: true do
get api('/projects/all', admin) get api('/projects/all', admin)
expect(response.status).to eq(200) expect(response.status).to eq(200)
expect(json_response).to be_an Array expect(json_response).to be_an Array
project_name = project.name
expect(json_response.detect { expect(json_response).to satisfy do |response|
|project| project['name'] == project_name response.one? do |entry|
}['name']).to eq(project_name) entry['name'] == project.name &&
entry['owner']['username'] == user.username
expect(json_response.detect { end
|project| project['owner']['username'] == user.username end
}['owner']['username']).to eq(user.username)
end end
end end
end end
...@@ -138,9 +136,8 @@ describe API::API, api: true do ...@@ -138,9 +136,8 @@ describe API::API, api: true do
context 'maximum number of projects reached' do context 'maximum number of projects reached' do
it 'should not create new project and respond with 403' do it 'should not create new project and respond with 403' do
allow_any_instance_of(User).to receive(:projects_limit_left).and_return(0) allow_any_instance_of(User).to receive(:projects_limit_left).and_return(0)
expect { expect { post api('/projects', user2), name: 'foo' }.
post api('/projects', user2), name: 'foo' to change {Project.count}.by(0)
}.to change {Project.count}.by(0)
expect(response.status).to eq(403) expect(response.status).to eq(403)
end end
end end
......
...@@ -124,7 +124,8 @@ describe GitPushService do ...@@ -124,7 +124,8 @@ describe GitPushService do
end end
it "when pushing a branch for the first time with default branch protection disabled" do it "when pushing a branch for the first time with default branch protection disabled" do
ApplicationSetting.any_instance.stub(default_branch_protection: 0) allow_any_instance_of(ApplicationSetting).
to receive(:default_branch_protection).and_return(0)
expect(project).to receive(:execute_hooks) expect(project).to receive(:execute_hooks)
expect(project.default_branch).to eq("master") expect(project.default_branch).to eq("master")
...@@ -133,7 +134,8 @@ describe GitPushService do ...@@ -133,7 +134,8 @@ describe GitPushService do
end end
it "when pushing a branch for the first time with default branch protection set to 'developers can push'" do it "when pushing a branch for the first time with default branch protection set to 'developers can push'" do
ApplicationSetting.any_instance.stub(default_branch_protection: 1) allow_any_instance_of(ApplicationSetting).
to receive(:default_branch_protection).and_return(1)
expect(project).to receive(:execute_hooks) expect(project).to receive(:execute_hooks)
expect(project.default_branch).to eq("master") expect(project.default_branch).to eq("master")
...@@ -154,13 +156,13 @@ describe GitPushService do ...@@ -154,13 +156,13 @@ describe GitPushService do
let(:commit) { project.commit } let(:commit) { project.commit }
before do before do
commit.stub({ allow(commit).to receive_messages(
safe_message: "this commit \n mentions ##{issue.id}", safe_message: "this commit \n mentions ##{issue.id}",
references: [issue], references: [issue],
author_name: commit_author.name, author_name: commit_author.name,
author_email: commit_author.email author_email: commit_author.email
}) )
project.repository.stub(commits_between: [commit]) allow(project.repository).to receive(:commits_between).and_return([commit])
end end
it "creates a note if a pushed commit mentions an issue" do it "creates a note if a pushed commit mentions an issue" do
...@@ -178,7 +180,10 @@ describe GitPushService do ...@@ -178,7 +180,10 @@ describe GitPushService do
end end
it "defaults to the pushing user if the commit's author is not known" do it "defaults to the pushing user if the commit's author is not known" do
commit.stub(author_name: 'unknown name', author_email: 'unknown@email.com') allow(commit).to receive_messages(
author_name: 'unknown name',
author_email: 'unknown@email.com'
)
expect(Note).to receive(:create_cross_reference_note).with(issue, commit, user) expect(Note).to receive(:create_cross_reference_note).with(issue, commit, user)
service.execute(project, user, @oldrev, @newrev, @ref) service.execute(project, user, @oldrev, @newrev, @ref)
...@@ -201,14 +206,15 @@ describe GitPushService do ...@@ -201,14 +206,15 @@ describe GitPushService do
let(:closing_commit) { project.commit } let(:closing_commit) { project.commit }
before do before do
closing_commit.stub({ allow(closing_commit).to receive_messages(
issue_closing_regex: /^([Cc]loses|[Ff]ixes) #\d+/, issue_closing_regex: /^([Cc]loses|[Ff]ixes) #\d+/,
safe_message: "this is some work.\n\ncloses ##{issue.iid}", safe_message: "this is some work.\n\ncloses ##{issue.iid}",
author_name: commit_author.name, author_name: commit_author.name,
author_email: commit_author.email author_email: commit_author.email
}) )
project.repository.stub(commits_between: [closing_commit]) allow(project.repository).to receive(:commits_between).
and_return([closing_commit])
end end
it "closes issues with commit messages" do it "closes issues with commit messages" do
...@@ -224,7 +230,7 @@ describe GitPushService do ...@@ -224,7 +230,7 @@ describe GitPushService do
end end
it "doesn't close issues when pushed to non-default branches" do it "doesn't close issues when pushed to non-default branches" do
project.stub(default_branch: 'durf') allow(project).to receive(:default_branch).and_return('durf')
# The push still shouldn't create cross-reference notes. # The push still shouldn't create cross-reference notes.
expect { expect {
......
...@@ -41,11 +41,13 @@ module TestEnv ...@@ -41,11 +41,13 @@ module TestEnv
end end
def disable_mailer def disable_mailer
NotificationService.any_instance.stub(mailer: double.as_null_object) allow_any_instance_of(NotificationService).to receive(:mailer).
and_return(double.as_null_object)
end end
def enable_mailer def enable_mailer
allow_any_instance_of(NotificationService).to receive(:mailer).and_call_original allow_any_instance_of(NotificationService).to receive(:mailer).
and_call_original
end end
# Clean /tmp/tests # Clean /tmp/tests
......
...@@ -23,30 +23,33 @@ describe 'gitlab:app namespace rake task' do ...@@ -23,30 +23,33 @@ describe 'gitlab:app namespace rake task' do
context 'gitlab version' do context 'gitlab version' do
before do before do
Dir.stub glob: [] allow(Dir).to receive(:glob).and_return([])
allow(Dir).to receive :chdir allow(Dir).to receive(:chdir)
File.stub exists?: true allow(File).to receive(:exists?).and_return(true)
Kernel.stub system: true allow(Kernel).to receive(:system).and_return(true)
FileUtils.stub cp_r: true allow(FileUtils).to receive(:cp_r).and_return(true)
FileUtils.stub mv: true allow(FileUtils).to receive(:mv).and_return(true)
Rake::Task["gitlab:shell:setup"].stub invoke: true allow(Rake::Task["gitlab:shell:setup"]).
to receive(:invoke).and_return(true)
end end
let(:gitlab_version) { Gitlab::VERSION } let(:gitlab_version) { Gitlab::VERSION }
it 'should fail on mismatch' do it 'should fail on mismatch' do
YAML.stub load_file: {gitlab_version: "not #{gitlab_version}" } allow(YAML).to receive(:load_file).
expect { run_rake_task('gitlab:backup:restore') }.to( and_return({gitlab_version: "not #{gitlab_version}" })
raise_error SystemExit
) expect { run_rake_task('gitlab:backup:restore') }.
to raise_error(SystemExit)
end end
it 'should invoke restoration on mach' do it 'should invoke restoration on mach' do
YAML.stub load_file: {gitlab_version: gitlab_version} allow(YAML).to receive(:load_file).
expect(Rake::Task["gitlab:backup:db:restore"]).to receive :invoke and_return({gitlab_version: gitlab_version})
expect(Rake::Task["gitlab:backup:repo:restore"]).to receive :invoke expect(Rake::Task["gitlab:backup:db:restore"]).to receive(:invoke)
expect(Rake::Task["gitlab:shell:setup"]).to receive :invoke expect(Rake::Task["gitlab:backup:repo:restore"]).to receive(:invoke)
expect { run_rake_task('gitlab:backup:restore') }.to_not raise_error expect(Rake::Task["gitlab:shell:setup"]).to receive(:invoke)
expect { run_rake_task('gitlab:backup:restore') }.not_to raise_error
end end
end end
...@@ -140,7 +143,8 @@ describe 'gitlab:app namespace rake task' do ...@@ -140,7 +143,8 @@ describe 'gitlab:app namespace rake task' do
end end
it 'does not invoke repositories restore' do it 'does not invoke repositories restore' do
Rake::Task["gitlab:shell:setup"].stub invoke: true allow(Rake::Task["gitlab:shell:setup"]).
to receive(:invoke).and_return(true)
allow($stdout).to receive :write allow($stdout).to receive :write
expect(Rake::Task["gitlab:backup:db:restore"]).to receive :invoke expect(Rake::Task["gitlab:backup:db:restore"]).to receive :invoke
......
...@@ -30,7 +30,7 @@ describe PostReceive do ...@@ -30,7 +30,7 @@ describe PostReceive do
end end
it "asks the project to trigger all hooks" do it "asks the project to trigger all hooks" do
Project.stub(find_with_namespace: project) allow(Project).to receive(:find_with_namespace).and_return(project)
expect(project).to receive(:execute_hooks).twice expect(project).to receive(:execute_hooks).twice
expect(project).to receive(:execute_services).twice expect(project).to receive(:execute_services).twice
expect(project).to receive(:update_merge_requests) expect(project).to receive(:update_merge_requests)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment