124 lines
4.0 KiB
Ruby
124 lines
4.0 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe ApiReviewsController, type: :controller do
|
|
render_views
|
|
before(:all) do
|
|
@logged_in_user = FactoryBot.create(:user)
|
|
end
|
|
|
|
before(:each) do
|
|
Review.destroy_all
|
|
ReviewSummary.destroy_all
|
|
@user= FactoryBot.create(:user)
|
|
@target= FactoryBot.create(:jam_track)
|
|
controller.current_user = @logged_in_user
|
|
end
|
|
|
|
after(:all) do
|
|
Review.delete_all
|
|
ReviewSummary.delete_all
|
|
JamTrackSession.delete_all if defined?(JamTrackSession)
|
|
AffiliateDistribution.delete_all if defined?(AffiliateDistribution)
|
|
SaleLineItem.delete_all if defined?(SaleLineItem)
|
|
Sale.delete_all if defined?(Sale)
|
|
RetailerInvitation.delete_all if defined?(RetailerInvitation)
|
|
Retailer.delete_all if defined?(Retailer)
|
|
InvitedUser.delete_all if defined?(InvitedUser)
|
|
RecordedJamTrackTrack.delete_all if defined?(RecordedJamTrackTrack)
|
|
JamTrackTrack.delete_all if defined?(JamTrackTrack)
|
|
ActiveRecord::Base.connection.execute("UPDATE recordings SET jam_track_id = NULL WHERE jam_track_id IS NOT NULL")
|
|
User.delete_all
|
|
JamTrack.delete_all
|
|
end
|
|
|
|
describe "create" do
|
|
it "successful" do
|
|
post :create, params: { rating:3, description:"it was ok", target_id: @target.id, target_type:"JamRuby::JamTrack", format: 'json' }
|
|
response.should be_successful
|
|
Review.index.should have(1).items
|
|
end
|
|
end
|
|
|
|
describe "update" do
|
|
before :each do
|
|
@review=Review.create!(target:@target, rating:5, description: "blah", user_id: @logged_in_user.id)
|
|
end
|
|
|
|
it "basic" do
|
|
post :update, params: { id:@review.id, mods: {rating:4, description: "not blah"}, :format=>'json' }
|
|
response.should be_successful
|
|
@review.reload
|
|
@review.rating.should eq(4)
|
|
@review.description.should eq("not blah")
|
|
end
|
|
|
|
it "bad identifier" do
|
|
post :update, params: { id:2112, mods: {rating:4, description: "not blah"}, :format=>'json' }
|
|
response.status.should eql(404)
|
|
end
|
|
end
|
|
|
|
describe "delete" do
|
|
before :each do
|
|
@review=Review.create!(target:@target, rating:5, description: "blah", user_id: @logged_in_user.id)
|
|
end
|
|
|
|
it "marks review as deleted" do
|
|
delete :delete, params: { id:@review.id }
|
|
response.should be_successful
|
|
Review.index.should have(0).items
|
|
Review.index(include_deleted:true).should have(1).items
|
|
end
|
|
end
|
|
|
|
describe "indexes" do
|
|
before :each do
|
|
@target2=FactoryBot.create(:jam_track)
|
|
|
|
7.times { Review.create!(target:@target, rating:4, description: "blah", user_id: FactoryBot.create(:user).id) }
|
|
5.times { Review.create!(target:@target2, rating:4, description: "blah", user_id: FactoryBot.create(:user).id) }
|
|
end
|
|
|
|
it "review summaries" do
|
|
get :index, params: { format: 'json' }
|
|
response.should be_successful
|
|
json = JSON.parse(response.body)
|
|
|
|
ReviewSummary.index.should have(2).items
|
|
get :index, params: { format: 'json' }
|
|
json = JSON.parse(response.body)
|
|
json.should have(2).item
|
|
end
|
|
|
|
it "details" do
|
|
ReviewSummary.index.should have(2).items
|
|
|
|
summaries = ReviewSummary.index
|
|
get :details, params: { :review_summary_id=>summaries[0].id, format: 'json' }
|
|
response.should be_successful
|
|
json = JSON.parse(response.body)
|
|
json.should have(7).items
|
|
|
|
get :details, params: { :review_summary_id=>summaries[1].id, format: 'json' }
|
|
response.should be_successful
|
|
json = JSON.parse(response.body)
|
|
json.should have(5).items
|
|
end
|
|
|
|
it "paginates details" do
|
|
summaries = ReviewSummary.index
|
|
summaries.should have(2).items
|
|
|
|
get :details, params: { review_summary_id:summaries[0].id, page: 1, per_page: 3, format: 'json' }
|
|
response.should be_successful
|
|
json = JSON.parse(response.body)
|
|
json.should have(3).items
|
|
|
|
get :details, params: { review_summary_id:summaries[0].id, page: 3, per_page: 3, format: 'json' }
|
|
response.should be_successful
|
|
json = JSON.parse(response.body)
|
|
json.should have(1).items
|
|
end
|
|
end
|
|
end
|