From 7de6319324da86395da7e8b5fdefb17ffab247b6 Mon Sep 17 00:00:00 2001 From: Eduardo Martinez Echevarria Date: Mon, 12 Jun 2017 12:46:27 +0200 Subject: [PATCH] Fix and add some tests on features/admin/tags_specs --- spec/factories.rb | 4 +++ spec/features/admin/tags_spec.rb | 47 ++++++++++++++++++++++++++++---- 2 files changed, 46 insertions(+), 5 deletions(-) diff --git a/spec/factories.rb b/spec/factories.rb index 42c8dbfc5..e046dc42d 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -538,6 +538,10 @@ FactoryGirl.define do trait :unfeatured do featured false end + + factory :category do + kind "category" + end end factory :setting do diff --git a/spec/features/admin/tags_spec.rb b/spec/features/admin/tags_spec.rb index b944cdd9e..3a2759490 100644 --- a/spec/features/admin/tags_spec.rb +++ b/spec/features/admin/tags_spec.rb @@ -3,16 +3,21 @@ require 'rails_helper' feature 'Admin tags' do background do - @tag1 = create(:tag) + @tag1 = create(:category) login_as(create(:administrator).user) end scenario 'Index' do create(:debate, tag_list: 'supertag') + debate_tag = ActsAsTaggableOn::Tag.find_by(name: "supertag") visit admin_tags_path expect(page).to have_content @tag1.name - expect(page).to have_content 'supertag' + if debate_tag.category? + expect(page).to have_content 'supertag' + else + expect(page).to_not have_content 'supertag' + end end scenario 'Create' do @@ -46,7 +51,7 @@ feature 'Admin tags' do end scenario 'Delete' do - tag2 = create(:tag, name: 'bad tag') + tag2 = create(:category, name: "bad tag") create(:debate, tag_list: tag2.name) visit admin_tags_path @@ -63,7 +68,7 @@ feature 'Admin tags' do end scenario 'Delete tag with hidden taggables' do - tag2 = create(:tag, name: 'bad tag') + tag2 = create(:category, name: "bad tag") debate = create(:debate, tag_list: tag2.name) debate.hide @@ -81,4 +86,36 @@ feature 'Admin tags' do expect(page).to_not have_content tag2.name end -end \ No newline at end of file + context "Manage only tags of kind category" do + scenario "Index shows only categories" do + not_category_tag = create(:tag, name: "Not a category") + visit admin_tags_path + + expect(page).to have_content @tag1.name + expect(page).to_not have_content "Not a category" + end + + scenario "Create instanciates tags of correct kind" do + visit admin_tags_path + + within("form.new_tag") do + fill_in "tag_name", with: "wow_category" + click_button 'Create Topic' + end + + expect(ActsAsTaggableOn::Tag.category.where(name: "wow_category")).to exist + end + + scenario "Update doesn't affect the category kind" do + visit admin_tags_path + + within("#edit_tag_#{@tag1.id}") do + check "tag_featured_#{@tag1.id}" + click_button 'Update Topic' + end + + expect(ActsAsTaggableOn::Tag.category.where(id: @tag1.id)).to exist + end + end + +end