AyuntamientoMadrid/participacion

View on GitHub
spec/components/relationable/related_list_component_spec.rb

Summary

Maintainability
A
40 mins
Test Coverage
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