require 'rails_helper' feature "Admin custom content blocks" do background do admin = create(:administrator) login_as(admin.user) end scenario "Index" do block = create(:site_customization_content_block) visit admin_site_customization_content_blocks_path expect(page).to have_content(block.name) expect(page).to have_content(block.body) end context "Create" do scenario "Valid custom block" do visit admin_root_path within("#side_menu") do click_link "Custom content blocks" end expect(page).to_not have_content "footer (es)" click_link "Create new content block" select "footer", from: "site_customization_content_block_name" select "es", from: "site_customization_content_block_locale" fill_in "site_customization_content_block_body", with: "Some custom content" click_button "Create Custom content block" expect(page).to have_content "footer (es)" expect(page).to have_content "Some custom content" end scenario "Invalid custom block" do block = create(:site_customization_content_block) visit admin_root_path within("#side_menu") do click_link "Custom content blocks" end expect(page).to have_content "top_links (en)" click_link "Create new content block" select "top_links", from: "site_customization_content_block_name" select "en", from: "site_customization_content_block_locale" fill_in "site_customization_content_block_body", with: "Some custom content" click_button "Create Custom content block" expect(page).to have_content "Content block couldn't be created" expect(page).to have_content "has already been taken" end end context "Update" do scenario "Valid custom block" do block = create(:site_customization_content_block) visit admin_root_path within("#side_menu") do click_link "Custom content blocks" end click_link "top_links (en)" fill_in "site_customization_content_block_body", with: "Some other custom content" click_button "Update Custom content block" expect(page).to have_content "Content block updated successfully" expect(page).to have_content "Some other custom content" end end context "Delete" do scenario "From index page" do block = create(:site_customization_content_block) visit admin_site_customization_content_blocks_path expect(page).to have_content("#{block.name} (#{block.locale})") expect(page).to have_content(block.body) click_button "Delete" expect(page).to_not have_content("#{block.name} (#{block.locale})") expect(page).to_not have_content(block.body) end scenario "From edit page" do block = create(:site_customization_content_block) visit edit_admin_site_customization_content_block_path(block) click_button "Delete" expect(page).to_not have_content("#{block.name} (#{block.locale})") expect(page).to_not have_content(block.body) end end end