<commit_before>require 'rails_helper'

feature 'Admin' do
  let(:user) { create(:user) }
  let(:administrator) do
    create(:administrator, user: user)
    user
  end

  scenario 'Access as regular user is not authorized' do
    login_as(user)
    visit admin_root_path

    expect(current_path).not_to eq(admin_root_path)
    expect(current_path).to eq(proposals_path)
    expect(page).to have_content "You do not have permission to access this page"
  end

  scenario 'Access as a moderator is not authorized' do
    create(:moderator, user: user)
    login_as(user)
    visit admin_root_path

    expect(current_path).not_to eq(admin_root_path)
    expect(current_path).to eq(proposals_path)
    expect(page).to have_content "You do not have permission to access this page"
  end

  scenario 'Access as a valuator is not authorized' do
    create(:valuator, user: user)
    login_as(user)
    visit admin_root_path

    expect(current_path).not_to eq(admin_root_path)
    expect(current_path).to eq(proposals_path)
    expect(page).to have_content "You do not have permission to access this page"
  end

  scenario 'Access as a manager is not authorized' do
    create(:manager, user: user)
    login_as(user)
    visit admin_root_path

    expect(current_path).not_to eq(admin_root_path)
    expect(current_path).to eq(proposals_path)
    expect(page).to have_content "You do not have permission to access this page"
  end

  scenario 'Access as an administrator is authorized' do
    login_as(administrator)
    visit admin_root_path

    expect(current_path).to eq(admin_root_path)
    expect(page).to_not have_content "You do not have permission to access this page"
  end

  scenario "Admin access links" do
    login_as(administrator)
    visit root_path

    expect(page).to have_link('Administration')
    expect(page).to have_link('Moderation')
    expect(page).to have_link('Valuation')
    expect(page).to have_link('Management')
  end

  scenario 'Admin dashboard' do
    login_as(administrator)
    visit root_path

    click_link 'Administration'

    expect(current_path).to eq(admin_root_path)
    expect(page).to have_css('#admin_menu')
    expect(page).to_not have_css('#moderation_menu')
    expect(page).to_not have_css('#valuation_menu')
  end

  context 'Tags' do
    let(:unfeatured_tag) { create :tag, :unfeatured, name: '<NAME>' }

    background do
      login_as(administrator)
    end

    scenario 'adding a new tag' do
      visit admin_tags_path

      fill_in 'tag_name', with: 'Papeleras'

      click_on 'Create Topic'

      expect(page).to have_content 'Papeleras'
    end

    scenario 'deleting tag' do
      unfeatured_tag

      visit admin_tags_path

      expect(page).to have_content 'Mi barrio'

      click_link 'Destroy Topic'

      expect(page).not_to have_content 'Mi barrio'
    end

    scenario 'marking tags as featured / unfeatured' do
      expect(unfeatured_tag).not_to be_featured

      visit admin_tags_path

      expect(page).to have_content 'Mi barrio'

      check "tag_featured_#{unfeatured_tag.id}"
      click_button 'Update Topic'

      expect(page).to have_checked_field("tag_featured_#{unfeatured_tag.id}")
    end
  end

end<commit_msg>removes duplicate specs  (already present in features/admin/tags_spec.rb)<commit_after>require 'rails_helper'

feature 'Admin' do
  let(:user) { create(:user) }
  let(:administrator) do
    create(:administrator, user: user)
    user
  end

  scenario 'Access as regular user is not authorized' do
    login_as(user)
    visit admin_root_path

    expect(current_path).not_to eq(admin_root_path)
    expect(current_path).to eq(proposals_path)
    expect(page).to have_content "You do not have permission to access this page"
  end

  scenario 'Access as a moderator is not authorized' do
    create(:moderator, user: user)
    login_as(user)
    visit admin_root_path

    expect(current_path).not_to eq(admin_root_path)
    expect(current_path).to eq(proposals_path)
    expect(page).to have_content "You do not have permission to access this page"
  end

  scenario 'Access as a valuator is not authorized' do
    create(:valuator, user: user)
    login_as(user)
    visit admin_root_path

    expect(current_path).not_to eq(admin_root_path)
    expect(current_path).to eq(proposals_path)
    expect(page).to have_content "You do not have permission to access this page"
  end

  scenario 'Access as a manager is not authorized' do
    create(:manager, user: user)
    login_as(user)
    visit admin_root_path

    expect(current_path).not_to eq(admin_root_path)
    expect(current_path).to eq(proposals_path)
    expect(page).to have_content "You do not have permission to access this page"
  end

  scenario 'Access as an administrator is authorized' do
    login_as(administrator)
    visit admin_root_path

    expect(current_path).to eq(admin_root_path)
    expect(page).to_not have_content "You do not have permission to access this page"
  end

  scenario "Admin access links" do
    login_as(administrator)
    visit root_path

    expect(page).to have_link('Administration')
    expect(page).to have_link('Moderation')
    expect(page).to have_link('Valuation')
    expect(page).to have_link('Management')
  end

  scenario 'Admin dashboard' do
    login_as(administrator)
    visit root_path

    click_link 'Administration'

    expect(current_path).to eq(admin_root_path)
    expect(page).to have_css('#admin_menu')
    expect(page).to_not have_css('#moderation_menu')
    expect(page).to_not have_css('#valuation_menu')
  end

end
{'fraction_non_alphanumeric': 0.08495320374370051, 'fraction_numerical': 0.0, 'mean_word_length': 3.935168738898757, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5295835', 'n_tokens_mistral': 1806, 'n_tokens_neox': 1757, 'n_words': 472}