From b3a7cf388a8afdb7df3aa26bbfcfccf67b4eac81 Mon Sep 17 00:00:00 2001 From: Karina Kwiatek Date: Mon, 2 Jan 2023 12:26:52 +0100 Subject: [PATCH] Add tests for mute rule use cases --- spec/lib/use_case/mute_rule/create_spec.rb | 27 +++++++++++++++++++++ spec/lib/use_case/mute_rule/destroy_spec.rb | 16 ++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 spec/lib/use_case/mute_rule/create_spec.rb create mode 100644 spec/lib/use_case/mute_rule/destroy_spec.rb diff --git a/spec/lib/use_case/mute_rule/create_spec.rb b/spec/lib/use_case/mute_rule/create_spec.rb new file mode 100644 index 00000000..4321048e --- /dev/null +++ b/spec/lib/use_case/mute_rule/create_spec.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +require "rails_helper" + +describe UseCase::MuteRule::Create do + subject { UseCase::MuteRule::Create.call(user:, phrase:) } + + context "user passed" do + let(:user) { FactoryBot.create(:user) } + + context "phrase is empty" do + let(:phrase) { "" } + + it "does not create the rule" do + expect { subject }.not_to(change { MuteRule.count }) + end + end + + context "phrase is non-empty" do + let(:phrase) { "test" } + + it "creates the rule" do + expect { subject }.to change { MuteRule.count }.by(1) + end + end + end +end diff --git a/spec/lib/use_case/mute_rule/destroy_spec.rb b/spec/lib/use_case/mute_rule/destroy_spec.rb new file mode 100644 index 00000000..ed65473a --- /dev/null +++ b/spec/lib/use_case/mute_rule/destroy_spec.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +require "rails_helper" + +describe UseCase::MuteRule::Destroy do + subject { UseCase::MuteRule::Destroy.call(rule:) } + + context "rule exists" do + let(:user) { FactoryBot.create(:user) } + let(:rule) { MuteRule.create(user:, muted_phrase: "test") } + + it "deletes the mute rule" do + expect { subject }.to change { MuteRule.exists?(rule.id) }.from(true).to(false) + end + end +end