spec/features/official_positions_spec.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'rails_helper'

feature 'Official positions' do

  context "Badge" do

    background do
      @user1 = create(:user, official_level: 1, official_position: "Employee", official_position_badge: true)
      @user2 = create(:user, official_level: 0, official_position: "")
    end

    scenario "Comments" do
      proposal = create(:proposal)
      comment1 = create(:comment, commentable: proposal, user: @user1)
      comment2 = create(:comment, commentable: proposal, user: @user2)

      visit proposal_path(proposal)

      expect_badge_for("comment", comment1)
      expect_no_badge_for("comment", comment2)
    end

    context "Debates" do

      background do
        @debate1 = create(:debate, author: @user1)
        @debate2 = create(:debate, author: @user2)
      end

      scenario "Index" do
        visit debates_path

        expect_badge_for("debate", @debate1)
        expect_no_badge_for("debate", @debate2)
      end

      scenario "Show" do
        visit debate_path(@debate1)
        expect_badge_for("debate", @debate1)

        visit debate_path(@debate2)
        expect_no_badge_for("debate", @debate2)
      end

    end

    context "Proposals" do

      background do
        @proposal1 = create(:proposal, author: @user1)
        @proposal2 = create(:proposal, author: @user2)

        create_featured_proposals
      end

      scenario "Index" do
        visit proposals_path

        expect_badge_for("proposal", @proposal1)
        expect_no_badge_for("proposal", @proposal2)
      end

      scenario "Show" do
        visit proposal_path(@proposal1)
        expect_badge_for("proposal", @proposal1)

        visit proposal_path(@proposal2)
        expect_no_badge_for("proposal", @proposal2)
      end

    end

    context "Spending proposals" do

      background do
        Setting["feature.spending_proposals"] = true
        @spending_proposal1 = create(:spending_proposal, author: @user1)
        @spending_proposal2 = create(:spending_proposal, author: @user2)
      end

      after do
        Setting["feature.spending_proposals"] = nil
      end

      scenario "Index" do
        visit spending_proposals_path

        expect_badge_for("spending_proposal", @spending_proposal1)
        expect_no_badge_for("spending_proposal", @spending_proposal2)
      end

      scenario "Show" do
        visit spending_proposal_path(@spending_proposal1)
        expect_badge_for("spending_proposal", @spending_proposal1)

        visit spending_proposal_path(@spending_proposal2)
        expect_no_badge_for("spending_proposal", @spending_proposal2)
      end

    end
  end
end