Files
old-holivud2/spec/controllers/notes_controller_spec.rb
2020-05-31 22:38:19 +02:00

57 lines
1.4 KiB
Ruby

require "rails_helper"
RSpec.describe NotesController, type: :controller do
let(:current_user) { create(:user) }
let(:releasable) { create(:appearance_release) }
before do
sign_in current_user
end
describe "#index" do
it "responds successfully" do
get :index, xhr: true, params: { "#{releasable.model_name.singular}_id" => releasable }
expect(response).to be_successful
end
end
describe "#new" do
it "responds successfully" do
get :new, xhr: true, params: { "#{releasable.model_name.singular}_id" => releasable }
end
end
describe "#create" do
it "responds successfully" do
post :create, xhr: true, params: { "#{releasable.model_name.singular}_id" => releasable, note: note_params }
expect(response).to be_successful
end
it "creates a new Note record" do
expect {
post :create, xhr: true, params: { "#{releasable.model_name.singular}_id" => releasable, note: note_params }
}.to change(Note, :count).by(1)
end
context "when the new note is not valid" do
before do
allow_any_instance_of(Note).to receive(:save).and_return(false)
end
it "does not create a new Note record" do
expect {
post :create, xhr: true, params: { "#{releasable.model_name.singular}_id" => releasable, note: note_params }
}.not_to change(Note, :count)
end
end
end
private
def note_params
attributes_for(:note)
end
end