Skip to content

Commit

Permalink
A bit of test refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
dzaporozhets committed Sep 14, 2012
1 parent 0d66cf2 commit a82977c
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 75 deletions.
2 changes: 1 addition & 1 deletion Guardfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# A sample Guardfile
# More info at https://github.com/guard/guard#readme

guard 'rspec', :version => 2, :all_on_start => false do
guard 'rspec', :version => 2, :all_on_start => false, :all_after_pass => false do
watch(%r{^spec/.+_spec\.rb$})
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
watch('spec/spec_helper.rb') { "spec" }
Expand Down
5 changes: 2 additions & 3 deletions app/observers/users_project_observer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,9 @@ def after_update(users_project)

def after_destroy(users_project)
Event.create(
project_id: users_project.project.id,
action: Event::Left,
project_id: users_project.project.id,
action: Event::Left,
author_id: users_project.user.id
)
end

end
41 changes: 20 additions & 21 deletions spec/models/event_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@
it { should respond_to(:commits) }
end

describe "Push event" do
before do
describe "Push event" do
before do
project = Factory :project
@user = project.owner

data = {
data = {
before: "0000000000000000000000000000000000000000",
after: "0220c11b9a3e6c69dc8fd35321254ca9a7b98f7e",
ref: "refs/heads/master",
Expand Down Expand Up @@ -50,25 +50,24 @@
it { @event.author.should == @user }
end

describe "Joined project team" do
let(:project) {Factory.create :project}
let(:new_user) {Factory.create :user}
it "should create event" do
UsersProject.observers.enable :users_project_observer
expect{
UsersProject.bulk_import(project, [new_user.id], UsersProject::DEVELOPER)
}.to change{Event.count}.by(1)
describe 'Team events' do
let(:user_project) { stub.as_null_object }
let(:observer) { UsersProjectObserver.instance }

before {
Event.should_receive :create
}

describe "Joined project team" do
it "should create event" do
observer.after_create user_project
end
end
end
describe "Left project team" do
let(:project) {Factory.create :project}
let(:new_user) {Factory.create :user}
it "should create event" do
UsersProject.bulk_import(project, [new_user.id], UsersProject::DEVELOPER)
UsersProject.observers.enable :users_project_observer
expect{
UsersProject.bulk_delete(project, [new_user.id])
}.to change{Event.count}.by(1)

describe "Left project team" do
it "should create event" do
observer.after_destroy user_project
end
end
end
end
41 changes: 21 additions & 20 deletions spec/observers/users_project_observer_spec.rb
Original file line number Diff line number Diff line change
@@ -1,64 +1,65 @@
require 'spec_helper'

describe UsersProjectObserver do
let(:user) { Factory.create :user }
let(:project) { Factory.create(:project,
code: "Fuu",
path: "Fuu" ) }
let(:users_project) { Factory.create(:users_project,
project: project,
user: user )}
let(:users_project) { stub.as_null_object }
subject { UsersProjectObserver.instance }

describe "#after_create" do
it "should called when UsersProject created" do
subject.should_receive(:after_create)

UsersProject.observers.enable :users_project_observer do
Factory.create(:users_project,
project: project,
user: user)
create(:users_project)
end
end

it "should send email to user" do
Notify.should_receive(:project_access_granted_email).with(users_project.id).and_return(double(deliver: true))
Event.stub(:create => true)
Notify.should_receive(:project_access_granted_email).and_return(stub(deliver: true))

subject.after_create(users_project)
end

it "should create new event" do
Event.should_receive(:create).with(
project_id: users_project.project.id,
action: Event::Joined,
project_id: users_project.project.id,
action: Event::Joined,
author_id: users_project.user.id
)

subject.after_create(users_project)
end
end

describe "#after_update" do
it "should called when UsersProject updated" do
subject.should_receive(:after_update)

UsersProject.observers.enable :users_project_observer do
users_project.update_attribute(:project_access, 40)
create(:users_project).update_attribute(:project_access, 40)
end
end

it "should send email to user" do
Notify.should_receive(:project_access_granted_email).with(users_project.id).and_return(double(deliver: true))

subject.after_update(users_project)
end
end

describe "#after_destroy" do
it "should called when UsersProject destroyed" do
subject.should_receive(:after_destroy)

UsersProject.observers.enable :users_project_observer do
UsersProject.bulk_delete(
users_project.project,
[users_project.user.id]
)
create(:users_project).destroy
end
end

it "should create new event" do
Event.should_receive(:create).with(
project_id: users_project.project.id,
action: Event::Left,
project_id: users_project.project.id,
action: Event::Left,
author_id: users_project.user.id
)
subject.after_destroy(users_project)
Expand Down
1 change: 1 addition & 0 deletions spec/requests/gitlab_flavored_markdown_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
@tag_name = "gfm-test-tag"
r.git.native(:tag, {}, @tag_name, commit.id)
end

after do
# delete test branch and tag
project.repo.git.native(:branch, {D: true}, @branch_name)
Expand Down
34 changes: 4 additions & 30 deletions spec/support/gitolite_stub.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,42 +5,16 @@ def stub_gitolite!
end

def stub_gitolite_admin
gitolite_repo = mock(
clean_permissions: true,
add_permission: true
)

gitolite_config = mock(
add_repo: true,
get_repo: gitolite_repo,
has_repo?: true
)

gitolite_admin = double(
'Gitolite::GitoliteAdmin',
config: gitolite_config,
save: true,
)
gitolite_admin = double('Gitolite::GitoliteAdmin')
gitolite_admin.as_null_object

Gitolite::GitoliteAdmin.stub(new: gitolite_admin)

end

def stub_gitlab_gitolite
gitolite_config = double('Gitlab::GitoliteConfig')
gitolite_config.stub(
apply: ->() { yield(self) },
write_key: true,
rm_key: true,
update_projects: true,
update_project: true,
update_project!: true,
destroy_project: true,
destroy_project!: true,
admin_all_repo: true,
admin_all_repo!: true,

)
gitolite_config.stub(apply: ->() { yield(self) })
gitolite_config.as_null_object

Gitlab::GitoliteConfig.stub(new: gitolite_config)
end
Expand Down

0 comments on commit a82977c

Please sign in to comment.