Commit 4298209a authored by Rémy Coutable's avatar Rémy Coutable

Merge branch 'move-admin-appearance-feature-to-rspec' into 'master'

Move Admin Appearance spinach feature to RSpec

Part of #23036

See merge request !8063
parents 46533a7d a0c48ec6
Feature: Admin Appearance
Scenario: Create new appearance
Given I sign in as an admin
And I visit admin appearance page
When submit form with new appearance
Then I should be redirected to admin appearance page
And I should see newly created appearance
Scenario: Preview appearance
Given application has custom appearance
And I sign in as an admin
When I visit admin appearance page
And I click preview button
Then I should see a customized appearance
Scenario: Custom sign-in page
Given application has custom appearance
When I visit login page
Then I should see a customized appearance
Scenario: Appearance logo
Given application has custom appearance
And I sign in as an admin
And I visit admin appearance page
When I attach a logo
Then I should see a logo
And I remove the logo
Then I should see logo removed
Scenario: Header logos
Given application has custom appearance
And I sign in as an admin
And I visit admin appearance page
When I attach header logos
Then I should see header logos
And I remove the header logos
Then I should see header logos removed
...@@ -195,10 +195,6 @@ module SharedPaths ...@@ -195,10 +195,6 @@ module SharedPaths
visit admin_groups_path visit admin_groups_path
end end
step 'I visit admin appearance page' do
visit admin_appearances_path
end
step 'I visit admin teams page' do step 'I visit admin teams page' do
visit admin_teams_path visit admin_teams_path
end end
......
class Spinach::Features::AdminAppearance < Spinach::FeatureSteps require 'spec_helper'
include SharedAuthentication
include SharedPaths feature 'Admin Appearance', feature: true do
let!(:appearance) { create(:appearance) }
scenario 'Create new appearance' do
login_as :admin
visit admin_appearances_path
step 'submit form with new appearance' do
fill_in 'appearance_title', with: 'MyCompany' fill_in 'appearance_title', with: 'MyCompany'
fill_in 'appearance_description', with: 'dev server' fill_in 'appearance_description', with: 'dev server'
click_button 'Save' click_button 'Save'
end
step 'I should be redirected to admin appearance page' do
expect(current_path).to eq admin_appearances_path expect(current_path).to eq admin_appearances_path
expect(page).to have_content 'Appearance settings' expect(page).to have_content 'Appearance settings'
end
step 'I should see newly created appearance' do
expect(page).to have_field('appearance_title', with: 'MyCompany') expect(page).to have_field('appearance_title', with: 'MyCompany')
expect(page).to have_field('appearance_description', with: 'dev server') expect(page).to have_field('appearance_description', with: 'dev server')
expect(page).to have_content 'Last edit' expect(page).to have_content 'Last edit'
end end
step 'I click preview button' do scenario 'Preview appearance' do
login_as :admin
visit admin_appearances_path
click_link "Preview" click_link "Preview"
end
step 'application has custom appearance' do expect_page_has_custom_appearance(appearance)
create(:appearance)
end end
step 'I should see a customized appearance' do scenario 'Custom sign-in page' do
expect(page).to have_content appearance.title visit new_user_session_path
expect(page).to have_content appearance.description expect_page_has_custom_appearance(appearance)
end end
step 'I attach a logo' do scenario 'Appearance logo' do
attach_file(:appearance_logo, Rails.root.join('spec', 'fixtures', 'dk.png')) login_as :admin
click_button 'Save' visit admin_appearances_path
end
step 'I attach header logos' do attach_file(:appearance_logo, logo_fixture)
attach_file(:appearance_header_logo, Rails.root.join('spec', 'fixtures', 'dk.png'))
click_button 'Save' click_button 'Save'
end expect(page).to have_css(logo_selector)
step 'I should see a logo' do click_link 'Remove logo'
expect(page).to have_xpath('//img[@src="/uploads/appearance/logo/1/dk.png"]') expect(page).not_to have_css(logo_selector)
end end
step 'I should see header logos' do scenario 'Header logos' do
expect(page).to have_xpath('//img[@src="/uploads/appearance/header_logo/1/dk.png"]') login_as :admin
end visit admin_appearances_path
step 'I remove the logo' do attach_file(:appearance_header_logo, logo_fixture)
click_link 'Remove logo' click_button 'Save'
end expect(page).to have_css(header_logo_selector)
step 'I remove the header logos' do
click_link 'Remove header logo' click_link 'Remove header logo'
expect(page).not_to have_css(header_logo_selector)
end
def expect_page_has_custom_appearance(appearance)
expect(page).to have_content appearance.title
expect(page).to have_content appearance.description
end end
step 'I should see logo removed' do def logo_selector
expect(page).not_to have_xpath('//img[@src="/uploads/appearance/logo/1/gitlab_logo.png"]') '//img[@src^="/uploads/appearance/logo"]'
end end
step 'I should see header logos removed' do def header_logo_selector
expect(page).not_to have_xpath('//img[@src="/uploads/appearance/header_logo/1/header_logo_light.png"]') '//img[@src^="/uploads/appearance/header_logo"]'
end end
def appearance def logo_fixture
Appearance.last Rails.root.join('spec', 'fixtures', 'dk.png')
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment