Skip to content
Snippets Groups Projects
Commit a0c48ec6 authored by jurre's avatar jurre
Browse files

Move Admin Appearance spinach feature to rspec

parent 60f61096
No related branches found
No related tags found
No related merge requests found
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
Loading
Loading
@@ -195,10 +195,6 @@ module SharedPaths
visit admin_groups_path
end
 
step 'I visit admin appearance page' do
visit admin_appearances_path
end
step 'I visit admin teams page' do
visit admin_teams_path
end
Loading
Loading
class Spinach::Features::AdminAppearance < Spinach::FeatureSteps
include SharedAuthentication
include SharedPaths
require 'spec_helper'
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_description', with: 'dev server'
click_button 'Save'
end
 
step 'I should be redirected to admin appearance page' do
expect(current_path).to eq admin_appearances_path
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_description', with: 'dev server')
expect(page).to have_content 'Last edit'
end
 
step 'I click preview button' do
scenario 'Preview appearance' do
login_as :admin
visit admin_appearances_path
click_link "Preview"
end
 
step 'application has custom appearance' do
create(:appearance)
expect_page_has_custom_appearance(appearance)
end
 
step 'I should see a customized appearance' do
expect(page).to have_content appearance.title
expect(page).to have_content appearance.description
scenario 'Custom sign-in page' do
visit new_user_session_path
expect_page_has_custom_appearance(appearance)
end
 
step 'I attach a logo' do
attach_file(:appearance_logo, Rails.root.join('spec', 'fixtures', 'dk.png'))
click_button 'Save'
end
scenario 'Appearance logo' do
login_as :admin
visit admin_appearances_path
 
step 'I attach header logos' do
attach_file(:appearance_header_logo, Rails.root.join('spec', 'fixtures', 'dk.png'))
attach_file(:appearance_logo, logo_fixture)
click_button 'Save'
end
expect(page).to have_css(logo_selector)
 
step 'I should see a logo' do
expect(page).to have_xpath('//img[@src="/uploads/appearance/logo/1/dk.png"]')
click_link 'Remove logo'
expect(page).not_to have_css(logo_selector)
end
 
step 'I should see header logos' do
expect(page).to have_xpath('//img[@src="/uploads/appearance/header_logo/1/dk.png"]')
end
scenario 'Header logos' do
login_as :admin
visit admin_appearances_path
 
step 'I remove the logo' do
click_link 'Remove logo'
end
attach_file(:appearance_header_logo, logo_fixture)
click_button 'Save'
expect(page).to have_css(header_logo_selector)
 
step 'I remove the header logos' do
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
 
step 'I should see logo removed' do
expect(page).not_to have_xpath('//img[@src="/uploads/appearance/logo/1/gitlab_logo.png"]')
def logo_selector
'//img[@src^="/uploads/appearance/logo"]'
end
 
step 'I should see header logos removed' do
expect(page).not_to have_xpath('//img[@src="/uploads/appearance/header_logo/1/header_logo_light.png"]')
def header_logo_selector
'//img[@src^="/uploads/appearance/header_logo"]'
end
 
def appearance
Appearance.last
def logo_fixture
Rails.root.join('spec', 'fixtures', 'dk.png')
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment