spec/controllers/cas_controller_spec.rb
require 'rails_helper'
RSpec.describe CasController, type: :controller do
let(:valid_attributes) {
{:ca_id => "1", :start_time => Time.now, :end_time => Time.now+1.hour}
}
let(:invalid_attributes) {
skip("Add a hash of attributes invalid for your model")
}
let(:valid_session) { {} }
before :each do
@request.session[:user_id] = 100
# @request.host = '127.0.0.1:3000'
ca = double("Ca")
allow(ca).to receive(:id) { 4 }
allow(Ca).to receive(:get_by_user_id) { |id| ca }
allow(Admin).to receive(:get_by_user_id) { |id| double("Admin") }
end
describe "GET #new" do
it "makes new ca" do
#ca1 = FactoryGirl.create(:ca, :name => "Hola", :user_id => "2", :email => "hola@gmail.com", :phone_number => "111-111-1111")
get :new
expect(assigns(:ca)).to be_a_new(Ca)
end
it "renders new template" do
get :new
expect(response).to render_template("cas/new")
end
end
describe "POST #create" do
# before :each do
it "creates a new Event" do
expect {FactoryGirl.create(:ca)}.to change(Ca, :count).by(1)
end
end
describe "GET #index" do
it "assigns @ca" do
ca1 = FactoryGirl.create(:ca, :name => "Hola", :user_id => "2", :email => "hola@gmail.com", :phone_number => "111-111-1111")
get :index
expect(assigns(:ca)).to include(ca1)
end
end
describe "PUT #update" do
it "notifies after movie is updated" do
# allow(Ca).to receive(:id).and_return(4)
ca1 = FactoryGirl.create(:ca)
put :update, :id => ca1.id, :ca => {:name => "NewName", :email => "new@email.com"}
expect(flash[:notice]).to eq("Ca was successfully updated.")
end
it "gives flash message when name & email are not filled out" do
ca1 = FactoryGirl.create(:ca)
put :update, :id => ca1.id, :ca => {:name => "", :email => ""}
expect(flash[:error]).to eq("Please do not leave any fields blank.")
end
end
describe "DELETE #destory" do
it "destroys the requested event" do
expect {
delete :destroy, {:id => Ca.find_by_name("Tony")[:id]}
}.to change(Event.all, :count)
end
end
describe "GET #get_ca_events" do
it "gets all events of this CA" do
event1 = FactoryGirl.create(:event, :ca_id => 1)
get :get_ca_events, :ca_id => 1, start: "1477810800", end: "1481443200"
expect(assigns(:events)).to include(event1)
end
end
end