Files
project-work/worker-toolkit-flaredown/repo/backend/spec/models/search_spec.rb

47 lines
1.3 KiB
Ruby

require "rails_helper"
RSpec.describe Search, type: :model do
let(:user) { create(:user) }
let(:treatment) { create(:user_treatment, user: user).treatment }
let(:query) { {name: "terra"} }
before { treatment.update!(name: "Mediterranean Diet") }
subject { Search.new(resource: "treatment", query: query, user: user) }
context "success" do
context "when search text is more than 3 characters" do
it "returns string containing search text" do
returned_treatment_names = subject.searchables.map(&:name)
expect(returned_treatment_names).to include treatment.name
end
end
context "when search text is less than 3 characters" do
before { query[:name] = "me" }
it "returns string starting with search text" do
returned_treatment_names = subject.searchables.map(&:name)
expect(returned_treatment_names).to include treatment.name
end
end
end
context "failure" do
context "when search text is more than 3 characters" do
before { query[:name] = "teran" }
it "returns no results" do
expect(subject.searchables).to be_empty
end
end
context "when search text is less than 3 characters" do
before { query[:name] = "te" }
it "returns no results" do
expect(subject.searchables).to be_empty
end
end
end
end