|
|
|
@@ -13,11 +13,11 @@ RSpec.describe 'Sponsorships', type: :request do |
|
|
|
let(:invalid_user_attributes) { |
|
|
|
{amount: 10, visible: 1, sponsor_id: 4, developer_id: 1} |
|
|
|
} |
|
|
|
|
|
|
|
let(:invalid_attributes) { |
|
|
|
{amunt: 10, visible: 1, developid: 1, sponsoid: 5} |
|
|
|
} |
|
|
|
|
|
|
|
let(:developer_session) { {www_user_id: 5} } |
|
|
|
let(:visitor_session) { {www_user_id: 4} } |
|
|
|
let(:valid_session) { {www_user_id: 6} } |
|
|
|
|
|
|
|
describe 'create sponsorship' do |
|
|
|
@@ -25,7 +25,7 @@ RSpec.describe 'Sponsorships', type: :request do |
|
|
|
it 'create a new sponsorship' do |
|
|
|
allow_any_instance_of(ActionDispatch::Request).to receive(:session) { valid_session } |
|
|
|
expect { |
|
|
|
post '/api/sponsorships.json', params: {"amount"=>5, "visible"=>1, single: false, "developer_id"=>1, "sponsorship"=>{"amount"=>5, "visible"=>1, "developer_id"=>1}}, as: :json |
|
|
|
post '/api/sponsorships.json', params: {'amount'=>5, 'visible'=>1, single: false, 'developer_id'=>1, 'sponsorship'=>{'amount'=>5, 'visible'=>1, 'developer_id'=>1}}, as: :json |
|
|
|
}.to change(Sponsorship, :count).by(1) |
|
|
|
end |
|
|
|
end |
|
|
|
@@ -34,7 +34,7 @@ RSpec.describe 'Sponsorships', type: :request do |
|
|
|
it 'create a stopped_sponsorship' do |
|
|
|
allow_any_instance_of(ActionDispatch::Request).to receive(:session) { valid_session } |
|
|
|
expect { |
|
|
|
post '/api/sponsorships.json', params: {"amount"=>5, "visible"=>1, single: true, "developer_id"=>1, "sponsorship"=>{"amount"=>5, "visible"=>1, "developer_id"=>1}}, as: :json |
|
|
|
post '/api/sponsorships.json', params: {'amount'=>5, 'visible'=>1, single: true, 'developer_id'=>1, 'sponsorship'=>{'amount'=>5, 'visible'=>1, 'developer_id'=>1}}, as: :json |
|
|
|
}.to change(StoppedSponsorship, :count).by(1) |
|
|
|
end |
|
|
|
end |
|
|
|
@@ -42,7 +42,7 @@ RSpec.describe 'Sponsorships', type: :request do |
|
|
|
context 'fail to repeat sponsorship' do |
|
|
|
it 'returns fail' do |
|
|
|
allow_any_instance_of(ActionDispatch::Request).to receive(:session) { valid_session } |
|
|
|
post '/api/sponsorships.json', params: {"amount"=>5, "visible"=>1, single: false, "developer_id"=>4, "sponsorship"=>{"amount"=>5, "visible"=>1, "developer_id"=>4}}, as: :json |
|
|
|
post '/api/sponsorships.json', params: {'amount'=>5, 'visible'=>1, single: false, 'developer_id'=>4, 'sponsorship'=>{'amount'=>5, 'visible'=>1, 'developer_id'=>4}}, as: :json |
|
|
|
expect(JSON.parse(response.body)['message']).to eq('您已经赞助了TA') |
|
|
|
end |
|
|
|
end |
|
|
|
@@ -51,14 +51,142 @@ RSpec.describe 'Sponsorships', type: :request do |
|
|
|
it 'returns fail' do |
|
|
|
allow_any_instance_of(ActionDispatch::Request).to receive(:session) { valid_session } |
|
|
|
expect { |
|
|
|
post '/api/sponsorships.json', params: {"amount"=>500000, "visible"=>1, single: false, "developer_id"=>1, "sponsorship"=>{"amount"=>500000, "visible"=>1, "developer_id"=>1}}, as: :json |
|
|
|
post '/api/sponsorships.json', params: {'amount'=>500000, 'visible'=>1, single: false, 'developer_id'=>1, 'sponsorship'=>{'amount'=>500000, 'visible'=>1, 'developer_id'=>1}}, as: :json |
|
|
|
}.to change(Sponsorship, :count).by(0) |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
describe 'create sponsorship' do |
|
|
|
describe 'index' do |
|
|
|
context 'success' do |
|
|
|
it 'returns n records' do |
|
|
|
get '/api/sponsorships.json' |
|
|
|
expect(JSON.parse(response.body).length).to eq(Sponsorship.count) |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
describe 'stopped' do |
|
|
|
context 'success' do |
|
|
|
it 'returns n records' do |
|
|
|
get '/api/sponsorships/stopped.json' |
|
|
|
expect(JSON.parse(response.body).length).to eq(StoppedSponsorship.count) |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
describe 'sponsored' do |
|
|
|
context 'valid_session' do |
|
|
|
it 'returns 2 records' do |
|
|
|
allow_any_instance_of(ActionDispatch::Request).to receive(:session) { valid_session } |
|
|
|
get '/api/sponsorships/sponsored.json', params: {id: 6} |
|
|
|
expect(JSON.parse(response.body)['sponsorships'].length).to eq(2) |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
context 'visitor session' do |
|
|
|
it 'returns 1 record' do |
|
|
|
allow_any_instance_of(ActionDispatch::Request).to receive(:session) { visitor_session } |
|
|
|
get '/api/sponsorships/sponsored.json', params: {id: 6} |
|
|
|
expect(JSON.parse(response.body)['sponsorships'].length).to eq(1) |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
describe 'sponsoring' do |
|
|
|
context 'valid_session' do |
|
|
|
it 'returns 2 records' do |
|
|
|
allow_any_instance_of(ActionDispatch::Request).to receive(:session) { valid_session } |
|
|
|
get '/api/sponsorships/sponsoring.json', params: {id: 6} |
|
|
|
expect(JSON.parse(response.body)['sponsorships'].length).to eq(2) |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
context 'visitor session' do |
|
|
|
it 'returns 1 record' do |
|
|
|
allow_any_instance_of(ActionDispatch::Request).to receive(:session) { visitor_session } |
|
|
|
get '/api/sponsorships/sponsoring.json', params: {id: 6} |
|
|
|
expect(JSON.parse(response.body)['sponsorships'].length).to eq(1) |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
describe 'stopped_sponsored' do |
|
|
|
context 'valid_session' do |
|
|
|
it 'returns 2 records' do |
|
|
|
allow_any_instance_of(ActionDispatch::Request).to receive(:session) { valid_session } |
|
|
|
get '/api/sponsorships/stopped_sponsored.json', params: {id: 6} |
|
|
|
expect(JSON.parse(response.body)['sponsorships'].length).to eq(2) |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
context 'visitor session' do |
|
|
|
it 'returns 1 record' do |
|
|
|
allow_any_instance_of(ActionDispatch::Request).to receive(:session) { visitor_session } |
|
|
|
get '/api/sponsorships/stopped_sponsored.json', params: {id: 6} |
|
|
|
expect(JSON.parse(response.body)['sponsorships'].length).to eq(1) |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
describe 'stopped_sponsoring' do |
|
|
|
context 'valid_session' do |
|
|
|
it 'returns 2 records' do |
|
|
|
allow_any_instance_of(ActionDispatch::Request).to receive(:session) { valid_session } |
|
|
|
get '/api/sponsorships/stopped_sponsoring.json', params: {id: 6} |
|
|
|
expect(JSON.parse(response.body)['sponsorships'].length).to eq(2) |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
context 'visitor session' do |
|
|
|
it 'returns 1 record' do |
|
|
|
allow_any_instance_of(ActionDispatch::Request).to receive(:session) { visitor_session } |
|
|
|
get '/api/sponsorships/stopped_sponsoring.json', params: {id: 6} |
|
|
|
expect(JSON.parse(response.body)['sponsorships'].length).to eq(1) |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
describe 'update' do |
|
|
|
context 'as sponsor' do |
|
|
|
it 'update success' do |
|
|
|
allow_any_instance_of(ActionDispatch::Request).to receive(:session) { valid_session } |
|
|
|
put '/api/sponsorships/97.json', params: {amount: 50, sponsorship: {amount: 50}}, as: :json |
|
|
|
expect(Sponsorship.find(97).amount).to eq(50) |
|
|
|
expect(response.body).to eq('{"status":1,"message":"修改成功"}') |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
context 'as others' do |
|
|
|
it 'fail' do |
|
|
|
allow_any_instance_of(ActionDispatch::Request).to receive(:session) { developer_session } |
|
|
|
put '/api/sponsorships/97.json', params: {amount: 50, sponsorship: {amount: 50}}, as: :json |
|
|
|
expect(Sponsorship.find(97).amount).to eq(10) |
|
|
|
expect(response.body).to eq('{"status":401,"message":"没有权限"}') |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
describe 'destroy' do |
|
|
|
context 'as sponsor' do |
|
|
|
it 'success' do |
|
|
|
allow_any_instance_of(ActionDispatch::Request).to receive(:session) { valid_session } |
|
|
|
expect{ delete '/api/sponsorships/100.json'}.to change(StoppedSponsorship, :count).by(1) |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
context 'as developer' do |
|
|
|
it 'success' do |
|
|
|
allow_any_instance_of(ActionDispatch::Request).to receive(:session) { developer_session } |
|
|
|
expect{ delete '/api/sponsorships/100.json'}.to change(StoppedSponsorship, :count).by(1) |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
context 'as others' do |
|
|
|
it 'fail' do |
|
|
|
allow_any_instance_of(ActionDispatch::Request).to receive(:session) { visitor_session } |
|
|
|
expect{ delete '/api/sponsorships/100.json'}.to change(StoppedSponsorship, :count).by(0) |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |