Files
nairobi/spec/features/communities_spec.rb
2017-09-05 12:52:14 +02:00

108 lines
3.4 KiB
Ruby

require 'rails_helper'
feature 'Communities' do
context 'Show' do
scenario 'Should display default content' do
proposal = create(:proposal)
community = proposal.community
user = create(:user)
login_as(user)
visit community_path(community)
expect(page).to have_content "Proposal community"
expect(page).to have_content proposal.title
expect(page).to have_content "Participate in the community of this proposal"
expect(page).to have_link("Create topic", href: new_community_topic_path(community))
expect(page).not_to have_selector(".button.disabled", text: "Create topic")
end
scenario 'Should display disabled create topic button when user is not logged' do
proposal = create(:proposal)
community = proposal.community
visit community_path(community)
expect(page).to have_selector(".button.disabled", text: "Create topic")
end
scenario 'Should display without_topics_text and empty participants when there are not topics' do
proposal = create(:proposal)
community = proposal.community
visit community_path(community)
expect(page).to have_content "Create the first community topic"
expect(page).to have_content "Participants (0)"
end
scenario 'Should display order selector and topic content when there are topics' do
proposal = create(:proposal)
community = proposal.community
topic = create(:topic, community: community)
create(:comment, commentable: topic)
visit community_path(community)
expect(page).to have_selector ".wide-order-selector"
within "#topic_#{topic.id}" do
expect(page).to have_content topic.title
expect(page).to have_content "#{topic.comments_count} comment"
expect(page).to have_content I18n.l(topic.created_at.to_date)
expect(page).to have_content topic.author.name
end
end
scenario 'Should display topic edit button when author is logged' do
proposal = create(:proposal)
community = proposal.community
user = create(:user)
topic1 = create(:topic, community: community, author: user)
topic2 = create(:topic, community: community)
login_as(user)
visit community_path(community)
within "#topic_#{topic1.id}" do
expect(page).to have_link("Edit", href: edit_community_topic_path(community, topic1))
end
within "#topic_#{topic2.id}" do
expect(page).not_to have_link("Edit", href: edit_community_topic_path(community, topic2))
end
end
scenario 'Should display participant when there is topics' do
proposal = create(:proposal)
community = proposal.community
topic = create(:topic, community: community)
visit community_path(community)
within ".communities-participant" do
expect(page).to have_content "Participants (1)"
expect(page).to have_content topic.author.name
end
end
scenario 'Should display participants when there are topics and comments' do
proposal = create(:proposal)
community = proposal.community
topic = create(:topic, community: community)
comment = create(:comment, commentable: topic)
visit community_path(community)
within ".communities-participant" do
expect(page).to have_content "Participants (2)"
expect(page).to have_content topic.author.name
expect(page).to have_content comment.author.name
end
end
end
end