From 39505a6818ae9433be2d28f0800955c4e71e6bc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Thu, 10 Sep 2015 13:50:11 +0200 Subject: [PATCH 1/2] adds specs for admin/tags --- spec/features/admin/tags_spec.rb | 65 ++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 spec/features/admin/tags_spec.rb diff --git a/spec/features/admin/tags_spec.rb b/spec/features/admin/tags_spec.rb new file mode 100644 index 000000000..16280383a --- /dev/null +++ b/spec/features/admin/tags_spec.rb @@ -0,0 +1,65 @@ +require 'rails_helper' + +feature 'Admin tags' do + + background do + @tag1 = create(:tag) + login_as(create(:administrator).user) + end + + scenario 'Index' do + create(:debate, tag_list: 'supertag') + visit admin_tags_path + + expect(page).to have_content @tag1.name + expect(page).to have_content 'supertag' + end + + scenario 'Create' do + visit admin_tags_path + + expect(page).to_not have_content 'important issues' + + within("form.new_tag") do + fill_in "tag_name", with: 'important issues' + click_button 'Create Topic' + end + + visit admin_tags_path + + expect(page).to have_content 'important issues' + end + + scenario 'Update' do + visit admin_tags_path + featured_checkbox = find("#tag_featured_#{@tag1.id}") + expect(featured_checkbox.checked?).to be_nil + + within("#edit_tag_#{@tag1.id}") do + check "tag_featured_#{@tag1.id}" + click_button 'Update Topic' + end + + visit admin_tags_path + featured_checkbox = find("#tag_featured_#{@tag1.id}") + expect(featured_checkbox.checked?).to eq('checked') + end + + scenario 'Delete' do + tag2 = create(:tag, name: 'bad tag') + create(:debate, tag_list: tag2.name) + visit admin_tags_path + + expect(page).to have_content @tag1.name + expect(page).to have_content tag2.name + + within("#edit_tag_#{tag2.id}") do + click_link 'Delete Topic' + end + + visit admin_tags_path + expect(page).to have_content @tag1.name + expect(page).to_not have_content tag2.name + end + +end \ No newline at end of file From 8e1dcdc16ada8c75bb2d796c7b78d70b4ebe09a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Thu, 10 Sep 2015 13:52:39 +0200 Subject: [PATCH 2/2] fix bug on tag deletion when no taggable --- config/initializers/acts_as_taggable_on.rb | 2 +- spec/features/admin/tags_spec.rb | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/config/initializers/acts_as_taggable_on.rb b/config/initializers/acts_as_taggable_on.rb index dcccf9429..7ad1bbb22 100644 --- a/config/initializers/acts_as_taggable_on.rb +++ b/config/initializers/acts_as_taggable_on.rb @@ -2,7 +2,7 @@ ActsAsTaggableOn::Tagging.class_eval do after_destroy :touch_taggable def touch_taggable - taggable.touch + taggable.touch if taggable.present? end end \ No newline at end of file diff --git a/spec/features/admin/tags_spec.rb b/spec/features/admin/tags_spec.rb index 16280383a..a56f10ffa 100644 --- a/spec/features/admin/tags_spec.rb +++ b/spec/features/admin/tags_spec.rb @@ -62,4 +62,23 @@ feature 'Admin tags' do expect(page).to_not have_content tag2.name end + scenario 'Delete tag with hidden taggables' do + tag2 = create(:tag, name: 'bad tag') + debate = create(:debate, tag_list: tag2.name) + debate.hide + + visit admin_tags_path + + expect(page).to have_content @tag1.name + expect(page).to have_content tag2.name + + within("#edit_tag_#{tag2.id}") do + click_link 'Delete Topic' + end + + visit admin_tags_path + expect(page).to have_content @tag1.name + expect(page).to_not have_content tag2.name + end + end \ No newline at end of file