Retrospring/spec/controllers/settings/mutes_controller_spec.rb

53 lines
1.1 KiB
Ruby

# frozen_string_literal: true
require "rails_helper"
describe Settings::MutesController, type: :controller do
describe "#index" do
subject { get :index }
context "user signed in" do
let(:user) { FactoryBot.create(:user) }
before { sign_in user }
it "shows the index page" do
subject
expect(response).to have_rendered(:index)
end
end
end
describe "#create" do
subject { post :create, params: { muted_phrase: "foo" } }
context "user signed in" do
let(:user) { FactoryBot.create(:user) }
before { sign_in user }
it "creates a mute rule" do
expect { subject }.to(change { MuteRule.count }.by(1))
end
end
end
describe "#destroy" do
subject { delete :destroy, params: }
context "user signed in" do
let(:user) { FactoryBot.create(:user) }
let(:rule) { MuteRule.create(user:, muted_phrase: "foo") }
let(:params) { { id: rule.id } }
before { sign_in user }
it "destroys a mute rule" do
subject
expect(MuteRule.exists?(rule.id)).to eq(false)
end
end
end
end