Move Admin Appearance spinach feature to rspec
This commit is contained in:
parent
60f61096e1
commit
a0c48ec62b
4 changed files with 76 additions and 113 deletions
|
@ -1,37 +0,0 @@
|
|||
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
|
|
@ -1,72 +0,0 @@
|
|||
class Spinach::Features::AdminAppearance < Spinach::FeatureSteps
|
||||
include SharedAuthentication
|
||||
include SharedPaths
|
||||
|
||||
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
|
||||
click_link "Preview"
|
||||
end
|
||||
|
||||
step 'application has custom appearance' do
|
||||
create(:appearance)
|
||||
end
|
||||
|
||||
step 'I should see a customized appearance' do
|
||||
expect(page).to have_content appearance.title
|
||||
expect(page).to have_content appearance.description
|
||||
end
|
||||
|
||||
step 'I attach a logo' do
|
||||
attach_file(:appearance_logo, Rails.root.join('spec', 'fixtures', 'dk.png'))
|
||||
click_button 'Save'
|
||||
end
|
||||
|
||||
step 'I attach header logos' do
|
||||
attach_file(:appearance_header_logo, Rails.root.join('spec', 'fixtures', 'dk.png'))
|
||||
click_button 'Save'
|
||||
end
|
||||
|
||||
step 'I should see a logo' do
|
||||
expect(page).to have_xpath('//img[@src="/uploads/appearance/logo/1/dk.png"]')
|
||||
end
|
||||
|
||||
step 'I should see header logos' do
|
||||
expect(page).to have_xpath('//img[@src="/uploads/appearance/header_logo/1/dk.png"]')
|
||||
end
|
||||
|
||||
step 'I remove the logo' do
|
||||
click_link 'Remove logo'
|
||||
end
|
||||
|
||||
step 'I remove the header logos' do
|
||||
click_link 'Remove header logo'
|
||||
end
|
||||
|
||||
step 'I should see logo removed' do
|
||||
expect(page).not_to have_xpath('//img[@src="/uploads/appearance/logo/1/gitlab_logo.png"]')
|
||||
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"]')
|
||||
end
|
||||
|
||||
def appearance
|
||||
Appearance.last
|
||||
end
|
||||
end
|
|
@ -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
|
||||
|
|
76
spec/features/admin/admin_appearance_spec.rb
Normal file
76
spec/features/admin/admin_appearance_spec.rb
Normal file
|
@ -0,0 +1,76 @@
|
|||
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
|
||||
|
||||
fill_in 'appearance_title', with: 'MyCompany'
|
||||
fill_in 'appearance_description', with: 'dev server'
|
||||
click_button 'Save'
|
||||
|
||||
expect(current_path).to eq admin_appearances_path
|
||||
expect(page).to have_content 'Appearance settings'
|
||||
|
||||
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
|
||||
|
||||
scenario 'Preview appearance' do
|
||||
login_as :admin
|
||||
|
||||
visit admin_appearances_path
|
||||
click_link "Preview"
|
||||
|
||||
expect_page_has_custom_appearance(appearance)
|
||||
end
|
||||
|
||||
scenario 'Custom sign-in page' do
|
||||
visit new_user_session_path
|
||||
expect_page_has_custom_appearance(appearance)
|
||||
end
|
||||
|
||||
scenario 'Appearance logo' do
|
||||
login_as :admin
|
||||
visit admin_appearances_path
|
||||
|
||||
attach_file(:appearance_logo, logo_fixture)
|
||||
click_button 'Save'
|
||||
expect(page).to have_css(logo_selector)
|
||||
|
||||
click_link 'Remove logo'
|
||||
expect(page).not_to have_css(logo_selector)
|
||||
end
|
||||
|
||||
scenario 'Header logos' do
|
||||
login_as :admin
|
||||
visit admin_appearances_path
|
||||
|
||||
attach_file(:appearance_header_logo, logo_fixture)
|
||||
click_button 'Save'
|
||||
expect(page).to have_css(header_logo_selector)
|
||||
|
||||
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
|
||||
|
||||
def logo_selector
|
||||
'//img[@src^="/uploads/appearance/logo"]'
|
||||
end
|
||||
|
||||
def header_logo_selector
|
||||
'//img[@src^="/uploads/appearance/header_logo"]'
|
||||
end
|
||||
|
||||
def logo_fixture
|
||||
Rails.root.join('spec', 'fixtures', 'dk.png')
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue