vidpush/spec/controllers/campaigns_controller_spec.rb

49 lines
1.4 KiB
Ruby

require 'spec_helper'
describe CampaignsController do
before (:each) do
@user = FactoryGirl.create(:user)
sign_in @user
end
let(:campaign){ attributes_for :campaign }
let(:videolisting){ attributes_for :videolisting }
it 'should show the index page' do
get :index
expect(response.status).to eq 200
end
it 'should show the campaign page' do
post :create, campaign: campaign
get :show, campaign
expect(response.status).to eq 200
end
it 'raises routing error when campaign not found' do
expect(lambda { get :show, { :clientid => "x" } }).to raise_error(ActionController::RoutingError)
end
it 'creates a campaign from json post' do
post :create, campaign: campaign
expect(response.status).to be 302
flash = response.request.env["action_dispatch.request.flash_hash"][:alert]
expect(flash).not_to eq("You need to sign in or sign up before continuing.")
expect(Campaign.last.clientid).to eq campaign[:clientid]
end
it 'creates a campaign with a nested videolisting' do
campaign[:videolistings_attributes] = [videolisting,]
post :create, campaign: campaign
flash = response.request.env["action_dispatch.request.flash_hash"][:alert]
expect(flash).not_to eq("You need to sign in or sign up before continuing.")
expect(Campaign.last.videolistings.last.videocode).to eq videolisting[:videocode]
expect(Campaign.last.videolistings.count).to eq 1
end
end