A bit of test refactoring
This commit is contained in:
parent
0d66cf2a38
commit
a82977c648
6 changed files with 49 additions and 75 deletions
|
@ -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" }
|
||||
|
|
|
@ -15,10 +15,9 @@ class UsersProjectObserver < ActiveRecord::Observer
|
|||
|
||||
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
|
||||
|
|
|
@ -14,12 +14,12 @@ describe Event do
|
|||
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",
|
||||
|
@ -50,25 +50,24 @@ describe Event do
|
|||
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
|
||||
|
|
|
@ -1,34 +1,32 @@
|
|||
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
|
||||
|
@ -36,29 +34,32 @@ describe UsersProjectObserver do
|
|||
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)
|
||||
|
|
|
@ -25,6 +25,7 @@ describe "Gitlab Flavored Markdown" do
|
|||
@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)
|
||||
|
|
|
@ -5,42 +5,16 @@ module GitoliteStub
|
|||
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
|
||||
|
|
Loading…
Reference in a new issue