Commit a82977c64843aa177498f1a715121ae6e38bc323
1 parent
0d66cf2a
Exists in
master
and in
4 other branches
A bit of test refactoring
Showing
6 changed files
with
49 additions
and
75 deletions
Show diff stats
Guardfile
1 | # A sample Guardfile | 1 | # A sample Guardfile |
2 | # More info at https://github.com/guard/guard#readme | 2 | # More info at https://github.com/guard/guard#readme |
3 | 3 | ||
4 | -guard 'rspec', :version => 2, :all_on_start => false do | 4 | +guard 'rspec', :version => 2, :all_on_start => false, :all_after_pass => false do |
5 | watch(%r{^spec/.+_spec\.rb$}) | 5 | watch(%r{^spec/.+_spec\.rb$}) |
6 | watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" } | 6 | watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" } |
7 | watch('spec/spec_helper.rb') { "spec" } | 7 | watch('spec/spec_helper.rb') { "spec" } |
app/observers/users_project_observer.rb
@@ -15,10 +15,9 @@ class UsersProjectObserver < ActiveRecord::Observer | @@ -15,10 +15,9 @@ class UsersProjectObserver < ActiveRecord::Observer | ||
15 | 15 | ||
16 | def after_destroy(users_project) | 16 | def after_destroy(users_project) |
17 | Event.create( | 17 | Event.create( |
18 | - project_id: users_project.project.id, | ||
19 | - action: Event::Left, | 18 | + project_id: users_project.project.id, |
19 | + action: Event::Left, | ||
20 | author_id: users_project.user.id | 20 | author_id: users_project.user.id |
21 | ) | 21 | ) |
22 | end | 22 | end |
23 | - | ||
24 | end | 23 | end |
spec/models/event_spec.rb
@@ -14,12 +14,12 @@ describe Event do | @@ -14,12 +14,12 @@ describe Event do | ||
14 | it { should respond_to(:commits) } | 14 | it { should respond_to(:commits) } |
15 | end | 15 | end |
16 | 16 | ||
17 | - describe "Push event" do | ||
18 | - before do | 17 | + describe "Push event" do |
18 | + before do | ||
19 | project = Factory :project | 19 | project = Factory :project |
20 | @user = project.owner | 20 | @user = project.owner |
21 | 21 | ||
22 | - data = { | 22 | + data = { |
23 | before: "0000000000000000000000000000000000000000", | 23 | before: "0000000000000000000000000000000000000000", |
24 | after: "0220c11b9a3e6c69dc8fd35321254ca9a7b98f7e", | 24 | after: "0220c11b9a3e6c69dc8fd35321254ca9a7b98f7e", |
25 | ref: "refs/heads/master", | 25 | ref: "refs/heads/master", |
@@ -50,25 +50,24 @@ describe Event do | @@ -50,25 +50,24 @@ describe Event do | ||
50 | it { @event.author.should == @user } | 50 | it { @event.author.should == @user } |
51 | end | 51 | end |
52 | 52 | ||
53 | - describe "Joined project team" do | ||
54 | - let(:project) {Factory.create :project} | ||
55 | - let(:new_user) {Factory.create :user} | ||
56 | - it "should create event" do | ||
57 | - UsersProject.observers.enable :users_project_observer | ||
58 | - expect{ | ||
59 | - UsersProject.bulk_import(project, [new_user.id], UsersProject::DEVELOPER) | ||
60 | - }.to change{Event.count}.by(1) | 53 | + describe 'Team events' do |
54 | + let(:user_project) { stub.as_null_object } | ||
55 | + let(:observer) { UsersProjectObserver.instance } | ||
56 | + | ||
57 | + before { | ||
58 | + Event.should_receive :create | ||
59 | + } | ||
60 | + | ||
61 | + describe "Joined project team" do | ||
62 | + it "should create event" do | ||
63 | + observer.after_create user_project | ||
64 | + end | ||
61 | end | 65 | end |
62 | - end | ||
63 | - describe "Left project team" do | ||
64 | - let(:project) {Factory.create :project} | ||
65 | - let(:new_user) {Factory.create :user} | ||
66 | - it "should create event" do | ||
67 | - UsersProject.bulk_import(project, [new_user.id], UsersProject::DEVELOPER) | ||
68 | - UsersProject.observers.enable :users_project_observer | ||
69 | - expect{ | ||
70 | - UsersProject.bulk_delete(project, [new_user.id]) | ||
71 | - }.to change{Event.count}.by(1) | 66 | + |
67 | + describe "Left project team" do | ||
68 | + it "should create event" do | ||
69 | + observer.after_destroy user_project | ||
70 | + end | ||
72 | end | 71 | end |
73 | end | 72 | end |
74 | end | 73 | end |
spec/observers/users_project_observer_spec.rb
1 | require 'spec_helper' | 1 | require 'spec_helper' |
2 | 2 | ||
3 | describe UsersProjectObserver do | 3 | describe UsersProjectObserver do |
4 | - let(:user) { Factory.create :user } | ||
5 | - let(:project) { Factory.create(:project, | ||
6 | - code: "Fuu", | ||
7 | - path: "Fuu" ) } | ||
8 | - let(:users_project) { Factory.create(:users_project, | ||
9 | - project: project, | ||
10 | - user: user )} | 4 | + let(:users_project) { stub.as_null_object } |
11 | subject { UsersProjectObserver.instance } | 5 | subject { UsersProjectObserver.instance } |
12 | 6 | ||
13 | describe "#after_create" do | 7 | describe "#after_create" do |
14 | it "should called when UsersProject created" do | 8 | it "should called when UsersProject created" do |
15 | subject.should_receive(:after_create) | 9 | subject.should_receive(:after_create) |
10 | + | ||
16 | UsersProject.observers.enable :users_project_observer do | 11 | UsersProject.observers.enable :users_project_observer do |
17 | - Factory.create(:users_project, | ||
18 | - project: project, | ||
19 | - user: user) | 12 | + create(:users_project) |
20 | end | 13 | end |
21 | end | 14 | end |
15 | + | ||
22 | it "should send email to user" do | 16 | it "should send email to user" do |
23 | - Notify.should_receive(:project_access_granted_email).with(users_project.id).and_return(double(deliver: true)) | 17 | + Event.stub(:create => true) |
18 | + Notify.should_receive(:project_access_granted_email).and_return(stub(deliver: true)) | ||
19 | + | ||
24 | subject.after_create(users_project) | 20 | subject.after_create(users_project) |
25 | end | 21 | end |
22 | + | ||
26 | it "should create new event" do | 23 | it "should create new event" do |
27 | Event.should_receive(:create).with( | 24 | Event.should_receive(:create).with( |
28 | - project_id: users_project.project.id, | ||
29 | - action: Event::Joined, | 25 | + project_id: users_project.project.id, |
26 | + action: Event::Joined, | ||
30 | author_id: users_project.user.id | 27 | author_id: users_project.user.id |
31 | ) | 28 | ) |
29 | + | ||
32 | subject.after_create(users_project) | 30 | subject.after_create(users_project) |
33 | end | 31 | end |
34 | end | 32 | end |
@@ -36,29 +34,32 @@ describe UsersProjectObserver do | @@ -36,29 +34,32 @@ describe UsersProjectObserver do | ||
36 | describe "#after_update" do | 34 | describe "#after_update" do |
37 | it "should called when UsersProject updated" do | 35 | it "should called when UsersProject updated" do |
38 | subject.should_receive(:after_update) | 36 | subject.should_receive(:after_update) |
37 | + | ||
39 | UsersProject.observers.enable :users_project_observer do | 38 | UsersProject.observers.enable :users_project_observer do |
40 | - users_project.update_attribute(:project_access, 40) | 39 | + create(:users_project).update_attribute(:project_access, 40) |
41 | end | 40 | end |
42 | end | 41 | end |
42 | + | ||
43 | it "should send email to user" do | 43 | it "should send email to user" do |
44 | Notify.should_receive(:project_access_granted_email).with(users_project.id).and_return(double(deliver: true)) | 44 | Notify.should_receive(:project_access_granted_email).with(users_project.id).and_return(double(deliver: true)) |
45 | + | ||
45 | subject.after_update(users_project) | 46 | subject.after_update(users_project) |
46 | end | 47 | end |
47 | end | 48 | end |
49 | + | ||
48 | describe "#after_destroy" do | 50 | describe "#after_destroy" do |
49 | it "should called when UsersProject destroyed" do | 51 | it "should called when UsersProject destroyed" do |
50 | subject.should_receive(:after_destroy) | 52 | subject.should_receive(:after_destroy) |
53 | + | ||
51 | UsersProject.observers.enable :users_project_observer do | 54 | UsersProject.observers.enable :users_project_observer do |
52 | - UsersProject.bulk_delete( | ||
53 | - users_project.project, | ||
54 | - [users_project.user.id] | ||
55 | - ) | 55 | + create(:users_project).destroy |
56 | end | 56 | end |
57 | end | 57 | end |
58 | + | ||
58 | it "should create new event" do | 59 | it "should create new event" do |
59 | Event.should_receive(:create).with( | 60 | Event.should_receive(:create).with( |
60 | - project_id: users_project.project.id, | ||
61 | - action: Event::Left, | 61 | + project_id: users_project.project.id, |
62 | + action: Event::Left, | ||
62 | author_id: users_project.user.id | 63 | author_id: users_project.user.id |
63 | ) | 64 | ) |
64 | subject.after_destroy(users_project) | 65 | subject.after_destroy(users_project) |
spec/requests/gitlab_flavored_markdown_spec.rb
@@ -25,6 +25,7 @@ describe "Gitlab Flavored Markdown" do | @@ -25,6 +25,7 @@ describe "Gitlab Flavored Markdown" do | ||
25 | @tag_name = "gfm-test-tag" | 25 | @tag_name = "gfm-test-tag" |
26 | r.git.native(:tag, {}, @tag_name, commit.id) | 26 | r.git.native(:tag, {}, @tag_name, commit.id) |
27 | end | 27 | end |
28 | + | ||
28 | after do | 29 | after do |
29 | # delete test branch and tag | 30 | # delete test branch and tag |
30 | project.repo.git.native(:branch, {D: true}, @branch_name) | 31 | project.repo.git.native(:branch, {D: true}, @branch_name) |
spec/support/gitolite_stub.rb
@@ -5,42 +5,16 @@ module GitoliteStub | @@ -5,42 +5,16 @@ module GitoliteStub | ||
5 | end | 5 | end |
6 | 6 | ||
7 | def stub_gitolite_admin | 7 | def stub_gitolite_admin |
8 | - gitolite_repo = mock( | ||
9 | - clean_permissions: true, | ||
10 | - add_permission: true | ||
11 | - ) | ||
12 | - | ||
13 | - gitolite_config = mock( | ||
14 | - add_repo: true, | ||
15 | - get_repo: gitolite_repo, | ||
16 | - has_repo?: true | ||
17 | - ) | ||
18 | - | ||
19 | - gitolite_admin = double( | ||
20 | - 'Gitolite::GitoliteAdmin', | ||
21 | - config: gitolite_config, | ||
22 | - save: true, | ||
23 | - ) | 8 | + gitolite_admin = double('Gitolite::GitoliteAdmin') |
9 | + gitolite_admin.as_null_object | ||
24 | 10 | ||
25 | Gitolite::GitoliteAdmin.stub(new: gitolite_admin) | 11 | Gitolite::GitoliteAdmin.stub(new: gitolite_admin) |
26 | - | ||
27 | end | 12 | end |
28 | 13 | ||
29 | def stub_gitlab_gitolite | 14 | def stub_gitlab_gitolite |
30 | gitolite_config = double('Gitlab::GitoliteConfig') | 15 | gitolite_config = double('Gitlab::GitoliteConfig') |
31 | - gitolite_config.stub( | ||
32 | - apply: ->() { yield(self) }, | ||
33 | - write_key: true, | ||
34 | - rm_key: true, | ||
35 | - update_projects: true, | ||
36 | - update_project: true, | ||
37 | - update_project!: true, | ||
38 | - destroy_project: true, | ||
39 | - destroy_project!: true, | ||
40 | - admin_all_repo: true, | ||
41 | - admin_all_repo!: true, | ||
42 | - | ||
43 | - ) | 16 | + gitolite_config.stub(apply: ->() { yield(self) }) |
17 | + gitolite_config.as_null_object | ||
44 | 18 | ||
45 | Gitlab::GitoliteConfig.stub(new: gitolite_config) | 19 | Gitlab::GitoliteConfig.stub(new: gitolite_config) |
46 | end | 20 | end |