Commit 88b3195e authored by Valery Sizov's avatar Valery Sizov

fix specs. Stage 6

parent e2cbb36b
require 'spec_helper' require 'spec_helper'
describe Notify do describe Ci::Notify do
include EmailSpec::Helpers include EmailSpec::Helpers
include EmailSpec::Matchers include EmailSpec::Matchers
before do before do
@project = FactoryGirl.create :project @project = FactoryGirl.create :ci_project
@commit = FactoryGirl.create :commit, project: @project @commit = FactoryGirl.create :ci_commit, project: @project
@build = FactoryGirl.create :build, commit: @commit @build = FactoryGirl.create :ci_build, commit: @commit
end end
describe 'build success' do describe 'build success' do
subject { Notify.build_success_email(@build.id, 'wow@example.com') } subject { Ci::Notify.build_success_email(@build.id, 'wow@example.com') }
it 'has the correct subject' do it 'has the correct subject' do
should have_subject /Build success for/ should have_subject /Build success for/
...@@ -23,7 +23,7 @@ describe Notify do ...@@ -23,7 +23,7 @@ describe Notify do
end end
describe 'build fail' do describe 'build fail' do
subject { Notify.build_fail_email(@build.id, 'wow@example.com') } subject { Ci::Notify.build_fail_email(@build.id, 'wow@example.com') }
it 'has the correct subject' do it 'has the correct subject' do
should have_subject /Build failed for/ should have_subject /Build failed for/
......
...@@ -53,13 +53,13 @@ describe Ci::HipChatService do ...@@ -53,13 +53,13 @@ describe Ci::HipChatService do
it "should call the HipChat API" do it "should call the HipChat API" do
service.execute(build) service.execute(build)
HipChatNotifierWorker.drain Ci::HipChatNotifierWorker.drain
expect( WebMock ).to have_requested(:post, api_url).once expect( WebMock ).to have_requested(:post, api_url).once
end end
it "calls the worker with expected arguments" do it "calls the worker with expected arguments" do
expect( HipChatNotifierWorker ).to receive(:perform_async) \ expect( Ci::HipChatNotifierWorker ).to receive(:perform_async) \
.with(an_instance_of(String), hash_including( .with(an_instance_of(String), hash_including(
token: 'a1b2c3d4e5f6', token: 'a1b2c3d4e5f6',
room: 123, room: 123,
......
...@@ -5,14 +5,14 @@ describe Ci::CreateProjectService do ...@@ -5,14 +5,14 @@ describe Ci::CreateProjectService do
let(:current_user) { double.as_null_object } let(:current_user) { double.as_null_object }
let(:project_dump) { YAML.load File.read(Rails.root.join('spec/support/gitlab_stubs/raw_project.yml')) } let(:project_dump) { YAML.load File.read(Rails.root.join('spec/support/gitlab_stubs/raw_project.yml')) }
before { Network.any_instance.stub(enable_ci: true) } before { allow_any_instance_of(Network).to receive_messages(enable_ci: true) }
describe :execute do describe :execute do
context 'valid params' do context 'valid params' do
let(:project) { service.execute(current_user, project_dump, 'http://localhost/projects/:project_id') } let(:project) { service.execute(current_user, project_dump, 'http://localhost/projects/:project_id') }
it { project.should be_kind_of(Project) } it { expect(project).to be_kind_of(Project) }
it { project.should be_persisted } it { expect(project).to be_persisted }
end end
context 'without project dump' do context 'without project dump' do
...@@ -31,9 +31,9 @@ describe Ci::CreateProjectService do ...@@ -31,9 +31,9 @@ describe Ci::CreateProjectService do
project = service.execute(current_user, project_dump, 'http://localhost/projects/:project_id', origin_project) project = service.execute(current_user, project_dump, 'http://localhost/projects/:project_id', origin_project)
project.shared_runners_enabled.should be_true expect(project.shared_runners_enabled).to be_truthy
project.public.should be_true expect(project.public).to be_truthy
project.allow_git_fetch.should be_true expect(project.allow_git_fetch).to be_truthy
end end
end end
end end
......
...@@ -13,14 +13,14 @@ describe Ci::CreateTriggerRequestService do ...@@ -13,14 +13,14 @@ describe Ci::CreateTriggerRequestService do
@commit = FactoryGirl.create :commit, project: project @commit = FactoryGirl.create :commit, project: project
end end
it { subject.should be_kind_of(TriggerRequest) } it { expect(subject).to be_kind_of(TriggerRequest) }
it { subject.commit.should == @commit } it { expect(subject.commit).to eq(@commit) }
end end
context 'no commit for ref' do context 'no commit for ref' do
subject { service.execute(project, trigger, 'other-branch') } subject { service.execute(project, trigger, 'other-branch') }
it { subject.should be_nil } it { expect(subject).to be_nil }
end end
context 'no builds created' do context 'no builds created' do
...@@ -30,7 +30,7 @@ describe Ci::CreateTriggerRequestService do ...@@ -30,7 +30,7 @@ describe Ci::CreateTriggerRequestService do
FactoryGirl.create :commit_without_jobs, project: project FactoryGirl.create :commit_without_jobs, project: project
end end
it { subject.should be_nil } it { expect(subject).to be_nil }
end end
context 'for multiple commits' do context 'for multiple commits' do
...@@ -43,9 +43,9 @@ describe Ci::CreateTriggerRequestService do ...@@ -43,9 +43,9 @@ describe Ci::CreateTriggerRequestService do
end end
context 'retries latest one' do context 'retries latest one' do
it { subject.should be_kind_of(TriggerRequest) } it { expect(subject).to be_kind_of(TriggerRequest) }
it { subject.should be_persisted } it { expect(subject).to be_persisted }
it { subject.commit.should == @commit2 } it { expect(subject.commit).to eq(@commit2) }
end end
end end
end end
......
...@@ -12,7 +12,7 @@ describe Ci::EventService do ...@@ -12,7 +12,7 @@ describe Ci::EventService do
it "creates event" do it "creates event" do
EventService.new.remove_project(user, project) EventService.new.remove_project(user, project)
Event.admin.last.description.should == "Project \"GitLab / gitlab-shell\" has been removed by root" expect(Event.admin.last.description).to eq("Project \"GitLab / gitlab-shell\" has been removed by root")
end end
end end
...@@ -20,7 +20,7 @@ describe Ci::EventService do ...@@ -20,7 +20,7 @@ describe Ci::EventService do
it "creates event" do it "creates event" do
EventService.new.create_project(user, project) EventService.new.create_project(user, project)
Event.admin.last.description.should == "Project \"GitLab / gitlab-shell\" has been created by root" expect(Event.admin.last.description).to eq("Project \"GitLab / gitlab-shell\" has been created by root")
end end
end end
...@@ -28,7 +28,7 @@ describe Ci::EventService do ...@@ -28,7 +28,7 @@ describe Ci::EventService do
it "creates event" do it "creates event" do
EventService.new.change_project_settings(user, project) EventService.new.change_project_settings(user, project)
Event.last.description.should == "User \"root\" updated projects settings" expect(Event.last.description).to eq("User \"root\" updated projects settings")
end end
end end
end end
require 'spec_helper' require 'spec_helper'
describe Ci::ImageForBuildService do module Ci
let(:service) { ImageForBuildService.new } describe ImageForBuildService do
let(:project) { FactoryGirl.create(:project) } let(:service) { ImageForBuildService.new }
let(:commit) { FactoryGirl.create(:commit, project: project, ref: 'master') } let(:project) { FactoryGirl.create(:ci_project) }
let(:build) { FactoryGirl.create(:build, commit: commit) } let(:commit) { FactoryGirl.create(:ci_commit, project: project, ref: 'master') }
let(:build) { FactoryGirl.create(:ci_build, commit: commit) }
describe :execute do
before { build } describe :execute do
before { build }
context 'branch name' do
before { build.run! } context 'branch name' do
let(:image) { service.execute(project, ref: 'master') } before { build.run! }
let(:image) { service.execute(project, ref: 'master') }
it { image.should be_kind_of(OpenStruct) }
it { image.path.to_s.should include('public/build-running.svg') } it { expect(image).to be_kind_of(OpenStruct) }
it { image.name.should == 'build-running.svg' } it { expect(image.path.to_s).to include('public/ci/build-running.svg') }
end it { expect(image.name).to eq('build-running.svg') }
end
context 'unknown branch name' do
let(:image) { service.execute(project, ref: 'feature') } context 'unknown branch name' do
let(:image) { service.execute(project, ref: 'feature') }
it { image.should be_kind_of(OpenStruct) }
it { image.path.to_s.should include('public/build-unknown.svg') } it { expect(image).to be_kind_of(OpenStruct) }
it { image.name.should == 'build-unknown.svg' } it { expect(image.path.to_s).to include('public/ci/build-unknown.svg') }
end it { expect(image.name).to eq('build-unknown.svg') }
end
context 'commit sha' do
before { build.run! } context 'commit sha' do
let(:image) { service.execute(project, sha: build.sha) } before { build.run! }
let(:image) { service.execute(project, sha: build.sha) }
it { image.should be_kind_of(OpenStruct) }
it { image.path.to_s.should include('public/build-running.svg') } it { expect(image).to be_kind_of(OpenStruct) }
it { image.name.should == 'build-running.svg' } it { expect(image.path.to_s).to include('public/ci/build-running.svg') }
end it { expect(image.name).to eq('build-running.svg') }
end
context 'unknown commit sha' do
let(:image) { service.execute(project, sha: '0000000') } context 'unknown commit sha' do
let(:image) { service.execute(project, sha: '0000000') }
it { image.should be_kind_of(OpenStruct) }
it { image.path.to_s.should include('public/build-unknown.svg') } it { expect(image).to be_kind_of(OpenStruct) }
it { image.name.should == 'build-unknown.svg' } it { expect(image.path.to_s).to include('public/ci/build-unknown.svg') }
it { expect(image.name).to eq('build-unknown.svg') }
end
end end
end end
end end
\ No newline at end of file
require 'spec_helper' require 'spec_helper'
describe Ci::RegisterBuildService do module Ci
let!(:service) { RegisterBuildService.new } describe RegisterBuildService do
let!(:project) { FactoryGirl.create :project } let!(:service) { RegisterBuildService.new }
let!(:commit) { FactoryGirl.create :commit, project: project } let!(:project) { FactoryGirl.create :ci_project }
let!(:pending_build) { FactoryGirl.create :build, project: project, commit: commit } let!(:commit) { FactoryGirl.create :ci_commit, project: project }
let!(:shared_runner) { FactoryGirl.create(:runner, is_shared: true) } let!(:pending_build) { FactoryGirl.create :ci_build, project: project, commit: commit }
let!(:specific_runner) { FactoryGirl.create(:runner, is_shared: false) } let!(:shared_runner) { FactoryGirl.create(:ci_runner, is_shared: true) }
let!(:specific_runner) { FactoryGirl.create(:ci_runner, is_shared: false) }
before do
specific_runner.assign_to(project) before do
end specific_runner.assign_to(project)
describe :execute do
context 'runner follow tag list' do
it "picks build with the same tag" do
pending_build.tag_list = ["linux"]
pending_build.save
specific_runner.tag_list = ["linux"]
service.execute(specific_runner).should == pending_build
end
it "does not pick build with different tag" do
pending_build.tag_list = ["linux"]
pending_build.save
specific_runner.tag_list = ["win32"]
service.execute(specific_runner).should be_false
end
it "picks build without tag" do
service.execute(specific_runner).should == pending_build
end
it "does not pick build with tag" do
pending_build.tag_list = ["linux"]
pending_build.save
service.execute(specific_runner).should be_false
end
it "pick build without tag" do
specific_runner.tag_list = ["win32"]
service.execute(specific_runner).should == pending_build
end
end end
context 'allow shared runners' do describe :execute do
before do context 'runner follow tag list' do
project.shared_runners_enabled = true it "picks build with the same tag" do
project.save pending_build.tag_list = ["linux"]
end pending_build.save
specific_runner.tag_list = ["linux"]
context 'shared runner' do expect(service.execute(specific_runner)).to eq(pending_build)
let(:build) { service.execute(shared_runner) } end
it { build.should be_kind_of(Build) } it "does not pick build with different tag" do
it { build.should be_valid } pending_build.tag_list = ["linux"]
it { build.should be_running } pending_build.save
it { build.runner.should == shared_runner } specific_runner.tag_list = ["win32"]
expect(service.execute(specific_runner)).to be_falsey
end
it "picks build without tag" do
expect(service.execute(specific_runner)).to eq(pending_build)
end
it "does not pick build with tag" do
pending_build.tag_list = ["linux"]
pending_build.save
expect(service.execute(specific_runner)).to be_falsey
end
it "pick build without tag" do
specific_runner.tag_list = ["win32"]
expect(service.execute(specific_runner)).to eq(pending_build)
end
end end
context 'specific runner' do context 'allow shared runners' do
let(:build) { service.execute(specific_runner) } before do
project.shared_runners_enabled = true
it { build.should be_kind_of(Build) } project.save
it { build.should be_valid } end
it { build.should be_running }
it { build.runner.should == specific_runner } context 'shared runner' do
let(:build) { service.execute(shared_runner) }
it { expect(build).to be_kind_of(Build) }
it { expect(build).to be_valid }
it { expect(build).to be_running }
it { expect(build.runner).to eq(shared_runner) }
end
context 'specific runner' do
let(:build) { service.execute(specific_runner) }
it { expect(build).to be_kind_of(Build) }
it { expect(build).to be_valid }
it { expect(build).to be_running }
it { expect(build.runner).to eq(specific_runner) }
end
end end
end
context 'disallow shared runners' do context 'disallow shared runners' do
context 'shared runner' do context 'shared runner' do
let(:build) { service.execute(shared_runner) } let(:build) { service.execute(shared_runner) }
it { build.should be_nil } it { expect(build).to be_nil }
end end
context 'specific runner' do context 'specific runner' do
let(:build) { service.execute(specific_runner) } let(:build) { service.execute(specific_runner) }
it { build.should be_kind_of(Build) } it { expect(build).to be_kind_of(Build) }
it { build.should be_valid } it { expect(build).to be_valid }
it { build.should be_running } it { expect(build).to be_running }
it { build.runner.should == specific_runner } it { expect(build.runner).to eq(specific_runner) }
end
end end
end end
end end
......
...@@ -9,13 +9,13 @@ describe Ci::WebHookService do ...@@ -9,13 +9,13 @@ describe Ci::WebHookService do
describe :execute do describe :execute do
it "should execute successfully" do it "should execute successfully" do
stub_request(:post, hook.url).to_return(status: 200) stub_request(:post, hook.url).to_return(status: 200)
WebHookService.new.build_end(build).should be_true expect(WebHookService.new.build_end(build)).to be_truthy
end end
end end
context 'build_data' do context 'build_data' do
it "contains all needed fields" do it "contains all needed fields" do
build_data(build).should include( expect(build_data(build)).to include(
:build_id, :build_id,
:project_id, :project_id,
:ref, :ref,
......
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