require 'rails_helper' RSpec.describe Theme, type: :model do context "validations" do it { is_expected.to validate_presence_of(:title) } end context "associations" do it { is_expected.to have_and_belong_to_many(:questions) .join_table("questions_themes") } it { is_expected.to have_and_belong_to_many(:guidances) .join_table("themes_in_guidance") } end describe ".search" do let!(:term) { "foo" } subject { Theme.search(term) } context "when neither title or description matches term" do let!(:theme) { create(:theme) } it { is_expected.not_to include(theme) } end context "when title is a match for term" do let!(:theme) { create(:theme, title: "The title is foo bar") } it { is_expected.to include(theme) } end context "when description is a match for term" do let!(:theme) { create(:theme, description: "The title is foo bar") } it { is_expected.to include(theme) } end end describe "#to_s" do let!(:theme) { create(:theme) } subject { theme.to_s } it "returns the title" do expect(subject).to eql(theme.title) end end end