Files
grecia/spec/components/relationable/related_list_component_spec.rb
Javi Martín 9247a31e85 Stub current_user in all component tests
The `sign_in(nil)` method was a bit hard to understand IMHO. After all,
in controller and system tests we don't have to specify no user is
signed in; that's the default behavior.

So we're making it the default behavior for component tests as well.
2021-09-08 12:39:36 +02:00

47 lines
1.6 KiB
Ruby

require "rails_helper"
describe Relationable::RelatedListComponent do
let(:proposal) { create(:proposal) }
let(:user_proposal) { create(:proposal, title: "I am user related") }
let(:machine_proposal) { create(:proposal, title: "I am machine related") }
let(:component) { Relationable::RelatedListComponent.new(proposal) }
before do
Setting["feature.machine_learning"] = true
Setting["machine_learning.related_content"] = true
create(:related_content, parent_relationable: proposal, child_relationable: user_proposal)
create(:related_content, parent_relationable: proposal,
child_relationable: machine_proposal,
machine_learning: true)
end
it "displays machine learning and user content when machine learning is enabled" do
render_inline component
expect(page).to have_css "li", count: 2
expect(page).to have_content "I am machine related"
expect(page).to have_content "I am user related"
end
it "displays user related content when machine learning is disabled" do
Setting["feature.machine_learning"] = false
render_inline component
expect(page).to have_css "li", count: 1
expect(page).to have_content "I am user related"
expect(page).not_to have_content "I am machine related"
end
it "displays user related content when machine learning related content is disabled" do
Setting["machine_learning.related_content"] = false
render_inline component
expect(page).to have_css "li", count: 1
expect(page).to have_content "I am user related"
expect(page).not_to have_content "I am machine related"
end
end