mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-27 21:06:49 +00:00
137 lines
3.8 KiB
Ruby
137 lines
3.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "system_helper"
|
|
|
|
RSpec.describe "Managing enterprise images" do
|
|
include WebHelper
|
|
include FileHelper
|
|
include AuthenticationHelper
|
|
|
|
context "as an Enterprise user" do
|
|
let(:enterprise_user) { create(:user, enterprise_limit: 1) }
|
|
let(:distributor) { create(:distributor_enterprise, name: "First Distributor") }
|
|
|
|
before do
|
|
enterprise_user.enterprise_roles.build(enterprise: distributor).save!
|
|
|
|
login_as enterprise_user
|
|
visit edit_admin_enterprise_path(distributor)
|
|
end
|
|
|
|
describe "images for an enterprise" do
|
|
let(:alert_text_logo) { 'The logo will be removed immediately after you confirm'.strip }
|
|
let(:alert_text_promo) {
|
|
'The promo image will be removed immediately after you confirm.'.strip
|
|
}
|
|
|
|
def go_to_images
|
|
within(".side_menu") do
|
|
click_link "Images"
|
|
end
|
|
end
|
|
|
|
before do
|
|
go_to_images
|
|
end
|
|
|
|
it "editing logo" do
|
|
# Adding image
|
|
attach_file "enterprise[logo]", white_logo_path
|
|
click_button "Update"
|
|
|
|
expect(page).to have_content(
|
|
"Enterprise \"#{distributor.name}\" has been successfully updated!"
|
|
)
|
|
|
|
go_to_images
|
|
within ".page-admin-enterprises-form__logo-field-group" do
|
|
expect_preview_image "logo-white.png"
|
|
end
|
|
|
|
# Replacing image
|
|
attach_file "enterprise[logo]", black_logo_path
|
|
click_button "Update"
|
|
|
|
expect(page).to have_content(
|
|
"Enterprise \"#{distributor.name}\" has been successfully updated!"
|
|
)
|
|
|
|
go_to_images
|
|
within ".page-admin-enterprises-form__logo-field-group" do
|
|
expect_preview_image "logo-black.png"
|
|
end
|
|
|
|
# Removing image
|
|
within ".page-admin-enterprises-form__logo-field-group" do
|
|
click_button "Remove Image"
|
|
end
|
|
|
|
within ".reveal-modal" do
|
|
expect(page).to have_content(alert_text_logo)
|
|
click_button "Confirm"
|
|
end
|
|
|
|
# There's a race condition.
|
|
# Either of these messages can be observed.
|
|
expect(flash_message).to match /(Logo removed)|(Enterprise .* updated)/
|
|
|
|
within ".page-admin-enterprises-form__logo-field-group" do
|
|
expect_no_preview_image
|
|
end
|
|
end
|
|
|
|
it "editing promo image" do
|
|
# Adding image
|
|
attach_file "enterprise[promo_image]", white_logo_path
|
|
click_button "Update"
|
|
|
|
expect(page).to have_content(
|
|
"Enterprise \"#{distributor.name}\" has been successfully updated!"
|
|
)
|
|
|
|
go_to_images
|
|
within ".page-admin-enterprises-form__promo-image-field-group" do
|
|
expect_preview_image "logo-white.png"
|
|
end
|
|
|
|
# Replacing image
|
|
attach_file "enterprise[promo_image]", black_logo_path
|
|
click_button "Update"
|
|
|
|
expect(page).to have_content(
|
|
"Enterprise \"#{distributor.name}\" has been successfully updated!"
|
|
)
|
|
|
|
go_to_images
|
|
within ".page-admin-enterprises-form__promo-image-field-group" do
|
|
expect_preview_image "logo-black.png"
|
|
end
|
|
|
|
# Removing image
|
|
within ".page-admin-enterprises-form__promo-image-field-group" do
|
|
click_on "Remove Image"
|
|
end
|
|
|
|
within ".reveal-modal" do
|
|
expect(page).to have_content(alert_text_promo)
|
|
click_button "Confirm"
|
|
end
|
|
|
|
expect(page).to have_content("Promo image removed")
|
|
|
|
within ".page-admin-enterprises-form__promo-image-field-group" do
|
|
expect_no_preview_image
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
def expect_preview_image(file_name)
|
|
expect(page).to have_selector(".image-field-group__preview-image[src*='#{file_name}']")
|
|
end
|
|
|
|
def expect_no_preview_image
|
|
expect(page).not_to have_selector(".image-field-group__preview-image")
|
|
end
|
|
end
|