Merge branch 'master' into ticket-currency-bug
This commit is contained in:
commit
bf896a136a
28 changed files with 359 additions and 82 deletions
|
|
@ -95,6 +95,75 @@ describe Admin::ConferencesController do
|
|||
get :show, id: conference.short_title
|
||||
expect(response).to render_template :show
|
||||
end
|
||||
|
||||
it 'assigns conference withdrawn events distribution to event_type_distribution_withdrawn' do
|
||||
conference
|
||||
create(:event, program: conference.program)
|
||||
workshop = create(:event_type, title: 'Workshop', color: '#000000', program: conference.program)
|
||||
lecture = create(:event_type, title: 'Lecture', color: '#ffffff', program: conference.program)
|
||||
get :show, id: conference.short_title
|
||||
expect(assigns(:event_type_distribution_withdrawn)).to be_empty
|
||||
create(:event, program: conference.program, state: 'withdrawn', event_type: lecture)
|
||||
create(:event, program: conference.program, state: 'withdrawn', event_type: workshop)
|
||||
get :show, id: conference.short_title
|
||||
expect(assigns(:event_type_distribution_withdrawn)).not_to be_empty
|
||||
result = {}
|
||||
result['Workshop'] = {
|
||||
'value' => 1,
|
||||
'color' => '#000000'
|
||||
}
|
||||
result['Lecture'] = {
|
||||
'value' => 1,
|
||||
'color' => '#FFFFFF'
|
||||
}
|
||||
expect(assigns(:event_type_distribution_withdrawn)).to eq(result)
|
||||
end
|
||||
|
||||
it 'assigns conference withdrawn difficulty level distribution to difficulty_levels_distribution_withdrawn' do
|
||||
conference
|
||||
create(:event, program: conference.program)
|
||||
get :show, id: conference.short_title
|
||||
expect(assigns(:difficulty_levels_distribution_withdrawn)).to be_empty
|
||||
easy = create(:difficulty_level, title: 'Easy', color: '#000000')
|
||||
hard = create(:difficulty_level, title: 'Hard', color: '#ffffff')
|
||||
create(:event, program: conference.program, state: 'withdrawn', difficulty_level: easy)
|
||||
create(:event, program: conference.program, state: 'withdrawn', difficulty_level: hard)
|
||||
get :show, id: conference.short_title
|
||||
expect(assigns(:difficulty_levels_distribution_withdrawn)).not_to be_empty
|
||||
result = {}
|
||||
result['Easy'] = {
|
||||
'value' => 1,
|
||||
'color' => '#000000'
|
||||
}
|
||||
result['Hard'] = {
|
||||
'value' => 1,
|
||||
'color' => '#FFFFFF'
|
||||
}
|
||||
expect(assigns(:difficulty_levels_distribution_withdrawn)).to eq(result)
|
||||
end
|
||||
|
||||
it 'assigns conference withdrawn track distribution to tracks_distribution_withdrawn' do
|
||||
conference
|
||||
create(:event, program: conference.program)
|
||||
get :show, id: conference.short_title
|
||||
expect(assigns(:tracks_distribution_withdrawn)).to be_empty
|
||||
track_one = create(:track, name: 'Track One', color: '#000000', program: conference.program)
|
||||
track_two = create(:track, name: 'Track Two', color: '#FFFFFF', program: conference.program)
|
||||
create(:event, program: conference.program, state: 'withdrawn', track: track_one)
|
||||
create(:event, program: conference.program, state: 'withdrawn', track: track_two)
|
||||
get :show, id: conference.short_title
|
||||
expect(assigns(:tracks_distribution_withdrawn)).not_to be_empty
|
||||
result = {}
|
||||
result['Track One'] = {
|
||||
'value' => 1,
|
||||
'color' => '#000000'
|
||||
}
|
||||
result['Track Two'] = {
|
||||
'value' => 1,
|
||||
'color' => '#FFFFFF'
|
||||
}
|
||||
expect(assigns(:tracks_distribution_withdrawn)).to eq(result)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'GET #index' do
|
||||
|
|
|
|||
|
|
@ -30,7 +30,45 @@ describe ApplicationController, type: :controller do
|
|||
expect(controller.after_sign_in_path_for(user)).to eq conferences_path
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe ApplicationController, type: :request do
|
||||
let(:conference) { create(:conference) }
|
||||
|
||||
describe 'Skylight link' do
|
||||
|
||||
around do |example|
|
||||
original_value = ENV['SKYLIGHT_PUBLIC_DASHBOARD_URL']
|
||||
example.run
|
||||
ENV['SKYLIGHT_PUBLIC_DASHBOARD_URL'] = original_value
|
||||
end
|
||||
|
||||
context 'when SKYLIGHT_PUBLIC_DASHBOARD_URL is set' do
|
||||
before do
|
||||
ENV['SKYLIGHT_PUBLIC_DASHBOARD_URL'] = 'https://oss.skylight.io/app/applications/my-osem'
|
||||
end
|
||||
|
||||
it 'should include a link to view performance data' do
|
||||
get '/'
|
||||
expect(response.body).to match(/Performance data/i)
|
||||
expect(response.body).to include('https://oss.skylight.io/app/applications/my-osem')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when SKYLIGHT_PUBLIC_DASHBOARD_URL is not set' do
|
||||
before do
|
||||
ENV['SKYLIGHT_PUBLIC_DASHBOARD_URL'] = nil
|
||||
end
|
||||
|
||||
it 'should not include a link to view performance data' do
|
||||
get '/'
|
||||
expect(response.body).to_not match(/performance data/i)
|
||||
expect(response.body).to_not match(/skylight/i)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
FactoryGirl.define do
|
||||
factory :organization do
|
||||
name { Faker::Company.name }
|
||||
sequence(:name) { |n| "#{Faker::Company.name} #{n}" }
|
||||
description { Faker::Lorem.paragraph }
|
||||
|
||||
# after(:create) do |organization|
|
||||
|
|
|
|||
|
|
@ -89,11 +89,131 @@ describe 'User' do
|
|||
let(:other_self_organized_track) { create(:track, :self_organized) }
|
||||
|
||||
it{ should be_able_to(:manage, user) }
|
||||
|
||||
it{ should be_able_to(:manage, registration_public) }
|
||||
it{ should be_able_to(:manage, registration_not_public) }
|
||||
it{ should_not be_able_to(:new, Registration.new(conference_id: conference_with_closed_registration.id))}
|
||||
it{ should_not be_able_to(:create, Registration.new(conference_id: conference_with_closed_registration.id))}
|
||||
|
||||
# Test for user can register or not
|
||||
context 'when user is not a speaker with event confirmed' do
|
||||
let(:conference) { create(:conference) }
|
||||
|
||||
context 'when the registration is closed' do
|
||||
before :each do
|
||||
create(:registration_period, conference: conference, start_date: Date.current - 6.days, end_date: Date.current - 6.days)
|
||||
end
|
||||
|
||||
it{ should_not be_able_to(:new, Registration.new(conference: conference)) }
|
||||
it{ should_not be_able_to(:create, Registration.new(conference: conference)) }
|
||||
end
|
||||
|
||||
context 'when the registration period is not set' do
|
||||
it{ should_not be_able_to(:new, Registration.new(conference: conference)) }
|
||||
it{ should_not be_able_to(:create, Registration.new(conference: conference)) }
|
||||
end
|
||||
|
||||
context 'when user has already registered' do
|
||||
before :each do
|
||||
create(:registration, conference: conference, user: user)
|
||||
end
|
||||
|
||||
it{ should_not be_able_to(:new, Registration.new(conference: conference)) }
|
||||
it{ should_not be_able_to(:create, Registration.new(conference: conference)) }
|
||||
end
|
||||
|
||||
context 'when registrations are open' do
|
||||
before :each do
|
||||
create(:registration_period, conference: conference)
|
||||
end
|
||||
|
||||
it{ should be_able_to(:new, Registration.new(conference: conference)) }
|
||||
it{ should be_able_to(:create, Registration.new(conference: conference)) }
|
||||
|
||||
context 'when user has not registered with no registration_limit_exceeded' do
|
||||
before :each do
|
||||
conference.registration_limit = 1
|
||||
end
|
||||
|
||||
it{ should be_able_to(:new, Registration.new(conference: conference)) }
|
||||
it{ should be_able_to(:create, Registration.new(conference: conference)) }
|
||||
end
|
||||
|
||||
context 'when user has not registered with registration_limit_exceeded' do
|
||||
before :each do
|
||||
conference.registration_limit = 1
|
||||
create(:registration, conference: conference, user: user2)
|
||||
end
|
||||
|
||||
it{ should_not be_able_to(:new, Registration.new(conference: conference)) }
|
||||
it{ should_not be_able_to(:create, Registration.new(conference: conference)) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when user is a speaker with event confirmed' do
|
||||
let(:conference_with_speaker_confirmed) { create(:conference) }
|
||||
let(:event_with_speaker_confirmed) { create(:event, state: 'confirmed', program: conference_with_speaker_confirmed.program) }
|
||||
|
||||
before :each do
|
||||
event_with_speaker_confirmed.speakers << user
|
||||
end
|
||||
|
||||
context 'when registration period is not set' do
|
||||
it{ should_not be_able_to(:new, Registration.new(conference: conference_with_speaker_confirmed)) }
|
||||
it{ should_not be_able_to(:create, Registration.new(conference: conference_with_speaker_confirmed)) }
|
||||
end
|
||||
|
||||
context 'when speaker has already registered' do
|
||||
before :each do
|
||||
create(:registration, conference: conference_with_speaker_confirmed, user: user)
|
||||
end
|
||||
|
||||
it{ should_not be_able_to(:new, Registration.new(conference: conference_with_speaker_confirmed)) }
|
||||
it{ should_not be_able_to(:create, Registration.new(conference: conference_with_speaker_confirmed)) }
|
||||
end
|
||||
|
||||
context 'when registration period is set' do
|
||||
before :each do
|
||||
create(:registration_period, conference: conference_with_speaker_confirmed)
|
||||
end
|
||||
|
||||
context 'when registrations are open' do
|
||||
context 'when speaker has not registered' do
|
||||
it{ should be_able_to(:new, Registration.new(conference: conference_with_speaker_confirmed)) }
|
||||
it{ should be_able_to(:create, Registration.new(conference: conference_with_speaker_confirmed)) }
|
||||
end
|
||||
|
||||
context 'when registration_limit_exceeded' do
|
||||
before :each do
|
||||
conference_with_speaker_confirmed.registration_limit = 1
|
||||
create(:registration, conference: conference_with_speaker_confirmed, user: user2)
|
||||
end
|
||||
|
||||
it{ should be_able_to(:new, Registration.new(conference: conference_with_speaker_confirmed)) }
|
||||
it{ should be_able_to(:create, Registration.new(conference: conference_with_speaker_confirmed)) }
|
||||
end
|
||||
end
|
||||
|
||||
context 'when registrations are closed' do
|
||||
before :each do
|
||||
create(:registration_period, conference: conference_with_speaker_confirmed, start_date: Date.current - 6.days, end_date: Date.current - 6.days)
|
||||
end
|
||||
|
||||
context 'when speaker has not registered' do
|
||||
it{ should be_able_to(:new, Registration.new(conference: conference_with_speaker_confirmed)) }
|
||||
it{ should be_able_to(:create, Registration.new(conference: conference_with_speaker_confirmed)) }
|
||||
end
|
||||
|
||||
context 'with registration_limit_exceeded' do
|
||||
before :each do
|
||||
conference_with_speaker_confirmed.registration_limit = 1
|
||||
create(:registration, conference: conference_with_speaker_confirmed, user: user2)
|
||||
end
|
||||
|
||||
it{ should be_able_to(:new, Registration.new(conference: conference_with_speaker_confirmed)) }
|
||||
it{ should be_able_to(:create, Registration.new(conference: conference_with_speaker_confirmed)) }
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
it{ should be_able_to(:index, Ticket) }
|
||||
it{ should be_able_to(:manage, TicketPurchase.new(user_id: user.id)) }
|
||||
|
|
|
|||
|
|
@ -63,7 +63,12 @@ RSpec.configure do |config|
|
|||
Capybara.javascript_driver = :poltergeist
|
||||
|
||||
Capybara.register_driver :poltergeist do |app|
|
||||
Capybara::Poltergeist::Driver.new(app, phantomjs: Phantomjs.path, js_errors: false, window_size: [1920, 1080])
|
||||
Capybara::Poltergeist::Driver.new(
|
||||
app,
|
||||
phantomjs: Phantomjs.path,
|
||||
js_errors: false,
|
||||
window_size: [1920, 1080]
|
||||
)
|
||||
end
|
||||
|
||||
# Includes helpers and connect them to specific types of tests
|
||||
|
|
|
|||
|
|
@ -11,9 +11,9 @@ end
|
|||
def mock_commercial_request
|
||||
response = {
|
||||
author_name: 'Confreaks',
|
||||
html: '<iframe width=\'560\' height=\'315\' src=\'https://www.youtube.com/embed/BTTygyxuGj8?feature=oembed\' frameborder=\'0\' allowfullscreen></iframe>',
|
||||
html: '<iframe width="560" height="315" frameborder="0" allowfullscreen></iframe>',
|
||||
thumbnail_width: 480,
|
||||
thumbnail_url: 'https://i.ytimg.com/vi/BTTygyxuGj8/hqdefault.jpg',
|
||||
thumbnail_url: '/images/rails.png',
|
||||
provider_name: 'YouTube',
|
||||
width: 459,
|
||||
type: 'video',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue