OSDN Git Service

fix: any
[pettanr/pettanr.git] / spec / peta / owner_spec.rb
1 # -*- encoding: utf-8 -*-
2 require 'spec_helper'
3 #スクロール
4
5 describe Author do
6   include OwnerMacros
7   before do
8     @admin =FactoryGirl.create :admin
9     @user_yas = FactoryGirl.create :user_yas_with_owner
10     @user_rom = FactoryGirl.create :user_rom
11     @user_itojun = FactoryGirl.create :user_itojun_with_owner
12     @author_yas =  @user_yas.author
13     @artist_yas =  @user_yas.artist
14     @author_itojun =  @user_itojun.author
15     @artist_itojun =  @user_itojun.artist
16     @operator = Operator.new [@user_yas]
17     @model = Author
18   end
19   
20   describe 'editに於いて' do
21     before do
22     end
23     
24     it 'オペレータが自分を編集しようとしているなら返す' do
25       allow_any_instance_of(@model).to receive(:own?).and_return(true)
26       expect(@model.edit(@author_yas.id, @operator)).to eq @author_yas
27     end
28     
29     it '他人が変更を加えようとしているときは例外を発生させる' do
30       allow_any_instance_of(@model).to receive(:own?).and_return(false)
31       expect {@model.edit(@author_yas.id, @operator)}.to raise_error(ActiveRecord::Forbidden)
32     end
33   end
34   
35   describe 'overwriteに於いて' do
36     before do
37     end
38     
39     it 'ユーザーIDをオペレーターで上書きしている' do
40       @author_yas.user_id = nil
41       @author_yas.overwrite(@operator)
42       expect(@author_yas.user_id).to eq @user_yas.id
43     end
44   end
45   
46 end
47
48 describe Artist do
49   include OwnerMacros
50   before do
51     @admin =FactoryGirl.create :admin
52     @user_yas = FactoryGirl.create :user_yas_with_owner
53     @user_rom = FactoryGirl.create :user_rom
54     @user_itojun = FactoryGirl.create :user_itojun_with_owner
55     @author_yas =  @user_yas.author
56     @artist_yas =  @user_yas.artist
57     @author_itojun =  @user_itojun.author
58     @artist_itojun =  @user_itojun.artist
59     @operator = Operator.new [@author_yas]
60     @model = Artist
61   end
62   
63   describe 'editに於いて' do
64     before do
65     end
66     
67     it 'オペレータが自分を編集しようとしているなら返す' do
68       allow_any_instance_of(@model).to receive(:own?).and_return(true)
69       expect(@model.edit(@artist_yas.id, @operator)).to eq @artist_yas
70     end
71     
72     it '他人が変更を加えようとしているときは例外を発生させる' do
73       allow_any_instance_of(@model).to receive(:own?).and_return(false)
74       expect {@model.edit(@artist_yas.id, @operator)}.to raise_error(ActiveRecord::Forbidden)
75     end
76   end
77   
78   describe 'overwriteに於いて' do
79     before do
80     end
81     
82     it 'ユーザーIDをオペレーターで上書きしている' do
83       @artist_yas.user_id = nil
84       @artist_yas.overwrite(@operator)
85       expect(@artist_yas.user_id).to eq @user_yas.id
86     end
87   end
88   
89 end