mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-17 13:44:09 +00:00
Create a factory for organizer
Refactor organizer user creation in tests Fixes https://github.com/openSUSE/osem/issues/2398
This commit is contained in:
parent
0197ed3c46
commit
35ec178beb
31 changed files with 48 additions and 68 deletions
|
|
@ -7,8 +7,7 @@ require 'spec_helper'
|
|||
describe Admin::CfpsController do
|
||||
let!(:today) { Date.today }
|
||||
let!(:conference) { create(:conference, start_date: today + 20.days, end_date: today + 30.days) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: organizer_role.id) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
let(:cfp) { create(:cfp, program: conference.program) }
|
||||
|
||||
before { sign_in(organizer) }
|
||||
|
|
|
|||
|
|
@ -6,8 +6,7 @@ describe Admin::CommentsController, type: :controller do
|
|||
|
||||
# It is necessary to use bang version of let to build roles before user
|
||||
let(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let(:organizer) { create(:user, role_ids: organizer_role.id, last_sign_in_at: Time.now - 1.day) }
|
||||
let(:organizer) { create(:organizer, resource: conference, last_sign_in_at: Time.now - 1.day) }
|
||||
let(:participant) { create(:user) }
|
||||
let(:event) { create(:event, program: conference.program) }
|
||||
let(:comment) { create(:comment, commentable_type: 'Event', commentable_id: event.id) }
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@ describe Admin::ConferencesController do
|
|||
# It is necessary to use bang version of let to build roles before user
|
||||
let!(:organization) { create(:organization, name: 'organization') }
|
||||
let!(:conference) { create(:conference, organization: organization, end_date: Date.new(2014, 05, 26) + 15) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organization_admin_role) { Role.find_by(name: 'organization_admin', resource: organization) }
|
||||
let(:organization_admin) { create(:user, role_ids: organization_admin_role.id) }
|
||||
let(:organizer) { create(:user, role_ids: organizer_role.id) }
|
||||
let(:organizer2) { create(:user, email: 'organizer2@email.osem', role_ids: organizer_role.id) }
|
||||
let(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
let!(:organizer2) { create(:organizer, email: 'organizer2@email.osem', resource: conference) }
|
||||
let(:participant) { create(:user) }
|
||||
|
||||
shared_examples 'access as organizer or organization_admin' do
|
||||
|
|
|
|||
|
|
@ -8,8 +8,7 @@ describe Admin::EventSchedulesController do
|
|||
let(:room) { create(:room, venue: venue) }
|
||||
let(:schedule) { create(:schedule, program: conference.program)}
|
||||
let(:event_schedule) { create(:event_schedule, schedule: schedule)}
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let(:organizer) { create(:user, role_ids: organizer_role.id) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
context 'logged in as an organizer' do
|
||||
before :each do
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
describe Admin::EventsController do
|
||||
let(:conference) { create(:conference) }
|
||||
let(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let(:organizer) { create(:user, role_ids: organizer_role.id) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
# The where_object() and where_object_changes() methods of paper_trail gem are broken when having:
|
||||
# an Event with ID 1, an Event with ID 2, and a commercial with ID 1, for event with ID 2
|
||||
# (the numbers could be different as long as there is this matching of IDs).
|
||||
|
|
|
|||
|
|
@ -6,8 +6,7 @@ describe Admin::ProgramsController, type: :controller do
|
|||
|
||||
# It is necessary to use bang version of let to build roles before user
|
||||
let(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let(:organizer) { create(:user, role_ids: organizer_role.id, last_sign_in_at: Time.now - 1.day) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
context 'not logged in user' do
|
||||
describe 'GET #show' do
|
||||
|
|
|
|||
|
|
@ -6,10 +6,9 @@ describe Admin::RegistrationPeriodsController do
|
|||
|
||||
# It is necessary to use bang version of let to build roles before user
|
||||
let(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:registration_ticket) { create(:registration_ticket, conference: conference) }
|
||||
let(:organizer) { create(:user, role_ids: organizer_role.id) }
|
||||
let(:organizer2) { create(:user, email: 'organizer2@email.osem', role_ids: organizer_role.id) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
let!(:organizer2) { create(:organizer, email: 'organizer2@email.osem', resource: conference) }
|
||||
let(:participant) { create(:user) }
|
||||
|
||||
shared_examples 'access as administration or organizer' do
|
||||
|
|
|
|||
|
|
@ -5,8 +5,7 @@ require 'spec_helper'
|
|||
describe Admin::SchedulesController do
|
||||
let(:conference) { create(:conference) }
|
||||
let(:schedule) { create(:schedule, program: conference.program)}
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let(:organizer) { create(:user, role_ids: organizer_role.id) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
context 'logged in as an organizer' do
|
||||
before :each do
|
||||
|
|
|
|||
|
|
@ -13,7 +13,8 @@
|
|||
# `create(:admin, is_admin: false)`
|
||||
#
|
||||
# For a non-admin user, use: `create(:user)`
|
||||
# For an admin user, use: `create(:admin)
|
||||
# For an admin user, use: `create(:admin)`
|
||||
# For an organizer user, use `create(:organizer)`
|
||||
|
||||
FactoryBot.define do
|
||||
factory :user do
|
||||
|
|
@ -58,4 +59,14 @@ FactoryBot.define do
|
|||
biography { '<div id="divInjectedElement"></div>' }
|
||||
end
|
||||
|
||||
factory :organizer, parent: :user do
|
||||
transient do
|
||||
resource { create(:resource) }
|
||||
end
|
||||
|
||||
after(:create) do |user, evaluator|
|
||||
user.roles << Role.find_or_create_by(name: 'organizer', resource: evaluator.resource)
|
||||
user.save!
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -6,8 +6,7 @@ feature Commercial do
|
|||
# It is necessary to use bang version of let to build roles before user
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:cfp) { create(:cfp, program: conference.program) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
let!(:participant) { create(:user) }
|
||||
|
||||
context 'in admin area' do
|
||||
|
|
|
|||
|
|
@ -39,8 +39,7 @@ feature Conference do
|
|||
|
||||
scenario 'update conference', feature: true, js: true do
|
||||
conference = create(:conference)
|
||||
organizer_role = Role.find_by(name: 'organizer', resource: conference)
|
||||
organizer = create(:user, role_ids: [organizer_role.id])
|
||||
organizer = create(:organizer, resource: conference)
|
||||
|
||||
expected_count = Conference.count
|
||||
|
||||
|
|
|
|||
|
|
@ -5,8 +5,7 @@ require 'spec_helper'
|
|||
feature Contact do
|
||||
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, email: 'admin@example.com', role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
shared_examples 'contact field' do |field_name, field_value|
|
||||
it 'updates a contact' do
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature DifficultyLevel do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
shared_examples 'difficulty levels' do
|
||||
scenario 'adds difficulty level', feature: true, js: true do
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature EmailSettings do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
shared_examples 'email settings' do
|
||||
scenario 'updates email settings',
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature EventType do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
shared_examples 'event types' do
|
||||
scenario 'adds and updates event type', feature: true do
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature Lodging do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
scenario 'Add a lodging', feature: true, js: true do
|
||||
path = "#{Rails.root}/app/assets/images/rails.png"
|
||||
|
|
|
|||
|
|
@ -6,8 +6,7 @@ feature Program do
|
|||
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:program) { conference.program }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
describe 'edit program' do
|
||||
before :each do
|
||||
|
|
|
|||
|
|
@ -6,8 +6,7 @@ feature Event do
|
|||
let!(:conference) { create(:conference) }
|
||||
let!(:registration_period) { create(:registration_period, conference: conference, start_date: Date.current) }
|
||||
let!(:cfp) { create(:cfp, program_id: conference.program.id) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, email: 'admin@example.com', role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
let!(:participant) { create(:user) }
|
||||
let!(:participant_without_bio) { create(:user, biography: '') }
|
||||
|
||||
|
|
|
|||
|
|
@ -5,8 +5,7 @@ require 'spec_helper'
|
|||
feature RegistrationPeriod do
|
||||
# It is necessary to use bang version of let to build roles before user
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, email: 'admin@example.com', role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, email: 'admin@example.com', resource: conference) }
|
||||
let(:start_date) { Date.today }
|
||||
let(:end_date) { Date.today + 5 }
|
||||
|
||||
|
|
|
|||
|
|
@ -5,8 +5,7 @@ require 'spec_helper'
|
|||
feature Room do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:venue) { create(:venue, conference: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
shared_examples 'rooms' do
|
||||
scenario 'adds a room', feature: true, js: true do
|
||||
|
|
|
|||
|
|
@ -6,8 +6,7 @@ feature Splashpage do
|
|||
|
||||
# It is necessary to use bang version of let to build roles before user
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, email: 'admin@example.com', role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
let!(:participant) { create(:user, biography: '', is_admin: false) }
|
||||
|
||||
scenario 'create a valid splashpage', js: true do
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature Sponsor do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
shared_examples 'sponsors' do
|
||||
scenario 'adds and updates sponsors', feature: true, js: true do
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature SponsorshipLevel do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
shared_examples 'sponsorship_levels' do
|
||||
scenario 'adds a sponsorship level', feature: true, js: true do
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature Ticket do
|
||||
let!(:conference) { create(:conference, title: 'ExampleCon') }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, email: 'admin@example.com', role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
context 'as a organizer' do
|
||||
before(:each) do
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature Track do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
let(:user) { create(:user) }
|
||||
|
||||
shared_examples 'admin tracks' do
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature Conference do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
shared_examples 'venue' do
|
||||
scenario 'adds and updates venue' do
|
||||
|
|
|
|||
|
|
@ -5,8 +5,7 @@ require 'spec_helper'
|
|||
feature 'Version' do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:cfp) { create(:cfp, program: conference.program) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
let(:event_with_commercial) { create(:event, program: conference.program) }
|
||||
let(:event_commercial) { create(:event_commercial, commercialable: event_with_commercial, url: 'https://www.youtube.com/watch?v=M9bq_alk-sw') }
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature Conference do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
shared_examples 'volunteer' do
|
||||
scenario 'adds and updates vdays', feature: true, js: true do
|
||||
|
|
|
|||
|
|
@ -285,8 +285,7 @@ describe Conference do
|
|||
|
||||
describe '#get_top_submitter' do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
it 'calculates correct hash with top submitters' do
|
||||
event = create(:event, program: subject.program)
|
||||
|
|
@ -866,8 +865,7 @@ describe Conference do
|
|||
|
||||
describe 'self#event_distribution' do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
it 'self#user_distribution calculates correct values with user' do
|
||||
result = {}
|
||||
|
|
@ -1386,9 +1384,7 @@ describe Conference do
|
|||
|
||||
# It is necessary to use bang version of let to build roles before user
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
let(:user) { create(:user) }
|
||||
|
||||
context 'user not registered' do
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ describe Role do
|
|||
let(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:cfp_role) { Role.find_by(name: 'cfp', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: organizer_role.id) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
let(:user) { create(:user) }
|
||||
|
||||
it 'get_users' do
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ describe User do
|
|||
let(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let(:cfp_role) { Role.find_by(name: 'cfp', resource: conference) }
|
||||
let(:volunteers_coordinator_role) { Role.find_by(name: 'volunteers_coordinator', resource: conference) }
|
||||
let(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let(:organizer) { create(:organizer, resource: conference) }
|
||||
let(:user) { create(:user) }
|
||||
let(:user_disabled) { create(:user, :disabled) }
|
||||
|
||||
|
|
@ -417,8 +417,7 @@ describe User do
|
|||
describe '#has_cached_role?' do
|
||||
describe 'when user has a role' do
|
||||
it 'returns true when the user has the role' do
|
||||
user = create(:user, role_ids: organizer_role.id)
|
||||
expect(user.has_cached_role?('organizer', conference)).to be true
|
||||
expect(organizer.has_cached_role?('organizer', conference)).to be true
|
||||
end
|
||||
|
||||
it 'returns false when the user does not have the role' do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue