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

Move admin broadcast messages spinach feature to rspec

parent 60f61096
No related branches found
No related tags found
No related merge requests found
@admin
Feature: Admin Broadcast Messages
Background:
Given I sign in as an admin
And application already has a broadcast message
And I visit admin messages page
Scenario: See broadcast messages list
Then I should see all broadcast messages
Scenario: Create a customized broadcast message
When submit form with new customized broadcast message
Then I should be redirected to admin messages page
And I should see newly created broadcast message
Then I visit dashboard page
And I should see a customized broadcast message
Scenario: Edit an existing broadcast message
When I edit an existing broadcast message
And I change the broadcast message text
Then I should be redirected to admin messages page
And I should see the updated broadcast message
Scenario: Remove an existing broadcast message
When I remove an existing broadcast message
Then I should be redirected to admin messages page
And I should not see the removed broadcast message
@javascript
Scenario: Live preview a customized broadcast message
When I visit admin messages page
And I enter a broadcast message with Markdown
Then I should see a live preview of the rendered broadcast message
class Spinach::Features::AdminBroadcastMessages < Spinach::FeatureSteps
include SharedAuthentication
include SharedPaths
require 'spec_helper'
 
step 'application already has a broadcast message' do
FactoryGirl.create(:broadcast_message, :expired, message: "Migration to new server")
feature 'Admin Broadcast Messages', feature: true do
before do
login_as :admin
create(:broadcast_message, :expired, message: 'Migration to new server')
visit admin_broadcast_messages_path
end
 
step 'I should see all broadcast messages' do
expect(page).to have_content "Migration to new server"
scenario 'See broadcast messages list' do
expect(page).to have_content 'Migration to new server'
end
 
step 'I should be redirected to admin messages page' do
expect(current_path).to eq admin_broadcast_messages_path
end
step 'I should see newly created broadcast message' do
expect(page).to have_content 'Application update from 4:00 CST to 5:00 CST'
end
step 'submit form with new customized broadcast message' do
scenario 'Create a customized broadcast message' do
fill_in 'broadcast_message_message', with: 'Application update from **4:00 CST to 5:00 CST**'
fill_in 'broadcast_message_color', with: '#f2dede'
fill_in 'broadcast_message_font', with: '#b94a48'
select Date.today.next_year.year, from: "broadcast_message_ends_at_1i"
click_button "Add broadcast message"
end
select Date.today.next_year.year, from: 'broadcast_message_ends_at_1i'
click_button 'Add broadcast message'
 
step 'I should see a customized broadcast message' do
expect(current_path).to eq admin_broadcast_messages_path
expect(page).to have_content 'Application update from 4:00 CST to 5:00 CST'
expect(page).to have_selector 'strong', text: '4:00 CST to 5:00 CST'
expect(page).to have_selector %(div[style="background-color: #f2dede; color: #b94a48"])
end
 
step 'I edit an existing broadcast message' do
scenario 'Edit an existing broadcast message' do
click_link 'Edit'
end
step 'I change the broadcast message text' do
fill_in 'broadcast_message_message', with: 'Application update RIGHT NOW'
click_button 'Update broadcast message'
end
 
step 'I should see the updated broadcast message' do
expect(page).to have_content "Application update RIGHT NOW"
expect(current_path).to eq admin_broadcast_messages_path
expect(page).to have_content 'Application update RIGHT NOW'
end
 
step 'I remove an existing broadcast message' do
scenario 'Remove an existing broadcast message' do
click_link 'Remove'
end
 
step 'I should not see the removed broadcast message' do
expect(current_path).to eq admin_broadcast_messages_path
expect(page).not_to have_content 'Migration to new server'
end
 
step 'I enter a broadcast message with Markdown' do
scenario 'Live preview a customized broadcast message', js: true do
fill_in 'broadcast_message_message', with: "Live **Markdown** previews. :tada:"
end
 
step 'I should see a live preview of the rendered broadcast message' do
page.within('.broadcast-message-preview') do
expect(page).to have_selector('strong', text: 'Markdown')
expect(page).to have_selector('img.emoji')
Loading
Loading
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