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 | 1 | # A sample Guardfile |
2 | 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 | 5 | watch(%r{^spec/.+_spec\.rb$}) |
6 | 6 | watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" } |
7 | 7 | watch('spec/spec_helper.rb') { "spec" } | ... | ... |
app/observers/users_project_observer.rb
... | ... | @@ -15,10 +15,9 @@ class UsersProjectObserver < ActiveRecord::Observer |
15 | 15 | |
16 | 16 | def after_destroy(users_project) |
17 | 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 | 20 | author_id: users_project.user.id |
21 | 21 | ) |
22 | 22 | end |
23 | - | |
24 | 23 | end | ... | ... |
spec/models/event_spec.rb
... | ... | @@ -14,12 +14,12 @@ describe Event do |
14 | 14 | it { should respond_to(:commits) } |
15 | 15 | end |
16 | 16 | |
17 | - describe "Push event" do | |
18 | - before do | |
17 | + describe "Push event" do | |
18 | + before do | |
19 | 19 | project = Factory :project |
20 | 20 | @user = project.owner |
21 | 21 | |
22 | - data = { | |
22 | + data = { | |
23 | 23 | before: "0000000000000000000000000000000000000000", |
24 | 24 | after: "0220c11b9a3e6c69dc8fd35321254ca9a7b98f7e", |
25 | 25 | ref: "refs/heads/master", |
... | ... | @@ -50,25 +50,24 @@ describe Event do |
50 | 50 | it { @event.author.should == @user } |
51 | 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 | 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 | 71 | end |
73 | 72 | end |
74 | 73 | end | ... | ... |
spec/observers/users_project_observer_spec.rb
1 | 1 | require 'spec_helper' |
2 | 2 | |
3 | 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 | 5 | subject { UsersProjectObserver.instance } |
12 | 6 | |
13 | 7 | describe "#after_create" do |
14 | 8 | it "should called when UsersProject created" do |
15 | 9 | subject.should_receive(:after_create) |
10 | + | |
16 | 11 | UsersProject.observers.enable :users_project_observer do |
17 | - Factory.create(:users_project, | |
18 | - project: project, | |
19 | - user: user) | |
12 | + create(:users_project) | |
20 | 13 | end |
21 | 14 | end |
15 | + | |
22 | 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 | 20 | subject.after_create(users_project) |
25 | 21 | end |
22 | + | |
26 | 23 | it "should create new event" do |
27 | 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 | 27 | author_id: users_project.user.id |
31 | 28 | ) |
29 | + | |
32 | 30 | subject.after_create(users_project) |
33 | 31 | end |
34 | 32 | end |
... | ... | @@ -36,29 +34,32 @@ describe UsersProjectObserver do |
36 | 34 | describe "#after_update" do |
37 | 35 | it "should called when UsersProject updated" do |
38 | 36 | subject.should_receive(:after_update) |
37 | + | |
39 | 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 | 40 | end |
42 | 41 | end |
42 | + | |
43 | 43 | it "should send email to user" do |
44 | 44 | Notify.should_receive(:project_access_granted_email).with(users_project.id).and_return(double(deliver: true)) |
45 | + | |
45 | 46 | subject.after_update(users_project) |
46 | 47 | end |
47 | 48 | end |
49 | + | |
48 | 50 | describe "#after_destroy" do |
49 | 51 | it "should called when UsersProject destroyed" do |
50 | 52 | subject.should_receive(:after_destroy) |
53 | + | |
51 | 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 | 56 | end |
57 | 57 | end |
58 | + | |
58 | 59 | it "should create new event" do |
59 | 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 | 63 | author_id: users_project.user.id |
63 | 64 | ) |
64 | 65 | subject.after_destroy(users_project) | ... | ... |
spec/requests/gitlab_flavored_markdown_spec.rb
spec/support/gitolite_stub.rb
... | ... | @@ -5,42 +5,16 @@ module GitoliteStub |
5 | 5 | end |
6 | 6 | |
7 | 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 | 11 | Gitolite::GitoliteAdmin.stub(new: gitolite_admin) |
26 | - | |
27 | 12 | end |
28 | 13 | |
29 | 14 | def stub_gitlab_gitolite |
30 | 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 | 19 | Gitlab::GitoliteConfig.stub(new: gitolite_config) |
46 | 20 | end | ... | ... |