spec/system/machine_learning_spec.rb
require "rails_helper"
describe "Machine learning" do
let(:user_tag) { create(:tag, name: "user tag") }
let(:ml_proposal_tag) { create(:tag, name: "machine learning proposal tag") }
let(:ml_investment_tag) { create(:tag, name: "machine learning investment tag") }
let(:proposal) { create(:proposal) }
let(:related_proposal) { create(:proposal) }
let(:investment) { create(:budget_investment) }
let(:related_investment) { create(:budget_investment) }
before do
Setting["feature.machine_learning"] = true
Setting["machine_learning.comments_summary"] = true
Setting["machine_learning.related_content"] = true
Setting["machine_learning.tags"] = true
proposal.update!(tag_list: [user_tag])
proposal.update!(ml_tag_list: [ml_proposal_tag])
investment.update!(tag_list: [user_tag])
investment.update!(ml_tag_list: [ml_investment_tag])
end
scenario "proposal view" do
create(:ml_summary_comment, commentable: proposal, body: "Life is wonderful")
create(:related_content, parent_relationable: proposal,
child_relationable: related_proposal,
machine_learning: true)
visit proposal_path(proposal)
within "#tags_proposal_#{proposal.id}" do
expect(page).not_to have_link "user tag"
expect(page).to have_link "machine learning proposal tag"
expect(page).not_to have_link "machine learning investment tag"
end
within ".related-content" do
expect(page).to have_content "Related content (1)"
expect(page).to have_css ".related-content-title"
expect(page).to have_content related_proposal.title
end
within "#comments" do
expect(page).to have_content "Comments summary"
expect(page).to have_content "Life is wonderful"
end
end
scenario "investment view" do
create(:ml_summary_comment, commentable: investment, body: "Build in the main square")
create(:related_content, parent_relationable: investment,
child_relationable: related_investment,
machine_learning: true)
visit budget_investment_path(investment.budget, investment)
within "#tags_budget_investment_#{investment.id}" do
expect(page).not_to have_link "user tag"
expect(page).not_to have_link "machine learning proposal tag"
expect(page).to have_link "machine learning investment tag"
end
within ".related-content" do
expect(page).to have_content "Related content (1)"
expect(page).to have_css ".related-content-title", count: 1
expect(page).to have_content related_investment.title
end
within "#tab-comments" do
expect(page).to have_content "Comments summary"
expect(page).to have_content "Build in the main square"
end
end
end