diff --git a/.coveralls.yml b/.coveralls.yml
deleted file mode 100644
index cf27a370..00000000
--- a/.coveralls.yml
+++ /dev/null
@@ -1 +0,0 @@
-service_name: travis-pro
diff --git a/app/controllers/spina/admin/conferences/application_controller.rb b/app/controllers/spina/admin/conferences/application_controller.rb
index f4e3cc9b..f7c8ba75 100644
--- a/app/controllers/spina/admin/conferences/application_controller.rb
+++ b/app/controllers/spina/admin/conferences/application_controller.rb
@@ -16,6 +16,7 @@ class ApplicationController < ::Spina::Admin::AdminController
def set_locale
@locale = params[:locale] || I18n.default_locale
+ Mobility.locale = @locale
end
end
end
diff --git a/app/controllers/spina/admin/conferences/presentations_controller.rb b/app/controllers/spina/admin/conferences/presentations_controller.rb
index efcff7d4..1a5935ac 100644
--- a/app/controllers/spina/admin/conferences/presentations_controller.rb
+++ b/app/controllers/spina/admin/conferences/presentations_controller.rb
@@ -29,7 +29,7 @@ def new
# Renders a form for an existing presentation.
# @return [void]
def edit
- add_breadcrumb @presentation.title
+ add_breadcrumb @presentation.title.truncate(33, separator: /\s/, omission: '…')
end
# Creates a presentation.
@@ -58,7 +58,7 @@ def update # rubocop:disable Metrics/MethodLength
else
respond_to do |format|
format.html do
- add_breadcrumb @presentation.title
+ add_breadcrumb @presentation.title.try(:truncate, 33, separator: /\s/, omission: '…')
render :edit
end
format.turbo_stream { render partial: 'errors', locals: { errors: @presentation.errors } }
@@ -74,7 +74,7 @@ def destroy # rubocop:disable Metrics/MethodLength
else
respond_to do |format|
format.html do
- add_breadcrumb @presentation.title
+ add_breadcrumb @presentation.title.try(:truncate, 33, separator: /\s/, omission: '…')
render :edit
end
format.turbo_stream { render partial: 'errors', locals: { errors: @presentation.errors } }
diff --git a/app/views/spina/admin/conferences/application/_breadcrumbs.html.haml b/app/views/spina/admin/conferences/application/_breadcrumbs.html.haml
new file mode 100644
index 00000000..bc8c2fad
--- /dev/null
+++ b/app/views/spina/admin/conferences/application/_breadcrumbs.html.haml
@@ -0,0 +1,16 @@
+.breadcrumbs
+ = render_breadcrumbs separator: tag.div(class: 'divider')
+ %span{ style: 'margin-left: 10px' }
+ - if Spina.config.locales.many?
+ %div{ style: 'display: inline-block', data: { dropdown: true } }
+ = link_to '#', class: %w[button button-default button-small], style: 'margin-left: 0; margin-right: 0',
+ data: { trigger: 'dropdown', target: '#locales' } do
+ .button-content
+ = icon('comment')
+ = t "spina.languages.#{@locale}"
+ %i.icon.icon-chevron-down{ style: 'font-size: 9px; margin-right: 0; margin-left: 5px' }
+ %ul#locales
+ - Spina.config.locales.each do |locale|
+ %li
+ = link_to_if @locale.to_s == locale.to_s, t("spina.languages.#{locale}"), "?locale=#{locale}", style: 'font-weight: 600' do
+ = link_to t("spina.languages.#{locale}"), "?locale=#{locale}"
diff --git a/app/views/spina/admin/conferences/conferences/_form.html.haml b/app/views/spina/admin/conferences/conferences/_form.html.haml
index 6065e205..400a52de 100644
--- a/app/views/spina/admin/conferences/conferences/_form.html.haml
+++ b/app/views/spina/admin/conferences/conferences/_form.html.haml
@@ -4,7 +4,7 @@
= form_for [:admin_conferences, @conference], html: { autocomplete: 'off' } do |f|
%header#header
- = render partial: 'spina/admin/shared/breadcrumbs'
+ = render partial: @conference.new_record? ? 'spina/admin/shared/breadcrumbs' : 'breadcrumbs'
#header_actions
%button.button.button-primary{ type: 'submit' }
@@ -19,9 +19,12 @@
%li{ class: ('active' if i == 0) }
= link_to t(".#{tab}"), "##{tab}"
- #conference_details.tab-content.active= render 'form_conference_details', f: f
- #parts.tab-content= render 'form_parts', f: f
- #rooms.tab-content= render partial: 'rooms', object: @conference.rooms
- #presentation_types.tab-content= render partial: 'presentation_types', object: @conference.presentation_types
- #delegates.tab-content= render partial: 'delegates', object: @conference.delegates
- #presentations.tab-content= render partial: 'presentations', object: @conference.presentations
+ = hidden_field_tag :locale, @locale
+
+ - Mobility.with_locale(@locale) do
+ #conference_details.tab-content.active= render 'form_conference_details', f: f
+ #parts.tab-content= render 'form_parts', f: f
+ #rooms.tab-content= render partial: 'rooms', object: @conference.rooms
+ #presentation_types.tab-content= render partial: 'presentation_types', object: @conference.presentation_types
+ #delegates.tab-content= render partial: 'delegates', object: @conference.delegates
+ #presentations.tab-content= render partial: 'presentations', object: @conference.presentations
diff --git a/app/views/spina/admin/conferences/delegates/_form.html.haml b/app/views/spina/admin/conferences/delegates/_form.html.haml
index 97077c3a..059e516b 100644
--- a/app/views/spina/admin/conferences/delegates/_form.html.haml
+++ b/app/views/spina/admin/conferences/delegates/_form.html.haml
@@ -4,7 +4,7 @@
= form_for [:admin_conferences, @delegate], html: { autocomplete: 'off' } do |f|
%header#header
- = render partial: 'spina/admin/shared/breadcrumbs'
+ = render partial: @delegate.new_record? ? 'spina/admin/shared/breadcrumbs' : 'breadcrumbs'
#header_actions
%button.button.button-primary{ type: 'submit' }
@@ -19,6 +19,9 @@
%li{ class: ('active' if i == 0) }
= link_to t(".#{tab}"), "##{tab}"
- #delegate_details.tab-content.active= render 'form_delegate_details', f: f
- #conferences.tab-content= render partial: 'conferences', object: @delegate.conferences
- #presentations.tab-content= render partial: 'presentations', object: @delegate.presentations
+ = hidden_field_tag :locale, @locale
+
+ - Mobility.with_locale(@locale) do
+ #delegate_details.tab-content.active= render 'form_delegate_details', f: f
+ #conferences.tab-content= render partial: 'conferences', object: @delegate.conferences
+ #presentations.tab-content= render partial: 'presentations', object: @delegate.presentations
diff --git a/app/views/spina/admin/conferences/dietary_requirements/_form.html.haml b/app/views/spina/admin/conferences/dietary_requirements/_form.html.haml
index 0eddbab7..83b43976 100644
--- a/app/views/spina/admin/conferences/dietary_requirements/_form.html.haml
+++ b/app/views/spina/admin/conferences/dietary_requirements/_form.html.haml
@@ -4,7 +4,7 @@
= form_for [:admin_conferences, @dietary_requirement], html: { autocomplete: 'off' } do |f|
%header#header
- = render partial: 'spina/admin/shared/breadcrumbs'
+ = render partial: @dietary_requirement.new_record? ? 'spina/admin/shared/breadcrumbs' : 'breadcrumbs'
#header_actions
%button.button.button-primary{ type: 'submit' }
@@ -19,5 +19,8 @@
%li{ class: ('active' if i == 0) }
= link_to t(".#{tab}"), "##{tab}"
- #dietary_requirement_details.tab-content.active= render 'form_dietary_requirement_details', f: f
- #delegates.tab-content= render partial: 'delegates', object: @dietary_requirement.delegates
+ = hidden_field_tag :locale, @locale
+
+ - Mobility.with_locale(@locale) do
+ #dietary_requirement_details.tab-content.active= render 'form_dietary_requirement_details', f: f
+ #delegates.tab-content= render partial: 'delegates', object: @dietary_requirement.delegates
diff --git a/app/views/spina/admin/conferences/institutions/_form.html.haml b/app/views/spina/admin/conferences/institutions/_form.html.haml
index 8e8afb73..6ccf1edd 100644
--- a/app/views/spina/admin/conferences/institutions/_form.html.haml
+++ b/app/views/spina/admin/conferences/institutions/_form.html.haml
@@ -4,7 +4,7 @@
= form_for [:admin_conferences, @institution], html: { autocomplete: 'off' } do |f|
%header#header
- = render partial: 'spina/admin/shared/breadcrumbs'
+ = render partial: @institution.new_record? ? 'spina/admin/shared/breadcrumbs' : 'breadcrumbs'
#header_actions
%button.button.button-primary{ type: 'submit' }
@@ -19,6 +19,9 @@
%li{ class: ('active' if i == 0) }
= link_to t(".#{tab}"), "##{tab}"
- #institution_details.tab-content.active= render 'form_institution_details', f: f
- #rooms.tab-content= render partial: 'rooms', object: @institution.rooms
- #delegates.tab-content= render partial: 'delegates', object: @institution.delegates
+ = hidden_field_tag :locale, @locale
+
+ - Mobility.with_locale(@locale) do
+ #institution_details.tab-content.active= render 'form_institution_details', f: f
+ #rooms.tab-content= render partial: 'rooms', object: @institution.rooms
+ #delegates.tab-content= render partial: 'delegates', object: @institution.delegates
diff --git a/app/views/spina/admin/conferences/presentation_attachment_types/_form.html.haml b/app/views/spina/admin/conferences/presentation_attachment_types/_form.html.haml
index 3fd104d2..928c9040 100644
--- a/app/views/spina/admin/conferences/presentation_attachment_types/_form.html.haml
+++ b/app/views/spina/admin/conferences/presentation_attachment_types/_form.html.haml
@@ -4,7 +4,7 @@
= form_for [:admin_conferences, @presentation_attachment_type], html: { autocomplete: 'off' } do |f|
%header#header
- = render partial: 'spina/admin/shared/breadcrumbs'
+ = render partial: @presentation_attachment_type.new_record? ? 'spina/admin/shared/breadcrumbs' : 'breadcrumbs'
#header_actions
%button.button.button-primary{ type: 'submit' }
@@ -13,11 +13,14 @@
= link_to t('spina.cancel'), admin_conferences_presentation_attachment_types_path, class: 'button', style: 'margin-right: 0'
- %div{ style: 'margin-top: 40px' }
- .horizontal-form
- .horizontal-form-group
- .horizontal-form-label= Spina::Admin::Conferences::DietaryRequirement.human_attribute_name :name
- .horizontal-form-content= f.text_field :name, placeholder: Spina::Admin::Conferences::DietaryRequirement.human_attribute_name(:name), required: true
+ = hidden_field_tag :locale, @locale
+
+ - Mobility.with_locale(@locale) do
+ %div{ style: 'margin-top: 40px' }
+ .horizontal-form
+ .horizontal-form-group
+ .horizontal-form-label= Spina::Admin::Conferences::DietaryRequirement.human_attribute_name :name
+ .horizontal-form-content= f.text_field :name, placeholder: Spina::Admin::Conferences::DietaryRequirement.human_attribute_name(:name), required: true
- unless @presentation_attachment_type.new_record?
.pull-right= link_to t('spina.permanently_delete'), admin_conferences_presentation_attachment_type_path(@presentation_attachment_type), method: :delete, data: { confirm: t('.delete_confirmation', presentation_attachment_type: @presentation_attachment_type.name) }, class: %w[button button-link button-danger]
diff --git a/app/views/spina/admin/conferences/presentation_types/_form.html.haml b/app/views/spina/admin/conferences/presentation_types/_form.html.haml
index 26dde001..b108e041 100644
--- a/app/views/spina/admin/conferences/presentation_types/_form.html.haml
+++ b/app/views/spina/admin/conferences/presentation_types/_form.html.haml
@@ -4,7 +4,7 @@
= form_for [:admin_conferences, @presentation_type], html: { autocomplete: 'off' } do |f|
%header#header
- = render partial: 'spina/admin/shared/breadcrumbs'
+ = render partial: @presentation_type.new_record? ? 'spina/admin/shared/breadcrumbs' : 'breadcrumbs'
#header_actions
%button.button.button-primary{ type: 'submit' }
@@ -19,6 +19,9 @@
%li{ class: ('active' if i == 0) }
= link_to t(".#{tab}"), "##{tab}"
- #presentation_type_details.tab-content.active= render 'form_presentation_type_details', f: f
- #sessions.tab-content= render partial: 'sessions', object: @presentation_type.sessions
- #presentations.tab-content= render partial: 'presentations', object: @presentation_type.presentations
+ = hidden_field_tag :locale, @locale
+
+ - Mobility.with_locale(@locale) do
+ #presentation_type_details.tab-content.active= render 'form_presentation_type_details', f: f
+ #sessions.tab-content= render partial: 'sessions', object: @presentation_type.sessions
+ #presentations.tab-content= render partial: 'presentations', object: @presentation_type.presentations
diff --git a/app/views/spina/admin/conferences/presentations/_form.html.haml b/app/views/spina/admin/conferences/presentations/_form.html.haml
index a6fd71a8..980218dd 100644
--- a/app/views/spina/admin/conferences/presentations/_form.html.haml
+++ b/app/views/spina/admin/conferences/presentations/_form.html.haml
@@ -4,7 +4,7 @@
= form_for [:admin_conferences, @presentation], html: { autocomplete: 'off' } do |f|
%header#header
- = render partial: 'spina/admin/shared/breadcrumbs'
+ = render partial: @presentation.new_record? ? 'spina/admin/shared/breadcrumbs' : 'breadcrumbs'
#header_actions
%button.button.button-primary{ type: 'submit' }
@@ -19,5 +19,8 @@
%li{ class: ('active' if i == 0) }
= link_to t(".#{tab}"), "##{tab}"
- #presentation_details.tab-content.active= render 'form_presentation_details', f: f
- #presenters.tab-content= render partial: 'delegates', object: @presentation.presenters
+ = hidden_field_tag :locale, @locale
+
+ - Mobility.with_locale(@locale) do
+ #presentation_details.tab-content.active= render 'form_presentation_details', f: f
+ #presenters.tab-content= render partial: 'delegates', object: @presentation.presenters
diff --git a/app/views/spina/admin/conferences/rooms/_form.html.haml b/app/views/spina/admin/conferences/rooms/_form.html.haml
index 8d1f20b9..03539896 100644
--- a/app/views/spina/admin/conferences/rooms/_form.html.haml
+++ b/app/views/spina/admin/conferences/rooms/_form.html.haml
@@ -4,7 +4,7 @@
= form_for [:admin_conferences, @room], html: { autocomplete: 'off' } do |f|
%header#header
- = render partial: 'spina/admin/shared/breadcrumbs'
+ = render partial: @room.new_record? ? 'spina/admin/shared/breadcrumbs' : 'breadcrumbs'
#header_actions
%button.button.button-primary{ type: 'submit' }
@@ -19,5 +19,8 @@
%li{ class: ('active'if i == 0)}
= link_to t(".#{tab}"), "##{tab}"
- #room_details.tab-content.active= render 'form_room_details', f: f
- #presentations.tab-content= render partial: 'presentations', object: @room.presentations
+ = hidden_field_tag :locale, @locale
+
+ - Mobility.with_locale(@locale) do
+ #room_details.tab-content.active= render 'form_room_details', f: f
+ #presentations.tab-content= render partial: 'presentations', object: @room.presentations
diff --git a/app/views/spina/admin/conferences/sessions/_form.html.haml b/app/views/spina/admin/conferences/sessions/_form.html.haml
index 5b093ced..6d050227 100644
--- a/app/views/spina/admin/conferences/sessions/_form.html.haml
+++ b/app/views/spina/admin/conferences/sessions/_form.html.haml
@@ -4,7 +4,7 @@
= form_for [:admin_conferences, @session], html: { autocomplete: 'off' } do |f|
%header#header
- = render partial: 'spina/admin/shared/breadcrumbs'
+ = render partial: @session.new_record? ? 'spina/admin/shared/breadcrumbs' : 'breadcrumbs'
#header_actions
%button.button.button-primary{ type: 'submit' }
@@ -19,5 +19,8 @@
%li{ class: ('active'if i == 0)}
= link_to t(".#{tab}"), "##{tab}"
- #session_details.tab-content.active= render 'form_session_details', f: f
- #presentations.tab-content= render partial: 'presentations', object: @session.presentations
+ = hidden_field_tag :locale, @locale
+
+ - Mobility.with_locale(@locale) do
+ #session_details.tab-content.active= render 'form_session_details', f: f
+ #presentations.tab-content= render partial: 'presentations', object: @session.presentations
diff --git a/test/application_system_test_case.rb b/test/application_system_test_case.rb
index 4165e77b..d189cf4a 100644
--- a/test/application_system_test_case.rb
+++ b/test/application_system_test_case.rb
@@ -13,6 +13,16 @@ class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
include ::Spina::Engine.routes.url_helpers
driven_by :selenium, using: :headless_chrome, screen_size: [1400, 800]
+
+ setup do
+ @user = spina_users :joe
+ visit admin_login_path
+ within '.login-fields' do
+ fill_in 'email', with: @user.email
+ fill_in 'password', with: 'password'
+ end
+ click_on 'Login'
+ end
end
Capybara.default_max_wait_time = 5
diff --git a/test/controllers/spina/admin/conferences/conferences_controller_test.rb b/test/controllers/spina/admin/conferences/conferences_controller_test.rb
index 48f3c5fb..2001bdc3 100644
--- a/test/controllers/spina/admin/conferences/conferences_controller_test.rb
+++ b/test/controllers/spina/admin/conferences/conferences_controller_test.rb
@@ -10,11 +10,9 @@ class ConferencesControllerTest < ActionDispatch::IntegrationTest # rubocop:disa
setup do
@conference = spina_admin_conferences_conferences :university_of_atlantis_2017
- @invalid_conference = Conference.new
@empty_conference = spina_admin_conferences_conferences :empty_conference
@user = spina_users :joe
@rovinj_image = spina_images(:rovinj)
- @logo = spina_images(:logo)
post admin_sessions_url, params: { email: @user.email, password: 'password' }
end
@@ -57,94 +55,115 @@ class ConferencesControllerTest < ActionDispatch::IntegrationTest # rubocop:disa
end
end
+ test 'should get edit in locale' do
+ get edit_admin_conferences_conference_url(@conference, locale: :en)
+ assert_response :success
+ assert_select('#delegates tbody > tr') do |table_rows|
+ table_rows.each { |row| assert_select row, 'td', 4 }
+ end
+ assert_select '#presentation_types tbody > tr' do |table_rows|
+ table_rows.each { |row| assert_select row, 'td', 4 }
+ end
+ assert_select '#presentations tbody > tr' do |table_rows|
+ table_rows.each { |row| assert_select row, 'td', 4 }
+ end
+ assert_select('#rooms tbody > tr') do |table_rows|
+ table_rows.each { |row| assert_select row, 'td', 4 }
+ end
+ end
+
test 'should create conference' do
- attributes = @conference.attributes
- attributes[:start_date] = @conference.start_date
- attributes[:finish_date] = @conference.finish_date
- attributes[:name] = @conference.name
assert_difference 'Conference.count' do
- post admin_conferences_conferences_url, params: { conference: attributes }
+ post admin_conferences_conferences_url,
+ params: { conference: { start_date: Date.parse('2022-04-09'), finish_date: Date.parse('2022-04-11'), name: 'NSA 2022' } }
end
assert_redirected_to admin_conferences_conferences_url
assert_equal 'Conference saved', flash[:success]
+ assert_not_nil Conference.i18n.find_by(dates: Date.parse('2022-04-09')..Date.parse('2022-04-11'), name: 'NSA 2022')
end
test 'should create conference with remote form' do
- attributes = @conference.attributes
- attributes[:start_date] = @conference.start_date
- attributes[:finish_date] = @conference.finish_date
- attributes[:name] = @conference.name
assert_difference 'Conference.count' do
- post admin_conferences_conferences_url, params: { conference: attributes }, as: :turbo_stream
+ post admin_conferences_conferences_url,
+ params: { conference: { start_date: Date.parse('2022-04-09'), finish_date: Date.parse('2022-04-11'), name: 'NSA 2022' } },
+ as: :turbo_stream
end
assert_redirected_to admin_conferences_conferences_url
assert_equal 'Conference saved', flash[:success]
+ assert_not_nil Conference.i18n.find_by(dates: Date.parse('2022-04-09')..Date.parse('2022-04-11'), name: 'NSA 2022')
end
test 'should fail to create invalid conference' do
- attributes = @invalid_conference.attributes
- attributes[:start_date] = @invalid_conference.start_date
- attributes[:finish_date] = @invalid_conference.finish_date
- attributes[:name] = @invalid_conference.name
assert_no_difference 'Conference.count' do
- post admin_conferences_conferences_url, params: { conference: attributes }
+ post admin_conferences_conferences_url, params: { conference: { start_date: nil, finish_date: nil, name: nil } }
end
assert_response :success
assert_not_equal 'Conference saved', flash[:success]
end
test 'should fail to create invalid conference with remote form' do
- attributes = @invalid_conference.attributes
- attributes[:start_date] = @invalid_conference.start_date
- attributes[:finish_date] = @invalid_conference.finish_date
- attributes[:name] = @invalid_conference.name
assert_no_difference 'Conference.count' do
- post admin_conferences_conferences_url, params: { conference: attributes }, as: :turbo_stream
+ post admin_conferences_conferences_url,
+ params: { conference: { start_date: nil, finish_date: nil, name: nil } },
+ as: :turbo_stream
end
assert_response :success
assert_not_equal 'Conference saved', flash[:success]
end
test 'should update conference' do
- attributes = @conference.attributes
- attributes[:start_date] = @conference.start_date
- attributes[:finish_date] = @conference.finish_date
- attributes[:name] = @conference.name
- patch admin_conferences_conference_url(@conference), params: { conference: attributes }
+ patch admin_conferences_conference_url(@conference),
+ params: { conference: { start_date: Date.parse('2022-04-09'), finish_date: Date.parse('2022-04-11'), name: 'NSA 2022' } }
assert_redirected_to admin_conferences_conferences_url
assert_equal 'Conference saved', flash[:success]
+ assert_not_nil Conference.i18n.find_by(id: @conference.id,
+ dates: Date.parse('2022-04-09')..Date.parse('2022-04-11'),
+ name: 'NSA 2022')
end
test 'should update conference with remote form' do
- attributes = @conference.attributes
- attributes[:start_date] = @conference.start_date
- attributes[:finish_date] = @conference.finish_date
- attributes[:name] = @conference.name
- patch admin_conferences_conference_url(@conference), params: { conference: attributes }, as: :turbo_stream
+ patch admin_conferences_conference_url(@conference),
+ params: { conference: { start_date: Date.parse('2022-04-09'), finish_date: Date.parse('2022-04-11'), name: 'NSA 2022' } },
+ as: :turbo_stream
assert_redirected_to admin_conferences_conferences_url
assert_equal 'Conference saved', flash[:success]
+ assert_not_nil Conference.i18n.find_by(id: @conference.id,
+ dates: Date.parse('2022-04-09')..Date.parse('2022-04-11'),
+ name: 'NSA 2022')
end
test 'should fail to update invalid conference' do
- attributes = @invalid_conference.attributes
- attributes[:start_date] = @invalid_conference.start_date
- attributes[:finish_date] = @invalid_conference.finish_date
- attributes[:name] = @invalid_conference.name
- patch admin_conferences_conference_url(@conference), params: { conference: attributes }
+ patch admin_conferences_conference_url(@conference), params: { conference: { start_date: nil, finish_date: nil, name: nil } }
assert_response :success
assert_not_equal 'Conference saved', flash[:success]
end
test 'should fail to update invalid conference with remote form' do
- attributes = @invalid_conference.attributes
- attributes[:start_date] = @invalid_conference.start_date
- attributes[:finish_date] = @invalid_conference.finish_date
- attributes[:name] = @invalid_conference.name
- patch admin_conferences_conference_url(@conference), params: { conference: attributes }, as: :turbo_stream
+ patch admin_conferences_conference_url(@conference),
+ params: { conference: { start_date: nil, finish_date: nil, name: nil } },
+ as: :turbo_stream
assert_response :success
assert_not_equal 'Conference saved', flash[:success]
end
+ test 'should update conference in locale' do
+ assert_changes -> { @conference.reload.name(locale: :en) }, to: 'MALT' do
+ patch admin_conferences_conference_url(@conference), params: { conference: { name: 'MALT' }, locale: :en }
+ assert_redirected_to admin_conferences_conferences_url
+ assert_equal 'Conference saved', flash[:success]
+ end
+ assert_not_equal 'MALT', @conference.reload.name
+ end
+
+ test 'should update conference in locale with remote form' do
+ assert_changes -> { @conference.reload.name(locale: :en) }, to: 'MALT' do
+ patch admin_conferences_conference_url(@conference), params: { conference: { name: 'MALT' }, locale: :en }, as: :turbo_stream
+ assert_redirected_to admin_conferences_conferences_url
+ assert_equal 'Conference saved', flash[:success]
+ end
+ assert_not_equal 'MALT', @conference.reload.name
+ end
+
test 'should destroy conference' do
assert_difference 'Conference.count', -1 do
delete admin_conferences_conference_url(@empty_conference)
@@ -178,51 +197,89 @@ class ConferencesControllerTest < ActionDispatch::IntegrationTest # rubocop:disa
end
test 'should save generic part' do
- attributes = @conference.attributes
- attributes[:start_date] = @conference.start_date
- attributes[:finish_date] = @conference.finish_date
- attributes[:name] = @conference.name
- attributes[:'en-GB_content_attributes'] = [
- { title: 'Submission text', name: 'submission_text', content: 'Dolor sit amen', type: 'Spina::Parts::Line' }
- ]
- assert_changes -> { @conference.reload.content(:submission_text) }, from: 'Lorem ipsum', to: 'Dolor sit amen' do
- patch admin_conferences_conference_url(@conference), params: { conference: attributes }
+ assert_changes -> { @conference.reload.content(:submission_text) }, to: 'Dolor sit amen' do
+ patch admin_conferences_conference_url(@conference),
+ params: { conference: {
+ 'en-GB_content_attributes': [
+ { title: 'Submission text', name: 'submission_text', content: 'Dolor sit amen', type: 'Spina::Parts::Line' }
+ ]
+ } }
+ end
+ end
+
+ test 'should save generic part with remote form' do
+ assert_changes -> { @conference.reload.content(:submission_text) }, to: 'Dolor sit amen' do
+ patch admin_conferences_conference_url(@conference),
+ as: :turbo_stream,
+ params: { conference: {
+ 'en-GB_content_attributes': [
+ { title: 'Submission text', name: 'submission_text', content: 'Dolor sit amen', type: 'Spina::Parts::Line' }
+ ]
+ } }
end
end
test 'should save generic structure part' do
- attributes = @conference.attributes
- attributes[:start_date] = @conference.start_date
- attributes[:finish_date] = @conference.finish_date
- attributes[:name] = @conference.name
- attributes[:'en-GB_content_attributes'] = [
- { title: 'Sponsors', name: 'sponsors', type: 'Spina::Parts::Repeater', content_attributes: [
- { title: 'Sponsors', name: 'sponsors', parts_attributes: [
- { title: 'Name', name: 'name', content: 'Another sponsor', type: 'Spina::Parts::Line' }
- ] }
- ] }
- ]
- assert_changes -> { @conference.reload.content(:sponsors).first.content('name') }, from: 'Some sponsor', to: 'Another sponsor' do
- patch admin_conferences_conference_url(@conference), params: { conference: attributes }, as: :turbo_stream
+ assert_changes -> { @conference.reload.content(:sponsors).first.content('name') }, to: 'Another sponsor' do
+ patch admin_conferences_conference_url(@conference),
+ params: { conference: {
+ 'en-GB_content_attributes': [
+ { title: 'Sponsors', name: 'sponsors', type: 'Spina::Parts::Repeater', content_attributes: [
+ { title: 'Sponsors', name: 'sponsors', parts_attributes: [
+ { title: 'Name', name: 'name', content: 'Another sponsor', type: 'Spina::Parts::Line' }
+ ] }
+ ] }
+ ]
+ } }
+ end
+ end
+
+ test 'should save generic structure part with remote form' do
+ assert_changes -> { @conference.reload.content(:sponsors).first.content('name') }, to: 'Another sponsor' do
+ patch admin_conferences_conference_url(@conference),
+ as: :turbo_stream,
+ params: { conference: {
+ 'en-GB_content_attributes': [
+ { title: 'Sponsors', name: 'sponsors', type: 'Spina::Parts::Repeater', content_attributes: [
+ { title: 'Sponsors', name: 'sponsors', parts_attributes: [
+ { title: 'Name', name: 'name', content: 'Another sponsor', type: 'Spina::Parts::Line' }
+ ] }
+ ] }
+ ]
+ } }
end
end
test 'should save structure part image' do
- attributes = @conference.attributes
- attributes[:start_date] = @conference.start_date
- attributes[:finish_date] = @conference.finish_date
- attributes[:name] = @conference.name
- attributes[:'en-GB_content_attributes'] = [
- { title: 'Sponsors', name: 'sponsors', type: 'Spina::Parts::Repeater', content_attributes: [
- { title: 'Sponsors', name: 'sponsors', parts_attributes: [
- { title: 'Logo', name: 'logo', type: 'Spina::Parts::Image', image_id: @rovinj_image.id, filename: 'logo.jpeg',
- signed_blob_id: '', alt: 'Logo' }
- ] }
- ] }
- ]
- assert_changes -> { @conference.reload.content(:sponsors).first.content(:logo).spina_image },
- from: @logo, to: @rovinj_image do
- patch admin_conferences_conference_url(@conference), params: { conference: attributes }, as: :turbo_stream
+ assert_changes -> { @conference.reload.content(:sponsors).first.content(:logo).spina_image }, to: @rovinj_image do
+ patch admin_conferences_conference_url(@conference),
+ params: { conference: {
+ 'en-GB_content_attributes': [
+ { title: 'Sponsors', name: 'sponsors', type: 'Spina::Parts::Repeater', content_attributes: [
+ { title: 'Sponsors', name: 'sponsors', parts_attributes: [
+ { title: 'Logo', name: 'logo', type: 'Spina::Parts::Image', image_id: @rovinj_image.id, filename: 'logo.jpeg',
+ signed_blob_id: '', alt: 'Logo' }
+ ] }
+ ] }
+ ]
+ } }
+ end
+ end
+
+ test 'should save structure part image with remote form' do
+ assert_changes -> { @conference.reload.content(:sponsors).first.content(:logo).spina_image }, to: @rovinj_image do
+ patch admin_conferences_conference_url(@conference),
+ as: :turbo_stream,
+ params: { conference: {
+ 'en-GB_content_attributes': [
+ { title: 'Sponsors', name: 'sponsors', type: 'Spina::Parts::Repeater', content_attributes: [
+ { title: 'Sponsors', name: 'sponsors', parts_attributes: [
+ { title: 'Logo', name: 'logo', type: 'Spina::Parts::Image', image_id: @rovinj_image.id, filename: 'logo.jpeg',
+ signed_blob_id: '', alt: 'Logo' }
+ ] }
+ ] }
+ ]
+ } }
end
end
diff --git a/test/controllers/spina/admin/conferences/delegates_controller_test.rb b/test/controllers/spina/admin/conferences/delegates_controller_test.rb
index 8649f39f..2cff0951 100644
--- a/test/controllers/spina/admin/conferences/delegates_controller_test.rb
+++ b/test/controllers/spina/admin/conferences/delegates_controller_test.rb
@@ -10,7 +10,6 @@ class DelegatesControllerTest < ActionDispatch::IntegrationTest # rubocop:disabl
setup do
@delegate = spina_admin_conferences_delegates :joe_bloggs
- @invalid_delegate = Delegate.new
@user = spina_users :joe
post admin_sessions_url, params: { email: @user.email, password: 'password' }
end
@@ -42,79 +41,181 @@ class DelegatesControllerTest < ActionDispatch::IntegrationTest # rubocop:disabl
end
end
+ test 'should get edit in locale' do
+ get edit_admin_conferences_delegate_url(@delegate, locale: :en)
+ assert_response :success
+ assert_select '#conferences tbody > tr' do |table_rows|
+ table_rows.each { |row| assert_select row, 'td', 5 }
+ end
+ assert_select '#presentations tbody > tr' do |table_rows|
+ table_rows.each { |row| assert_select row, 'td', 4 }
+ end
+ end
+
test 'should create delegate' do
- attributes = @delegate.attributes
- attributes[:conference_ids] = @delegate.conference_ids
assert_difference 'Delegate.count' do
- post admin_conferences_delegates_url, params: { delegate: attributes }
+ post admin_conferences_delegates_url,
+ params: { delegate: { first_name: 'Mo',
+ last_name: 'Boggs',
+ institution_id: ActiveRecord::FixtureSet.identify(:university_of_shangri_la),
+ email_address: 'noone@noaddress.com',
+ url: 'https://www.boggs.com',
+ conference_ids: [ActiveRecord::FixtureSet.identify(:university_of_shangri_la_2018)],
+ dietary_requirement_ids: [ActiveRecord::FixtureSet.identify(:pescetarian)] } }
end
assert_redirected_to admin_conferences_delegates_url
assert_equal 'Delegate saved', flash[:success]
+ assert_not_nil Delegate.joins(:conferences, :dietary_requirements)
+ .find_by(first_name: 'Mo',
+ last_name: 'Boggs',
+ institution: ActiveRecord::FixtureSet.identify(:university_of_shangri_la),
+ email_address: 'noone@noaddress.com',
+ url: 'https://www.boggs.com',
+ conferences: { id: ActiveRecord::FixtureSet.identify(:university_of_shangri_la_2018) },
+ dietary_requirements: { id: ActiveRecord::FixtureSet.identify(:pescetarian) })
end
test 'should create delegate with remote form' do
- attributes = @delegate.attributes
- attributes[:conference_ids] = @delegate.conference_ids
assert_difference 'Delegate.count' do
- post admin_conferences_delegates_url, params: { delegate: attributes }, as: :turbo_stream
+ post admin_conferences_delegates_url,
+ params: { delegate: { first_name: 'Mo',
+ last_name: 'Boggs',
+ institution_id: ActiveRecord::FixtureSet.identify(:university_of_shangri_la),
+ email_address: 'noone@noaddress.com',
+ url: 'https://www.boggs.com',
+ conference_ids: [ActiveRecord::FixtureSet.identify(:university_of_shangri_la_2018)],
+ dietary_requirement_ids: [ActiveRecord::FixtureSet.identify(:pescetarian)] } },
+ as: :turbo_stream
end
assert_redirected_to admin_conferences_delegates_url
assert_equal 'Delegate saved', flash[:success]
+ assert_not_nil Delegate.joins(:conferences, :dietary_requirements)
+ .find_by(first_name: 'Mo',
+ last_name: 'Boggs',
+ institution: ActiveRecord::FixtureSet.identify(:university_of_shangri_la),
+ email_address: 'noone@noaddress.com',
+ url: 'https://www.boggs.com',
+ conferences: { id: ActiveRecord::FixtureSet.identify(:university_of_shangri_la_2018) },
+ dietary_requirements: { id: ActiveRecord::FixtureSet.identify(:pescetarian) })
end
test 'should fail to create invalid delegate' do
- attributes = @invalid_delegate.attributes
- attributes[:conference_ids] = @invalid_delegate.conference_ids
assert_no_difference 'Delegate.count' do
- post admin_conferences_delegates_url, params: { delegate: attributes }
+ post admin_conferences_delegates_url,
+ params: { delegate: { first_name: nil,
+ last_name: nil,
+ institution_id: nil,
+ email_address: nil,
+ url: nil,
+ conference_ids: [],
+ dietary_requirement_ids: [] } }
end
assert_response :success
assert_not_equal 'Delegate saved', flash[:success]
end
test 'should fail to create invalid delegate with remote form' do
- attributes = @invalid_delegate.attributes
- attributes[:conference_ids] = @invalid_delegate.conference_ids
assert_no_difference 'Delegate.count' do
- post admin_conferences_delegates_url, params: { delegate: attributes }, as: :turbo_stream
+ post admin_conferences_delegates_url,
+ params: { delegate: { first_name: nil,
+ last_name: nil,
+ institution_id: nil,
+ email_address: nil,
+ url: nil,
+ conference_ids: [],
+ dietary_requirement_ids: [] } },
+ as: :turbo_stream
end
assert_response :success
assert_not_equal 'Delegate saved', flash[:success]
end
test 'should update delegate' do
- attributes = @delegate.attributes
- attributes[:conference_ids] = @delegate.conference_ids
- patch admin_conferences_delegate_url(@delegate), params: { delegate: attributes }
+ patch admin_conferences_delegate_url(@delegate),
+ params: { delegate: { first_name: 'Mo',
+ last_name: 'Boggs',
+ institution_id: ActiveRecord::FixtureSet.identify(:university_of_shangri_la),
+ email_address: 'noone@noaddress.com',
+ url: 'https://www.boggs.com',
+ conference_ids: [ActiveRecord::FixtureSet.identify(:university_of_shangri_la_2018)],
+ dietary_requirement_ids: [ActiveRecord::FixtureSet.identify(:pescetarian)] } }
assert_redirected_to admin_conferences_delegates_url
assert_equal 'Delegate saved', flash[:success]
+ assert_not_nil Delegate.joins(:conferences, :dietary_requirements)
+ .find_by(id: @delegate.id,
+ first_name: 'Mo',
+ last_name: 'Boggs',
+ institution: ActiveRecord::FixtureSet.identify(:university_of_shangri_la),
+ email_address: 'noone@noaddress.com',
+ url: 'https://www.boggs.com',
+ conferences: { id: ActiveRecord::FixtureSet.identify(:university_of_shangri_la_2018) },
+ dietary_requirements: { id: ActiveRecord::FixtureSet.identify(:pescetarian) })
end
test 'should update delegate with remote form' do
- attributes = @delegate.attributes
- attributes[:conference_ids] = @delegate.conference_ids
- patch admin_conferences_delegate_url(@delegate), params: { delegate: attributes },
- as: :turbo_stream
+ patch admin_conferences_delegate_url(@delegate),
+ params: { delegate: { first_name: 'Mo',
+ last_name: 'Boggs',
+ institution_id: ActiveRecord::FixtureSet.identify(:university_of_shangri_la),
+ email_address: 'noone@noaddress.com',
+ url: 'https://www.boggs.com',
+ conference_ids: [ActiveRecord::FixtureSet.identify(:university_of_shangri_la_2018)],
+ dietary_requirement_ids: [ActiveRecord::FixtureSet.identify(:pescetarian)] } },
+ as: :turbo_stream
assert_redirected_to admin_conferences_delegates_url
assert_equal 'Delegate saved', flash[:success]
+ assert_not_nil Delegate.joins(:conferences, :dietary_requirements)
+ .find_by(id: @delegate.id,
+ first_name: 'Mo',
+ last_name: 'Boggs',
+ institution: ActiveRecord::FixtureSet.identify(:university_of_shangri_la),
+ email_address: 'noone@noaddress.com',
+ url: 'https://www.boggs.com',
+ conferences: { id: ActiveRecord::FixtureSet.identify(:university_of_shangri_la_2018) },
+ dietary_requirements: { id: ActiveRecord::FixtureSet.identify(:pescetarian) })
end
test 'should fail to update invalid delegate' do
- attributes = @invalid_delegate.attributes
- attributes[:conference_ids] = @invalid_delegate.conference_ids
- patch admin_conferences_delegate_url(@delegate), params: { delegate: attributes }
+ patch admin_conferences_delegate_url(@delegate),
+ params: { delegate: { first_name: nil,
+ last_name: nil,
+ institution_id: nil,
+ email_address: nil,
+ url: nil,
+ conference_ids: [],
+ dietary_requirement_ids: [] } }
assert_response :success
assert_not_equal 'Delegate saved', flash[:success]
end
test 'should fail to update invalid delegate with remote form' do
- attributes = @invalid_delegate.attributes
- attributes[:conference_ids] = @invalid_delegate.conference_ids
- patch admin_conferences_delegate_url(@delegate), params: { delegate: attributes }, as: :turbo_stream
+ patch admin_conferences_delegate_url(@delegate),
+ params: { delegate: { first_name: nil,
+ last_name: nil,
+ institution_id: nil,
+ email_address: nil,
+ url: nil,
+ conference_ids: [],
+ dietary_requirement_ids: [] } },
+ as: :turbo_stream
assert_response :success
assert_not_equal 'Delegate saved', flash[:success]
end
+ test 'should update delegate in locale' do
+ patch admin_conferences_delegate_url(@delegate),
+ params: { delegate: @delegate.attributes.merge(conference_ids: @delegate.conference_ids), locale: :en }
+ assert_redirected_to admin_conferences_delegates_url
+ assert_equal 'Delegate saved', flash[:success]
+ end
+
+ test 'should update delegate in locale with remote form' do
+ patch admin_conferences_delegate_url(@delegate),
+ params: { delegate: @delegate.attributes.merge(conference_ids: @delegate.conference_ids), locale: :en }, as: :turbo_stream
+ assert_redirected_to admin_conferences_delegates_url
+ assert_equal 'Delegate saved', flash[:success]
+ end
+
test 'should destroy delegate' do
assert_difference 'Delegate.count', -1 do
delete admin_conferences_delegate_url(@delegate)
diff --git a/test/controllers/spina/admin/conferences/dietary_requirements_controller_test.rb b/test/controllers/spina/admin/conferences/dietary_requirements_controller_test.rb
index ad77e506..a7e454b0 100644
--- a/test/controllers/spina/admin/conferences/dietary_requirements_controller_test.rb
+++ b/test/controllers/spina/admin/conferences/dietary_requirements_controller_test.rb
@@ -11,7 +11,6 @@ class DietaryRequirementsControllerTest < ActionDispatch::IntegrationTest # rubo
setup do
@dietary_requirement = spina_admin_conferences_dietary_requirements :pescetarian
- @invalid_dietary_requirement = DietaryRequirement.new
@user = spina_users :joe
post admin_sessions_url, params: { email: @user.email, password: 'password' }
end
@@ -37,82 +36,96 @@ class DietaryRequirementsControllerTest < ActionDispatch::IntegrationTest # rubo
end
end
+ test 'should get edit in locale' do
+ get edit_admin_conferences_dietary_requirement_url(@dietary_requirement, locale: :en)
+ assert_response :success
+ assert_select('#delegates tbody > tr') do |table_rows|
+ table_rows.each { |row| assert_select row, 'td', 4 }
+ end
+ end
+
test 'should create dietary requirement' do
- attributes = @dietary_requirement.attributes
- attributes[:name] = @dietary_requirement.name
assert_difference 'DietaryRequirement.count' do
- post admin_conferences_dietary_requirements_url, params: { dietary_requirement: attributes }
+ post admin_conferences_dietary_requirements_url, params: { dietary_requirement: { name: 'Carnivore' } }
end
assert_redirected_to admin_conferences_dietary_requirements_url
assert_equal 'Dietary requirement saved', flash[:success]
+ assert_not_nil DietaryRequirement.i18n.find_by(name: 'Carnivore')
end
test 'should create dietary requirement with remote form' do
- attributes = @dietary_requirement.attributes
- attributes[:name] = @dietary_requirement.name
assert_difference 'DietaryRequirement.count' do
- post admin_conferences_dietary_requirements_url, params: { dietary_requirement: attributes }, as: :turbo_stream
+ post admin_conferences_dietary_requirements_url, params: { dietary_requirement: { name: 'Carnivore' } }, as: :turbo_stream
end
assert_redirected_to admin_conferences_dietary_requirements_url
assert_equal 'Dietary requirement saved', flash[:success]
+ assert_not_nil DietaryRequirement.i18n.find_by(name: 'Carnivore')
end
test 'should fail to create invalid dietary requirement' do
- attributes = @invalid_dietary_requirement.attributes
- attributes[:name] = @invalid_dietary_requirement.name
assert_no_difference 'DietaryRequirement.count' do
- post admin_conferences_dietary_requirements_url, params: { dietary_requirement: attributes }
+ post admin_conferences_dietary_requirements_url, params: { dietary_requirement: { name: nil } }
end
assert_response :success
assert_not_equal 'Dietary requirement saved', flash[:success]
end
test 'should fail to create invalid dietary requirement with remote form' do
- attributes = @invalid_dietary_requirement.attributes
- attributes[:name] = @invalid_dietary_requirement.name
assert_no_difference 'DietaryRequirement.count' do
- post admin_conferences_dietary_requirements_url, params: { dietary_requirement: attributes }, as: :turbo_stream
+ post admin_conferences_dietary_requirements_url, params: { dietary_requirement: { name: nil } }, as: :turbo_stream
end
assert_response :success
assert_not_equal 'Dietary requirement saved', flash[:success]
end
test 'should update dietary requirement' do
- attributes = @dietary_requirement.attributes
- attributes[:name] = @dietary_requirement.name
- patch admin_conferences_dietary_requirement_url(@dietary_requirement),
- params: { dietary_requirement: attributes }
+ patch admin_conferences_dietary_requirement_url(@dietary_requirement), params: { dietary_requirement: { name: 'Carnivore' } }
assert_redirected_to admin_conferences_dietary_requirements_url
assert_equal 'Dietary requirement saved', flash[:success]
+ assert_not_nil DietaryRequirement.i18n.find_by(id: @dietary_requirement.id, name: 'Carnivore')
end
test 'should update dietary requirement with remote form' do
- attributes = @dietary_requirement.attributes
- attributes[:name] = @dietary_requirement.name
patch admin_conferences_dietary_requirement_url(@dietary_requirement),
- params: { dietary_requirement: attributes }, as: :turbo_stream
+ params: { dietary_requirement: { name: 'Carnivore' } }, as: :turbo_stream
assert_redirected_to admin_conferences_dietary_requirements_url
assert_equal 'Dietary requirement saved', flash[:success]
+ assert_not_nil DietaryRequirement.i18n.find_by(id: @dietary_requirement.id, name: 'Carnivore')
end
test 'should fail to update invalid dietary requirement' do
- attributes = @invalid_dietary_requirement.attributes
- attributes[:name] = @invalid_dietary_requirement.name
- patch admin_conferences_dietary_requirement_url(@dietary_requirement),
- params: { dietary_requirement: attributes }
+ patch admin_conferences_dietary_requirement_url(@dietary_requirement), params: { dietary_requirement: { name: nil } }
assert_response :success
assert_not_equal 'Dietary requirement saved', flash[:success]
end
test 'should fail to update invalid dietary requirement with remote form' do
- attributes = @invalid_dietary_requirement.attributes
- attributes[:name] = @invalid_dietary_requirement.name
patch admin_conferences_dietary_requirement_url(@dietary_requirement),
- params: { dietary_requirement: attributes }, as: :turbo_stream
+ params: { dietary_requirement: { name: nil } }, as: :turbo_stream
assert_response :success
assert_not_equal 'Dietary requirement saved', flash[:success]
end
+ test 'should update dietary requirement in locale' do
+ assert_changes -> { @dietary_requirement.reload.name(locale: :en) }, to: 'Pescatarian' do
+ patch admin_conferences_dietary_requirement_url(@dietary_requirement),
+ params: { dietary_requirement: { name: 'Pescatarian' }, locale: :en }
+ assert_redirected_to admin_conferences_dietary_requirements_url
+ assert_equal 'Dietary requirement saved', flash[:success]
+ end
+ assert_not_equal 'Pescatarian', @dietary_requirement.reload.name
+ end
+
+ test 'should update dietary requirement in locale with remote form' do
+ assert_changes -> { @dietary_requirement.reload.name(locale: :en) }, to: 'Pescatarian' do
+ patch admin_conferences_dietary_requirement_url(@dietary_requirement),
+ params: { dietary_requirement: { name: 'Pescatarian' }, locale: :en }, as: :turbo_stream
+ assert_redirected_to admin_conferences_dietary_requirements_url
+ assert_equal 'Dietary requirement saved', flash[:success]
+ end
+ assert_not_equal 'Pescatarian', @dietary_requirement.reload.name
+ end
+
test 'should destroy dietary requirement' do
assert_difference 'DietaryRequirement.count', -1 do
delete admin_conferences_dietary_requirement_url(@dietary_requirement)
diff --git a/test/controllers/spina/admin/conferences/institutions_controller_test.rb b/test/controllers/spina/admin/conferences/institutions_controller_test.rb
index 18817a76..2c5dafd3 100644
--- a/test/controllers/spina/admin/conferences/institutions_controller_test.rb
+++ b/test/controllers/spina/admin/conferences/institutions_controller_test.rb
@@ -10,7 +10,6 @@ class InstitutionsControllerTest < ActionDispatch::IntegrationTest # rubocop:dis
setup do
@institution = spina_admin_conferences_institutions :university_of_atlantis
- @invalid_institution = Institution.new
@empty_institution = spina_admin_conferences_institutions :empty_institution
@user = spina_users :joe
post admin_sessions_url, params: { email: @user.email, password: 'password' }
@@ -43,86 +42,122 @@ class InstitutionsControllerTest < ActionDispatch::IntegrationTest # rubocop:dis
end
end
+ test 'should get edit in locale' do
+ get edit_admin_conferences_institution_url(@institution, locale: :en)
+ assert_response :success
+ assert_select('#delegates tbody > tr') do |table_rows|
+ table_rows.each { |row| assert_select row, 'td', 4 }
+ end
+ assert_select('#rooms tbody > tr') do |table_rows|
+ table_rows.each { |row| assert_select row, 'td', 4 }
+ end
+ end
+
test 'should create institution' do
- attributes = @institution.attributes
- attributes[:name] = @institution.name
- attributes[:city] = @institution.city
assert_difference 'Institution.count' do
- post admin_conferences_institutions_url, params: { institution: attributes }
+ post admin_conferences_institutions_url,
+ params: { institution: { logo_id: ActiveRecord::FixtureSet.identify(:dubrovnik),
+ name: 'University of Dubrovnik',
+ city: 'Dubrovnik' } }
end
assert_redirected_to admin_conferences_institutions_url
assert_equal 'Institution saved', flash[:success]
+ assert_not_nil Institution.i18n.find_by(logo: ActiveRecord::FixtureSet.identify(:dubrovnik),
+ name: 'University of Dubrovnik',
+ city: 'Dubrovnik')
end
test 'should create institution with remote form' do
- attributes = @institution.attributes
- attributes[:name] = @institution.name
- attributes[:city] = @institution.city
assert_difference 'Institution.count' do
- post admin_conferences_institutions_url, params: { institution: attributes }, as: :turbo_stream
+ post admin_conferences_institutions_url,
+ params: { institution: { logo_id: ActiveRecord::FixtureSet.identify(:dubrovnik),
+ name: 'University of Dubrovnik',
+ city: 'Dubrovnik' } },
+ as: :turbo_stream
end
assert_redirected_to admin_conferences_institutions_url
assert_equal 'Institution saved', flash[:success]
+ assert_not_nil Institution.i18n.find_by(logo: ActiveRecord::FixtureSet.identify(:dubrovnik),
+ name: 'University of Dubrovnik',
+ city: 'Dubrovnik')
end
test 'should fail to create invalid institution' do
- attributes = @invalid_institution.attributes
- attributes[:name] = @invalid_institution.name
- attributes[:city] = @invalid_institution.city
assert_no_difference 'Institution.count' do
- post admin_conferences_institutions_url, params: { institution: attributes }
+ post admin_conferences_institutions_url, params: { institution: { logo_id: nil, name: nil, city: nil } }
end
assert_response :success
assert_not_equal 'Institution saved', flash[:success]
end
test 'should fail to create invalid institution with remote form' do
- attributes = @invalid_institution.attributes
- attributes[:name] = @invalid_institution.name
- attributes[:city] = @invalid_institution.city
assert_no_difference 'Institution.count' do
- post admin_conferences_institutions_url, params: { institution: attributes }, as: :turbo_stream
+ post admin_conferences_institutions_url, params: { institution: { logo_id: nil, name: nil, city: nil } }, as: :turbo_stream
end
assert_response :success
assert_not_equal 'Institution saved', flash[:success]
end
test 'should update institution' do
- attributes = @institution.attributes
- attributes[:name] = @institution.name
- attributes[:city] = @institution.city
- patch admin_conferences_institution_url(@institution), params: { institution: attributes }
+ patch admin_conferences_institution_url(@institution),
+ params: { institution: { logo_id: ActiveRecord::FixtureSet.identify(:dubrovnik),
+ name: 'University of Dubrovnik',
+ city: 'Dubrovnik' } }
assert_redirected_to admin_conferences_institutions_url
assert_equal 'Institution saved', flash[:success]
+ assert_not_nil Institution.i18n.find_by(id: @institution.id,
+ logo: ActiveRecord::FixtureSet.identify(:dubrovnik),
+ name: 'University of Dubrovnik',
+ city: 'Dubrovnik')
end
test 'should update institution with remote form' do
- attributes = @institution.attributes
- attributes[:name] = @institution.name
- attributes[:city] = @institution.city
- patch admin_conferences_institution_url(@institution), params: { institution: attributes }, as: :turbo_stream
+ patch admin_conferences_institution_url(@institution),
+ params: { institution: { logo_id: ActiveRecord::FixtureSet.identify(:dubrovnik),
+ name: 'University of Dubrovnik',
+ city: 'Dubrovnik' } },
+ as: :turbo_stream
assert_redirected_to admin_conferences_institutions_url
assert_equal 'Institution saved', flash[:success]
+ assert_not_nil Institution.i18n.find_by(id: @institution.id,
+ logo: ActiveRecord::FixtureSet.identify(:dubrovnik),
+ name: 'University of Dubrovnik',
+ city: 'Dubrovnik')
end
test 'should fail to update invalid institution' do
- attributes = @invalid_institution.attributes
- attributes[:name] = @invalid_institution.name
- attributes[:city] = @invalid_institution.city
- patch admin_conferences_institution_url(@institution), params: { institution: attributes }
+ patch admin_conferences_institution_url(@institution), params: { institution: { logo_id: nil, name: nil, city: nil } }
assert_response :success
assert_not_equal 'Institution saved', flash[:success]
end
test 'should fail to update invalid institution with remote form' do
- attributes = @invalid_institution.attributes
- attributes[:name] = @invalid_institution.name
- attributes[:city] = @invalid_institution.city
- patch admin_conferences_institution_url(@institution), params: { institution: attributes }, as: :turbo_stream
+ patch admin_conferences_institution_url(@institution),
+ params: { institution: { logo_id: nil, name: nil, city: nil } },
+ as: :turbo_stream
assert_response :success
assert_not_equal 'Institution saved', flash[:success]
end
+ test 'should update institution in locale' do
+ assert_changes -> { @institution.reload.name(locale: :en) }, to: 'Atlantis University' do
+ patch admin_conferences_institution_url(@institution), params: { institution: { name: 'Atlantis University' }, locale: :en }
+ assert_redirected_to admin_conferences_institutions_url
+ assert_equal 'Institution saved', flash[:success]
+ end
+ assert_not_equal 'Atlantis University', @institution.reload.name
+ end
+
+ test 'should update institution in locale with remote form' do
+ assert_changes -> { @institution.reload.name(locale: :en) }, to: 'Atlantis University' do
+ patch admin_conferences_institution_url(@institution),
+ params: { institution: { name: 'Atlantis University' }, locale: :en }, as: :turbo_stream
+ assert_redirected_to admin_conferences_institutions_url
+ assert_equal 'Institution saved', flash[:success]
+ end
+ assert_not_equal 'Atlantis University', @institution.reload.name
+ end
+
test 'should destroy institution' do
assert_difference 'Institution.count', -1 do
delete admin_conferences_institution_url(@empty_institution)
diff --git a/test/controllers/spina/admin/conferences/presentation_attachment_types_controller_test.rb b/test/controllers/spina/admin/conferences/presentation_attachment_types_controller_test.rb
index 40dda5e5..9e76e6c5 100644
--- a/test/controllers/spina/admin/conferences/presentation_attachment_types_controller_test.rb
+++ b/test/controllers/spina/admin/conferences/presentation_attachment_types_controller_test.rb
@@ -11,7 +11,6 @@ class PresentationAttachmentTypesControllerTest < ActionDispatch::IntegrationTes
setup do
@presentation_attachment_type = spina_admin_conferences_presentation_attachment_types :slides
- @invalid_presentation_attachment_type = PresentationAttachmentType.new
@user = spina_users :joe
post admin_sessions_url, params: { email: @user.email, password: 'password' }
end
@@ -31,84 +30,97 @@ class PresentationAttachmentTypesControllerTest < ActionDispatch::IntegrationTes
assert_response :success
end
+ test 'should get edit in locale' do
+ get edit_admin_conferences_presentation_attachment_type_url(@presentation_attachment_type, locale: :en)
+ assert_response :success
+ end
+
test 'should create presentation attachment type' do
- attributes = @presentation_attachment_type.attributes
- attributes[:name] = @presentation_attachment_type.name
assert_difference 'PresentationAttachmentType.count' do
- post admin_conferences_presentation_attachment_types_url, params: { presentation_attachment_type: attributes }
+ post admin_conferences_presentation_attachment_types_url, params: { presentation_attachment_type: { name: 'Appendices' } }
end
assert_redirected_to admin_conferences_presentation_attachment_types_url
assert_equal 'Presentation attachment type saved', flash[:success]
+ assert_not_nil PresentationAttachmentType.i18n.find_by(name: 'Appendices')
end
test 'should create presentation attachment type with remote form' do
- attributes = @presentation_attachment_type.attributes
- attributes[:name] = @presentation_attachment_type.name
assert_difference 'PresentationAttachmentType.count' do
post admin_conferences_presentation_attachment_types_url,
- params: { presentation_attachment_type: attributes }, as: :turbo_stream
+ params: { presentation_attachment_type: { name: 'Appendices' } }, as: :turbo_stream
end
assert_redirected_to admin_conferences_presentation_attachment_types_url
assert_equal 'Presentation attachment type saved', flash[:success]
+ assert_not_nil PresentationAttachmentType.i18n.find_by(name: 'Appendices')
end
test 'should fail to create invalid presentation attachment type' do
- attributes = @invalid_presentation_attachment_type.attributes
- attributes[:name] = @invalid_presentation_attachment_type.name
assert_no_difference 'PresentationAttachmentType.count' do
- post admin_conferences_presentation_attachment_types_url, params: { presentation_attachment_type: attributes }
+ post admin_conferences_presentation_attachment_types_url, params: { presentation_attachment_type: { name: nil } }
end
assert_response :success
assert_not_equal 'Presentation attachment type saved', flash[:success]
end
test 'should fail to create invalid presentation attachment type with remote form' do
- attributes = @invalid_presentation_attachment_type.attributes
- attributes[:name] = @invalid_presentation_attachment_type.name
assert_no_difference 'PresentationAttachmentType.count' do
post admin_conferences_presentation_attachment_types_url,
- params: { presentation_attachment_type: attributes }, as: :turbo_stream
+ params: { presentation_attachment_type: { name: nil } }, as: :turbo_stream
end
assert_response :success
assert_not_equal 'Presentation attachment type saved', flash[:success]
end
test 'should update presentation attachment type' do
- attributes = @presentation_attachment_type.attributes
- attributes[:name] = @presentation_attachment_type.name
patch admin_conferences_presentation_attachment_type_url(@presentation_attachment_type),
- params: { presentation_attachment_type: attributes }
+ params: { presentation_attachment_type: { name: 'Appendices' } }
assert_redirected_to admin_conferences_presentation_attachment_types_url
assert_equal 'Presentation attachment type saved', flash[:success]
+ assert_not_nil PresentationAttachmentType.i18n.find_by(id: @presentation_attachment_type.id, name: 'Appendices')
end
test 'should update presentation attachment type with remote form' do
- attributes = @presentation_attachment_type.attributes
- attributes[:name] = @presentation_attachment_type.name
patch admin_conferences_presentation_attachment_type_url(@presentation_attachment_type),
- params: { presentation_attachment_type: attributes }, as: :turbo_stream
+ params: { presentation_attachment_type: { name: 'Appendices' } }, as: :turbo_stream
assert_redirected_to admin_conferences_presentation_attachment_types_url
assert_equal 'Presentation attachment type saved', flash[:success]
+ assert_not_nil PresentationAttachmentType.i18n.find_by(id: @presentation_attachment_type.id, name: 'Appendices')
end
test 'should fail to update invalid presentation attachment type' do
- attributes = @invalid_presentation_attachment_type.attributes
- attributes[:name] = @invalid_presentation_attachment_type.name
patch admin_conferences_presentation_attachment_type_url(@presentation_attachment_type),
- params: { presentation_attachment_type: attributes }
+ params: { presentation_attachment_type: { name: nil } }
assert_response :success
assert_not_equal 'Presentation attachment type saved', flash[:success]
end
test 'should fail to update invalid presentation attachment type with remote form' do
- attributes = @invalid_presentation_attachment_type.attributes
- attributes[:name] = @invalid_presentation_attachment_type.name
patch admin_conferences_presentation_attachment_type_url(@presentation_attachment_type),
- params: { presentation_attachment_type: attributes }, as: :turbo_stream
+ params: { presentation_attachment_type: { name: nil } }, as: :turbo_stream
assert_response :success
assert_not_equal 'Presentation attachment type saved', flash[:success]
end
+ test 'should update presentation attachment type in locale' do
+ assert_changes -> { @presentation_attachment_type.reload.name(locale: :en) }, to: 'Overhead slides' do
+ patch admin_conferences_presentation_attachment_type_url(@presentation_attachment_type),
+ params: { presentation_attachment_type: { name: 'Overhead slides' }, locale: :en }
+ assert_redirected_to admin_conferences_presentation_attachment_types_url
+ assert_equal 'Presentation attachment type saved', flash[:success]
+ end
+ assert_not_equal 'overhead slides', @presentation_attachment_type.reload.name
+ end
+
+ test 'should update presentation attachment type in locale with remote form' do
+ assert_changes -> { @presentation_attachment_type.reload.name(locale: :en) }, to: 'Overhead slides' do
+ patch admin_conferences_presentation_attachment_type_url(@presentation_attachment_type),
+ params: { presentation_attachment_type: { name: 'Overhead slides' }, locale: :en }, as: :turbo_stream
+ assert_redirected_to admin_conferences_presentation_attachment_types_url
+ assert_equal 'Presentation attachment type saved', flash[:success]
+ end
+ assert_not_equal 'overhead slides', @presentation_attachment_type.reload.name
+ end
+
test 'should destroy presentation attachment type' do
assert_difference 'PresentationAttachmentType.count', -1 do
delete admin_conferences_presentation_attachment_type_url(@presentation_attachment_type)
diff --git a/test/controllers/spina/admin/conferences/presentation_types_controller_test.rb b/test/controllers/spina/admin/conferences/presentation_types_controller_test.rb
index 13919119..534990af 100644
--- a/test/controllers/spina/admin/conferences/presentation_types_controller_test.rb
+++ b/test/controllers/spina/admin/conferences/presentation_types_controller_test.rb
@@ -11,7 +11,6 @@ class PresentationTypesControllerTest < ActionDispatch::IntegrationTest # ruboco
setup do
@presentation_type = spina_admin_conferences_presentation_types :oral_1
- @invalid_presentation_type = PresentationType.new
@empty_presentation_type = spina_admin_conferences_presentation_types :empty_presentation_type
@user = spina_users :joe
post admin_sessions_url, params: { email: @user.email, password: 'password' }
@@ -44,15 +43,32 @@ class PresentationTypesControllerTest < ActionDispatch::IntegrationTest # ruboco
end
end
+ test 'should get edit in locale' do
+ get edit_admin_conferences_presentation_type_url(@presentation_type, locale: :en)
+ assert_response :success
+ assert_select '#presentations tbody > tr' do |table_rows|
+ table_rows.each { |row| assert_select row, 'td', 4 }
+ end
+ assert_select('#sessions tbody > tr') do |table_rows|
+ table_rows.each { |row| assert_select row, 'td', 4 }
+ end
+ end
+
test 'should create presentation type' do
attributes = @presentation_type.attributes
attributes[:minutes] = @presentation_type.minutes
attributes[:name] = @presentation_type.name
assert_difference 'PresentationType.count' do
- post admin_conferences_presentation_types_url, params: { presentation_type: attributes }
+ post admin_conferences_presentation_types_url,
+ params: { presentation_type: { minutes: 40,
+ conference_id: ActiveRecord::FixtureSet.identify(:university_of_shangri_la_2018),
+ name: 'Snail talk' } }
end
assert_redirected_to admin_conferences_presentation_types_url
assert_equal 'Presentation type saved', flash[:success]
+ assert_not_nil PresentationType.i18n.find_by(duration: 40.minutes,
+ conference: ActiveRecord::FixtureSet.identify(:university_of_shangri_la_2018),
+ name: 'Snail talk')
end
test 'should create presentation type with remote form' do
@@ -60,72 +76,98 @@ class PresentationTypesControllerTest < ActionDispatch::IntegrationTest # ruboco
attributes[:minutes] = @presentation_type.minutes
attributes[:name] = @presentation_type.name
assert_difference 'PresentationType.count' do
- post admin_conferences_presentation_types_url, params: { presentation_type: attributes }, as: :turbo_stream
+ post admin_conferences_presentation_types_url,
+ params: { presentation_type: { minutes: 40,
+ conference_id: ActiveRecord::FixtureSet.identify(:university_of_shangri_la_2018),
+ name: 'Snail talk' } },
+ as: :turbo_stream
end
assert_redirected_to admin_conferences_presentation_types_url
assert_equal 'Presentation type saved', flash[:success]
+ assert_not_nil PresentationType.i18n.find_by(duration: 40.minutes,
+ conference: ActiveRecord::FixtureSet.identify(:university_of_shangri_la_2018),
+ name: 'Snail talk')
end
test 'should fail to create invalid presentation type' do
- attributes = @invalid_presentation_type.attributes
- attributes[:minutes] = @invalid_presentation_type.minutes
- attributes[:name] = @invalid_presentation_type.name
assert_no_difference 'PresentationType.count' do
- post admin_conferences_presentation_types_url, params: { presentation_type: attributes }
+ post admin_conferences_presentation_types_url, params: { presentation_type: { minutes: nil, conference_id: nil, name: nil } }
end
assert_response :success
assert_not_equal 'Presentation type saved', flash[:success]
end
test 'should fail to create invalid presentation type with remote form' do
- attributes = @invalid_presentation_type.attributes
- attributes[:minutes] = @invalid_presentation_type.minutes
- attributes[:name] = @invalid_presentation_type.name
assert_no_difference 'PresentationType.count' do
- post admin_conferences_presentation_types_url, params: { presentation_type: attributes }, as: :turbo_stream
+ post admin_conferences_presentation_types_url,
+ params: { presentation_type: { minutes: nil, conference_id: nil, name: nil } },
+ as: :turbo_stream
end
assert_response :success
assert_not_equal 'Presentation type saved', flash[:success]
end
test 'should update presentation type' do
- attributes = @presentation_type.attributes
- attributes[:minutes] = @presentation_type.minutes
- attributes[:name] = @presentation_type.name
- patch admin_conferences_presentation_type_url(@presentation_type), params: { presentation_type: attributes }
+ patch admin_conferences_presentation_type_url(@presentation_type),
+ params: { presentation_type: { minutes: 40,
+ conference_id: ActiveRecord::FixtureSet.identify(:university_of_shangri_la_2018),
+ name: 'Snail talk' } }
assert_redirected_to admin_conferences_presentation_types_url
assert_equal 'Presentation type saved', flash[:success]
+ assert_not_nil PresentationType.i18n.find_by(id: @presentation_type.id,
+ duration: 40.minutes,
+ conference: ActiveRecord::FixtureSet.identify(:university_of_shangri_la_2018),
+ name: 'Snail talk')
end
test 'should update presentation type with remote form' do
- attributes = @presentation_type.attributes
- attributes[:minutes] = @presentation_type.minutes
- attributes[:name] = @presentation_type.name
patch admin_conferences_presentation_type_url(@presentation_type),
- params: { presentation_type: attributes }, as: :turbo_stream
+ params: { presentation_type: { minutes: 40,
+ conference_id: ActiveRecord::FixtureSet.identify(:university_of_shangri_la_2018),
+ name: 'Snail talk' } },
+ as: :turbo_stream
assert_redirected_to admin_conferences_presentation_types_url
assert_equal 'Presentation type saved', flash[:success]
+ assert_not_nil PresentationType.i18n.find_by(id: @presentation_type.id,
+ duration: 40.minutes,
+ conference: ActiveRecord::FixtureSet.identify(:university_of_shangri_la_2018),
+ name: 'Snail talk')
end
test 'should fail to update invalid presentation type' do
- attributes = @invalid_presentation_type.attributes
- attributes[:minutes] = @invalid_presentation_type.minutes
- attributes[:name] = @invalid_presentation_type.name
- patch admin_conferences_presentation_type_url(@presentation_type), params: { presentation_type: attributes }
+ patch admin_conferences_presentation_type_url(@presentation_type),
+ params: { presentation_type: { minutes: nil, conference_id: nil, name: nil } }
assert_response :success
assert_not_equal 'Presentation type saved', flash[:success]
end
test 'should fail to update invalid presentation type with remote form' do
- attributes = @invalid_presentation_type.attributes
- attributes[:minutes] = @invalid_presentation_type.minutes
- attributes[:name] = @invalid_presentation_type.name
patch admin_conferences_presentation_type_url(@presentation_type),
- params: { presentation_type: attributes }, as: :turbo_stream
+ params: { presentation_type: { minutes: nil, conference_id: nil, name: nil } },
+ as: :turbo_stream
assert_response :success
assert_not_equal 'Presentation type saved', flash[:success]
end
+ test 'should update presentation type in locale' do
+ assert_changes -> { @presentation_type.reload.name(locale: :en) }, to: 'Talk' do
+ patch admin_conferences_presentation_type_url(@presentation_type), params: { presentation_type: { name: 'Talk' }, locale: :en }
+ assert_redirected_to admin_conferences_presentation_types_url
+ assert_equal 'Presentation type saved', flash[:success]
+ end
+ assert_not_equal 'Talk', @presentation_type.reload.name
+ end
+
+ test 'should update presentation type in locale with remote form' do
+ assert_changes -> { @presentation_type.reload.name(locale: :en) }, to: 'Talk' do
+ patch admin_conferences_presentation_type_url(@presentation_type),
+ params: { presentation_type: { name: 'Talk' }, locale: :en }, as: :turbo_stream
+ assert_redirected_to admin_conferences_presentation_types_url
+ assert_equal 'Presentation type saved', flash[:success]
+ end
+ assert_not_equal 'Talk', @presentation_type.reload.name
+ end
+
test 'should destroy presentation type' do
assert_difference 'PresentationType.count', -1 do
delete admin_conferences_presentation_type_url(@empty_presentation_type)
diff --git a/test/controllers/spina/admin/conferences/presentations_controller_test.rb b/test/controllers/spina/admin/conferences/presentations_controller_test.rb
index b3a7abd6..54667b09 100644
--- a/test/controllers/spina/admin/conferences/presentations_controller_test.rb
+++ b/test/controllers/spina/admin/conferences/presentations_controller_test.rb
@@ -10,7 +10,6 @@ class PresentationsControllerTest < ActionDispatch::IntegrationTest # rubocop:di
setup do
@presentation = spina_admin_conferences_presentations :asymmetry_and_antisymmetry
- @invalid_presentation = Presentation.new
@user = spina_users :joe
post admin_sessions_url, params: { email: @user.email, password: 'password' }
end
@@ -36,111 +35,170 @@ class PresentationsControllerTest < ActionDispatch::IntegrationTest # rubocop:di
end
end
+ test 'should get edit in locale' do
+ get edit_admin_conferences_presentation_url(@presentation, locale: :en)
+ assert_response :success
+ assert_select('#presenters tbody > tr') do |table_rows|
+ table_rows.each { |row| assert_select row, 'td', 4 }
+ end
+ end
+
test 'should create presentation' do
- attributes = @presentation.attributes
- attributes[:session_id] = @presentation.session_id
- attributes[:presenter_ids] = @presentation.presenter_ids
- attributes[:start_time] = @presentation.start_time
- attributes[:date] = @presentation.date
- attributes[:title] = @presentation.title
- attributes[:abstract] = @presentation.abstract
assert_difference 'Presentation.count' do
- post admin_conferences_presentations_url, params: { presentation: attributes }
+ post admin_conferences_presentations_url,
+ params: { presentation: { presenter_ids: [ActiveRecord::FixtureSet.identify(:brandon_krapp)],
+ start_datetime: DateTime.parse('2017-04-08 10:00'),
+ session_id: ActiveRecord::FixtureSet.identify(:oral_1_lecture_block_3_uoa_2017),
+ title: 'The entire discussion of phonology in this book suffers from a fundamental ' \
+ 'theoretical inadequacy',
+ abstract: 'Dolor sit amen' } }
end
assert_redirected_to admin_conferences_presentations_url
assert_equal 'Presentation saved', flash[:success]
+ assert_not_nil Presentation.i18n
+ .joins(:presenters)
+ .find_by(presenters: { id: ActiveRecord::FixtureSet.identify(:brandon_krapp) },
+ start_datetime: DateTime.parse('2017-04-08 10:00'),
+ session: ActiveRecord::FixtureSet.identify(:oral_1_lecture_block_3_uoa_2017),
+ title: 'The entire discussion of phonology in this book suffers from a fundamental ' \
+ 'theoretical inadequacy',
+ abstract: 'Dolor sit amen')
end
test 'should create presentation with remote form' do
- attributes = @presentation.attributes
- attributes[:presenter_ids] = @presentation.presenter_ids
- attributes[:start_time] = @presentation.start_time
- attributes[:date] = @presentation.date
- attributes[:title] = @presentation.title
- attributes[:abstract] = @presentation.abstract
assert_difference 'Presentation.count' do
- post admin_conferences_presentations_url, params: { presentation: attributes }, as: :turbo_stream
+ post admin_conferences_presentations_url,
+ params: { presentation: { presenter_ids: [ActiveRecord::FixtureSet.identify(:brandon_krapp)],
+ start_datetime: DateTime.parse('2017-04-08 10:00'),
+ session_id: ActiveRecord::FixtureSet.identify(:oral_1_lecture_block_3_uoa_2017),
+ title: 'The entire discussion of phonology in this book suffers from a fundamental ' \
+ 'theoretical inadequacy',
+ abstract: 'Dolor sit amen' } },
+ as: :turbo_stream
end
assert_redirected_to admin_conferences_presentations_url
assert_equal 'Presentation saved', flash[:success]
+ assert_not_nil Presentation.i18n
+ .joins(:presenters)
+ .find_by(presenters: { id: ActiveRecord::FixtureSet.identify(:brandon_krapp) },
+ start_datetime: DateTime.parse('2017-04-08 10:00'),
+ session: ActiveRecord::FixtureSet.identify(:oral_1_lecture_block_3_uoa_2017),
+ title: 'The entire discussion of phonology in this book suffers from a fundamental ' \
+ 'theoretical inadequacy',
+ abstract: 'Dolor sit amen')
end
test 'should fail to create invalid presentation' do
- attributes = @invalid_presentation.attributes
- attributes[:presenter_ids] = @invalid_presentation.presenter_ids
- attributes[:start_time] = @invalid_presentation.start_time
- attributes[:date] = @invalid_presentation.date
- attributes[:title] = @invalid_presentation.title
- attributes[:abstract] = @invalid_presentation.abstract
assert_no_difference 'Presentation.count' do
- post admin_conferences_presentations_url, params: { presentation: attributes }
+ post admin_conferences_presentations_url,
+ params: { presentation: { presenter_ids: [], start_datetime: nil, session_id: nil, title: nil, abstract: nil } }
end
assert_response :success
assert_not_equal 'Presentation saved', flash[:success]
end
test 'should fail to create invalid presentation with remote form' do
- attributes = @invalid_presentation.attributes
- attributes[:presenter_ids] = @invalid_presentation.presenter_ids
- attributes[:start_time] = @invalid_presentation.start_time
- attributes[:date] = @invalid_presentation.date
- attributes[:title] = @invalid_presentation.title
- attributes[:abstract] = @invalid_presentation.abstract
assert_no_difference 'Presentation.count' do
- post admin_conferences_presentations_url, params: { presentation: attributes }, as: :turbo_stream
+ post admin_conferences_presentations_url,
+ params: { presentation: { presenter_ids: [], start_datetime: nil, session_id: nil, title: nil, abstract: nil } },
+ as: :turbo_stream
end
assert_response :success
assert_not_equal 'Presentation saved', flash[:success]
end
test 'should update presentation' do
- attributes = @presentation.attributes
- attributes[:presenter_ids] = @presentation.presenter_ids
- attributes[:start_time] = @presentation.start_time
- attributes[:date] = @presentation.date
- attributes[:title] = @presentation.title
- attributes[:abstract] = @presentation.abstract
- patch admin_conferences_presentation_url(@presentation), params: { presentation: attributes }
+ patch admin_conferences_presentation_url(@presentation),
+ params: { presentation: { presenter_ids: [ActiveRecord::FixtureSet.identify(:brandon_krapp)],
+ start_datetime: DateTime.parse('2017-04-08 10:00'),
+ session_id: ActiveRecord::FixtureSet.identify(:oral_1_lecture_block_3_uoa_2017),
+ title: 'The entire discussion of phonology in this book suffers from a fundamental ' \
+ 'theoretical inadequacy',
+ abstract: 'Dolor sit amen' } }
assert_redirected_to admin_conferences_presentations_url
assert_equal 'Presentation saved', flash[:success]
+ assert_not_nil Presentation.i18n
+ .joins(:presenters)
+ .find_by(id: @presentation.id,
+ presenters: { id: ActiveRecord::FixtureSet.identify(:brandon_krapp) },
+ start_datetime: DateTime.parse('2017-04-08 10:00'),
+ session: ActiveRecord::FixtureSet.identify(:oral_1_lecture_block_3_uoa_2017),
+ title: 'The entire discussion of phonology in this book suffers from a fundamental ' \
+ 'theoretical inadequacy',
+ abstract: 'Dolor sit amen')
end
test 'should update presentation with remote form' do
- attributes = @presentation.attributes
- attributes[:presenter_ids] = @presentation.presenter_ids
- attributes[:start_time] = @presentation.start_time
- attributes[:date] = @presentation.date
- attributes[:title] = @presentation.title
- attributes[:abstract] = @presentation.abstract
- patch admin_conferences_presentation_url(@presentation), params: { presentation: attributes }, as: :turbo_stream
+ patch admin_conferences_presentation_url(@presentation),
+ params: { presentation: { presenter_ids: [ActiveRecord::FixtureSet.identify(:brandon_krapp)],
+ start_datetime: DateTime.parse('2017-04-08 10:00'),
+ session_id: ActiveRecord::FixtureSet.identify(:oral_1_lecture_block_3_uoa_2017),
+ title: 'The entire discussion of phonology in this book suffers from a fundamental ' \
+ 'theoretical inadequacy',
+ abstract: 'Dolor sit amen' } },
+ as: :turbo_stream
assert_redirected_to admin_conferences_presentations_url
assert_equal 'Presentation saved', flash[:success]
+ assert_not_nil Presentation.i18n
+ .joins(:presenters)
+ .find_by(id: @presentation.id,
+ presenters: { id: ActiveRecord::FixtureSet.identify(:brandon_krapp) },
+ start_datetime: DateTime.parse('2017-04-08 10:00'),
+ session: ActiveRecord::FixtureSet.identify(:oral_1_lecture_block_3_uoa_2017),
+ title: 'The entire discussion of phonology in this book suffers from a fundamental ' \
+ 'theoretical inadequacy',
+ abstract: 'Dolor sit amen')
end
test 'should fail to update invalid presentation' do
- attributes = @invalid_presentation.attributes
- attributes[:presenter_ids] = @invalid_presentation.presenter_ids
- attributes[:start_time] = @invalid_presentation.start_time
- attributes[:date] = @invalid_presentation.date
- attributes[:title] = @invalid_presentation.title
- attributes[:abstract] = @invalid_presentation.abstract
- patch admin_conferences_presentation_url(@presentation), params: { presentation: attributes }
+ patch admin_conferences_presentation_url(@presentation),
+ params: { presentation: { presenter_ids: [], start_datetime: nil, session_id: nil, title: nil, abstract: nil } }
assert_response :success
assert_not_equal 'Presentation saved', flash[:success]
end
test 'should fail to update invalid presentation with remote form' do
- attributes = @invalid_presentation.attributes
- attributes[:presenter_ids] = @invalid_presentation.presenter_ids
- attributes[:start_time] = @invalid_presentation.start_time
- attributes[:date] = @invalid_presentation.date
- attributes[:title] = @invalid_presentation.title
- attributes[:abstract] = @invalid_presentation.abstract
- patch admin_conferences_presentation_url(@presentation), params: { presentation: attributes }, as: :turbo_stream
+ patch admin_conferences_presentation_url(@presentation),
+ params: { presentation: { presenter_ids: [], start_datetime: nil, session_id: nil, title: nil, abstract: nil } },
+ as: :turbo_stream
assert_response :success
assert_not_equal 'Presentation saved', flash[:success]
end
+ test 'should update presentation in locale' do
+ assert_changes -> { @presentation.reload.title(locale: :en) }, to: 'Antisymmetry and asymmetry' do
+ patch admin_conferences_presentation_url(@presentation),
+ params: { presentation: { title: 'Antisymmetry and asymmetry' }, locale: :en }
+ assert_redirected_to admin_conferences_presentations_url
+ assert_equal 'Presentation saved', flash[:success]
+ end
+ assert_changes -> { @presentation.reload.abstract(locale: :en).try(:to_plain_text) }, to: 'Dolor sit amen.' do
+ patch admin_conferences_presentation_url(@presentation),
+ params: { presentation: { abstract: 'Dolor sit amen.' }, locale: :en }
+ assert_redirected_to admin_conferences_presentations_url
+ assert_equal 'Presentation saved', flash[:success]
+ end
+ assert_not_equal 'Antisymmetry and asymmetry', @presentation.reload.title
+ assert_not_equal 'Dolor sit amen.', @presentation.reload.abstract.to_plain_text
+ end
+
+ test 'should update presentation in locale with remote form' do
+ assert_changes -> { @presentation.reload.title(locale: :en) }, to: 'Antisymmetry and asymmetry' do
+ patch admin_conferences_presentation_url(@presentation),
+ params: { presentation: { title: 'Antisymmetry and asymmetry' }, locale: :en }, as: :turbo_stream
+ assert_redirected_to admin_conferences_presentations_url
+ assert_equal 'Presentation saved', flash[:success]
+ end
+ assert_changes -> { @presentation.reload.abstract(locale: :en).try(:to_plain_text) }, to: 'Dolor sit amen.' do
+ patch admin_conferences_presentation_url(@presentation),
+ params: { presentation: { abstract: 'Dolor sit amen.' }, locale: :en }, as: :turbo_stream
+ assert_redirected_to admin_conferences_presentations_url
+ assert_equal 'Presentation saved', flash[:success]
+ end
+ assert_not_equal 'Antisymmetry and asymmetry', @presentation.reload.title
+ assert_not_equal 'Dolor sit amen.', @presentation.reload.abstract.to_plain_text
+ end
+
test 'should destroy presentation' do
assert_difference 'Presentation.count', -1 do
delete admin_conferences_presentation_url(@presentation)
diff --git a/test/controllers/spina/admin/conferences/rooms_controller_test.rb b/test/controllers/spina/admin/conferences/rooms_controller_test.rb
index e8771582..0ac0890b 100644
--- a/test/controllers/spina/admin/conferences/rooms_controller_test.rb
+++ b/test/controllers/spina/admin/conferences/rooms_controller_test.rb
@@ -10,7 +10,6 @@ class RoomsControllerTest < ActionDispatch::IntegrationTest # rubocop:disable Me
setup do
@room = spina_admin_conferences_rooms :lecture_block_2
- @invalid_room = Room.new
@empty_room = spina_admin_conferences_rooms :empty_room
@user = spina_users :joe
post admin_sessions_url, params: { email: @user.email, password: 'password' }
@@ -37,86 +36,131 @@ class RoomsControllerTest < ActionDispatch::IntegrationTest # rubocop:disable Me
end
end
+ test 'should get edit in locale' do
+ get edit_admin_conferences_room_url(@room, locale: :en)
+ assert_response :success
+ assert_select '#presentations tbody > tr' do |table_rows|
+ table_rows.each { |row| assert_select row, 'td', 4 }
+ end
+ end
+
test 'should create room' do
attributes = @room.attributes
attributes[:building] = @room.building
attributes[:number] = @room.number
assert_difference 'Room.count' do
- post admin_conferences_rooms_url, params: { room: attributes }
+ post admin_conferences_rooms_url,
+ params: { room: { institution_id: ActiveRecord::FixtureSet.identify(:university_of_shangri_la),
+ building: 'Bosch building',
+ number: '666' } }
end
assert_redirected_to admin_conferences_rooms_url
assert_equal 'Room saved', flash[:success]
+ assert_not_nil Room.i18n.find_by(institution: ActiveRecord::FixtureSet.identify(:university_of_shangri_la),
+ building: 'Bosch building',
+ number: '666')
end
test 'should create room with remote form' do
- attributes = @room.attributes
- attributes[:building] = @room.building
- attributes[:number] = @room.number
assert_difference 'Room.count' do
- post admin_conferences_rooms_url, params: { room: attributes }, as: :turbo_stream
+ post admin_conferences_rooms_url,
+ params: { room: { institution_id: ActiveRecord::FixtureSet.identify(:university_of_shangri_la),
+ building: 'Bosch building',
+ number: '666' } },
+ as: :turbo_stream
end
assert_redirected_to admin_conferences_rooms_url
assert_equal 'Room saved', flash[:success]
+ assert_not_nil Room.i18n.find_by(institution: ActiveRecord::FixtureSet.identify(:university_of_shangri_la),
+ building: 'Bosch building',
+ number: '666')
end
test 'should fail to create invalid room' do
- attributes = @invalid_room.attributes
- attributes[:building] = @invalid_room.building
- attributes[:number] = @invalid_room.number
assert_no_difference 'Room.count' do
- post admin_conferences_rooms_url, params: { room: attributes }
+ post admin_conferences_rooms_url, params: { room: { institution_id: nil, building: nil, number: nil } }
end
assert_response :success
assert_not_equal 'Room saved', flash[:success]
end
test 'should fail to create invalid room with remote form' do
- attributes = @invalid_room.attributes
- attributes[:building] = @invalid_room.building
- attributes[:number] = @invalid_room.number
assert_no_difference 'Room.count' do
- post admin_conferences_rooms_url, params: { room: attributes }, as: :turbo_stream
+ post admin_conferences_rooms_url, params: { room: { institution_id: nil, building: nil, number: nil } }, as: :turbo_stream
end
assert_response :success
assert_not_equal 'Room saved', flash[:success]
end
test 'should update room' do
- attributes = @room.attributes
- attributes[:building] = @room.building
- attributes[:number] = @room.number
- patch admin_conferences_room_url(@room), params: { room: attributes }
+ patch admin_conferences_room_url(@room),
+ params: { room: { institution_id: ActiveRecord::FixtureSet.identify(:university_of_shangri_la),
+ building: 'Bosch building',
+ number: '666' } }
assert_redirected_to admin_conferences_rooms_url
assert_equal 'Room saved', flash[:success]
+ assert_not_nil Room.i18n.find_by(id: @room.id,
+ institution: ActiveRecord::FixtureSet.identify(:university_of_shangri_la),
+ building: 'Bosch building',
+ number: '666')
end
test 'should update room with remote form' do
- attributes = @room.attributes
- attributes[:building] = @room.building
- attributes[:number] = @room.number
- patch admin_conferences_room_url(@room), params: { room: attributes }, as: :turbo_stream
+ patch admin_conferences_room_url(@room),
+ params: { room: { institution_id: ActiveRecord::FixtureSet.identify(:university_of_shangri_la),
+ building: 'Bosch building',
+ number: '666' } },
+ as: :turbo_stream
assert_redirected_to admin_conferences_rooms_url
assert_equal 'Room saved', flash[:success]
+ assert_not_nil Room.i18n.find_by(id: @room.id,
+ institution: ActiveRecord::FixtureSet.identify(:university_of_shangri_la),
+ building: 'Bosch building',
+ number: '666')
end
test 'should fail to update invalid room' do
- attributes = @invalid_room.attributes
- attributes[:building] = @invalid_room.building
- attributes[:number] = @invalid_room.number
- patch admin_conferences_room_url(@room), params: { room: attributes }
+ patch admin_conferences_room_url(@room), params: { room: { institution_id: nil, building: nil, number: nil } }
assert_response :success
assert_not_equal 'Room saved', flash[:success]
end
test 'should fail to update invalid room with remote form' do
- attributes = @invalid_room.attributes
- attributes[:building] = @invalid_room.building
- attributes[:number] = @invalid_room.number
- patch admin_conferences_room_url(@room), params: { room: attributes }, as: :turbo_stream
+ patch admin_conferences_room_url(@room), params: { room: { institution_id: nil, building: nil, number: nil } }, as: :turbo_stream
assert_response :success
assert_not_equal 'Room saved', flash[:success]
end
+ test 'should update room in locale' do
+ assert_changes -> { @room.reload.building(locale: :en) }, to: 'LB' do
+ patch admin_conferences_room_url(@room), params: { room: { building: 'LB' }, locale: :en }
+ assert_redirected_to admin_conferences_rooms_url
+ assert_equal 'Room saved', flash[:success]
+ end
+ assert_changes -> { @room.reload.number(locale: :en) }, to: 'Two' do
+ patch admin_conferences_room_url(@room), params: { room: { number: 'Two' }, locale: :en }
+ assert_redirected_to admin_conferences_rooms_url
+ assert_equal 'Room saved', flash[:success]
+ end
+ assert_not_equal 'LB', @room.reload.building
+ assert_not_equal 'Two', @room.reload.number
+ end
+
+ test 'should update room in locale with remote form' do
+ assert_changes -> { @room.reload.building(locale: :en) }, to: 'LB' do
+ patch admin_conferences_room_url(@room), params: { room: { building: 'LB' }, locale: :en }, as: :turbo_stream
+ assert_redirected_to admin_conferences_rooms_url
+ assert_equal 'Room saved', flash[:success]
+ end
+ assert_changes -> { @room.reload.number(locale: :en) }, to: 'Two' do
+ patch admin_conferences_room_url(@room), params: { room: { number: 'Two' }, locale: :en }, as: :turbo_stream
+ assert_redirected_to admin_conferences_rooms_url
+ assert_equal 'Room saved', flash[:success]
+ end
+ assert_not_equal 'LB', @room.reload.building
+ assert_not_equal 'Two', @room.reload.number
+ end
+
test 'should destroy room' do
assert_difference 'Room.count', -1 do
delete admin_conferences_room_url(@empty_room)
diff --git a/test/controllers/spina/admin/conferences/sessions_controller_test.rb b/test/controllers/spina/admin/conferences/sessions_controller_test.rb
index 50663593..81bc9321 100644
--- a/test/controllers/spina/admin/conferences/sessions_controller_test.rb
+++ b/test/controllers/spina/admin/conferences/sessions_controller_test.rb
@@ -10,7 +10,6 @@ class SessionsControllerTest < ActionDispatch::IntegrationTest # rubocop:disable
setup do
@session = spina_admin_conferences_sessions :oral_1_lecture_block_2_uoa_2017
- @invalid_session = Session.new
@empty_session = spina_admin_conferences_sessions :empty_session
@user = spina_users :joe
post admin_sessions_url, params: { email: @user.email, password: 'password' }
@@ -37,78 +36,119 @@ class SessionsControllerTest < ActionDispatch::IntegrationTest # rubocop:disable
end
end
+ test 'should get edit in locale' do
+ get edit_admin_conferences_session_url(@session, locale: :en)
+ assert_response :success
+ assert_select '#presentations tbody > tr' do |table_rows|
+ table_rows.each { |row| assert_select row, 'td', 4 }
+ end
+ end
+
test 'should create session' do
- attributes = @session.attributes
- attributes[:name] = @session.name
assert_difference 'Session.count' do
- post admin_conferences_sessions_url, params: { session: attributes }
+ post admin_conferences_sessions_url, params: { session: { presentation_type_id: ActiveRecord::FixtureSet.identify(:oral_2),
+ room_id: ActiveRecord::FixtureSet.identify(:lecture_block_3),
+ name: 'Orals in Lecture Block 3' } }
end
assert_redirected_to admin_conferences_sessions_url
assert_equal 'Session saved', flash[:success]
+ assert_not_nil Session.i18n.find_by(presentation_type_id: ActiveRecord::FixtureSet.identify(:oral_2),
+ room: ActiveRecord::FixtureSet.identify(:lecture_block_3),
+ name: 'Orals in Lecture Block 3')
end
test 'should create session with remote form' do
- attributes = @session.attributes
- attributes[:name] = @session.name
assert_difference 'Session.count' do
- post admin_conferences_sessions_url, params: { session: attributes }, as: :turbo_stream
+ post admin_conferences_sessions_url,
+ params: { session: { presentation_type_id: ActiveRecord::FixtureSet.identify(:oral_2),
+ room_id: ActiveRecord::FixtureSet.identify(:lecture_block_3),
+ name: 'Orals in Lecture Block 3' } },
+ as: :turbo_stream
end
assert_redirected_to admin_conferences_sessions_url
assert_equal 'Session saved', flash[:success]
+ assert_not_nil Session.i18n.find_by(presentation_type_id: ActiveRecord::FixtureSet.identify(:oral_2),
+ room: ActiveRecord::FixtureSet.identify(:lecture_block_3),
+ name: 'Orals in Lecture Block 3')
end
test 'should fail to create invalid session' do
- attributes = @invalid_session.attributes
- attributes[:name] = @invalid_session.name
assert_no_difference 'Session.count' do
- post admin_conferences_sessions_url, params: { session: attributes }
+ post admin_conferences_sessions_url, params: { session: { presentation_type_id: nil, room_id: nil, name: nil } }
end
assert_response :success
assert_not_equal 'Session saved', flash[:success]
end
test 'should fail to create invalid session with remote form' do
- attributes = @invalid_session.attributes
- attributes[:name] = @invalid_session.name
assert_no_difference 'Session.count' do
- post admin_conferences_sessions_url, params: { session: attributes }, as: :turbo_stream
+ post admin_conferences_sessions_url,
+ params: { session: { presentation_type_id: nil, room_id: nil, name: nil } }, as: :turbo_stream
end
assert_response :success
assert_not_equal 'Session saved', flash[:success]
end
test 'should update session' do
- attributes = @session.attributes
- attributes[:name] = @session.name
- patch admin_conferences_session_url(@session), params: { session: attributes }
+ patch admin_conferences_session_url(@session),
+ params: { session: { presentation_type_id: ActiveRecord::FixtureSet.identify(:oral_2),
+ room_id: ActiveRecord::FixtureSet.identify(:lecture_block_3),
+ name: 'Orals in Lecture Block 3' } }
assert_redirected_to admin_conferences_sessions_url
assert_equal 'Session saved', flash[:success]
+ assert_not_nil Session.i18n.find_by(id: @session.id,
+ presentation_type_id: ActiveRecord::FixtureSet.identify(:oral_2),
+ room: ActiveRecord::FixtureSet.identify(:lecture_block_3),
+ name: 'Orals in Lecture Block 3')
end
test 'should update session with remote form' do
- attributes = @session.attributes
- attributes[:name] = @session.name
- patch admin_conferences_session_url(@session), params: { session: attributes }, as: :turbo_stream
+ patch admin_conferences_session_url(@session),
+ params: { session: { presentation_type_id: ActiveRecord::FixtureSet.identify(:oral_2),
+ room_id: ActiveRecord::FixtureSet.identify(:lecture_block_3),
+ name: 'Orals in Lecture Block 3' } },
+ as: :turbo_stream
assert_redirected_to admin_conferences_sessions_url
assert_equal 'Session saved', flash[:success]
+ assert_not_nil Session.i18n.find_by(id: @session.id,
+ presentation_type_id: ActiveRecord::FixtureSet.identify(:oral_2),
+ room: ActiveRecord::FixtureSet.identify(:lecture_block_3),
+ name: 'Orals in Lecture Block 3')
end
test 'should fail to update invalid session' do
- attributes = @invalid_session.attributes
- attributes[:name] = @invalid_session.name
- patch admin_conferences_session_url(@session), params: { session: attributes }
+ patch admin_conferences_session_url(@session), params: { session: { presentation_type_id: nil, room_id: nil, name: nil } }
assert_response :success
assert_not_equal 'Session saved', flash[:success]
end
test 'should fail to update invalid session with remote form' do
- attributes = @invalid_session.attributes
- attributes[:name] = @invalid_session.name
- patch admin_conferences_session_url(@session), params: { session: attributes }, as: :turbo_stream
+ patch admin_conferences_session_url(@session),
+ params: { session: { presentation_type_id: nil, room_id: nil, name: nil } }, as: :turbo_stream
assert_response :success
assert_not_equal 'Session saved', flash[:success]
end
+ test 'should update session in locale' do
+ assert_changes -> { @session.reload.name(locale: :en) }, to: 'Talks in Lecture Block Two' do
+ patch admin_conferences_session_url(@session),
+ params: { session: { name: 'Talks in Lecture Block Two' }, locale: :en }
+ assert_redirected_to admin_conferences_sessions_url
+ assert_equal 'Session saved', flash[:success]
+ end
+ assert_not_equal 'Talks in Lecture Block Two', @session.reload.name
+ end
+
+ test 'should update session in locale with remote form' do
+ assert_changes -> { @session.reload.name(locale: :en) }, to: 'Talks in Lecture Block Two' do
+ patch admin_conferences_session_url(@session),
+ params: { session: { name: 'Talks in Lecture Block Two' }, locale: :en }, as: :turbo_stream
+ assert_redirected_to admin_conferences_sessions_url
+ assert_equal 'Session saved', flash[:success]
+ end
+ assert_not_equal 'Talks in Lecture Block Two', @session.reload.name
+ end
+
test 'should destroy session' do
assert_difference 'Session.count', -1 do
delete admin_conferences_session_url(@empty_session)
diff --git a/test/system/spina/admin/conferences/conferences_test.rb b/test/system/spina/admin/conferences/conferences_test.rb
index 29f56d5a..39962aeb 100644
--- a/test/system/spina/admin/conferences/conferences_test.rb
+++ b/test/system/spina/admin/conferences/conferences_test.rb
@@ -9,29 +9,17 @@ class ConferencesTest < ApplicationSystemTestCase # rubocop:disable Metrics/Clas
setup do
@conference = spina_admin_conferences_conferences :university_of_atlantis_2017
@empty_conference = spina_admin_conferences_conferences :empty_conference
- @user = spina_users :joe
- visit admin_login_path
- within '.login-fields' do
- fill_in 'email', with: @user.email
- fill_in 'password', with: 'password'
- end
- click_on 'Login'
end
test 'visiting the index' do
visit admin_conferences_conferences_path
- assert_selector '.breadcrumbs' do
- assert_text 'Conferences'
- end
Percy.snapshot page, name: 'Conferences index'
end
test 'creating a conference' do # rubocop:disable Metrics/BlockLength
visit admin_conferences_conferences_path
click_on 'New conference'
- assert_selector '.breadcrumbs' do
- assert_text 'New conference'
- end
+ assert_current_path new_admin_conferences_conference_path
fill_in 'conference_name', with: @conference.name
fill_in 'conference_start_date', with: @conference.start_date
fill_in 'conference_finish_date', with: @conference.finish_date
@@ -96,9 +84,7 @@ class ConferencesTest < ApplicationSystemTestCase # rubocop:disable Metrics/Clas
within "tr[data-conference-id=\"#{@conference.id}\"]" do
click_on 'Edit'
end
- assert_selector '.breadcrumbs' do
- assert_text @conference.name
- end
+ assert_current_path edit_admin_conferences_conference_path(@conference)
Percy.snapshot page, name: 'Conferences form on update'
fill_in 'conference_name', with: @conference.name
fill_in 'conference_start_date', with: @conference.start_date
@@ -160,14 +146,82 @@ class ConferencesTest < ApplicationSystemTestCase # rubocop:disable Metrics/Clas
Percy.snapshot page, name: 'Conferences index on update'
end
+ test 'updating a conference in a locale' do # rubocop:disable Metrics/BlockLength
+ visit admin_conferences_conferences_path
+ within "tr[data-conference-id=\"#{@conference.id}\"]" do
+ click_on 'Edit'
+ end
+ assert_current_path edit_admin_conferences_conference_path(@conference)
+ click_link 'British English'
+ click_link 'English'
+ assert_current_path edit_admin_conferences_conference_path(@conference, locale: :en)
+ Percy.snapshot page, name: 'Conferences form on update in locale'
+ fill_in 'conference_name', with: @conference.name
+ fill_in 'conference_start_date', with: @conference.start_date
+ fill_in 'conference_finish_date', with: @conference.finish_date
+ within '.event' do
+ click_link class: %w[button button-link icon]
+ within '.structure-form-menu ul' do
+ click_link href: '#structure_form_pane_1'
+ end
+ within '#structure_form_pane_1' do
+ fill_in id: /conference_events_attributes_[0-9]_name/, with: @conference.events.first.name
+ fill_in id: /conference_events_attributes_[0-9]_start_datetime/, with: @conference.events.first.start_datetime
+ fill_in id: /conference_events_attributes_[0-9]_finish_datetime/, with: @conference.events.first.finish_datetime
+ fill_in id: /conference_events_attributes_[0-9]_location/, with: @conference.events.first.location
+ fill_in_rich_text_area with: @conference.events.first.description
+ end
+ end
+ click_on 'Parts'
+ within '[data-name="text"]' do
+ fill_in_rich_text_area with: @conference.content(:text)
+ end
+ within '[data-name="submission_url"]' do
+ fill_in with: @conference.content(:submission_url)
+ end
+ within '[data-name="submission_email_address"]' do
+ fill_in with: @conference.content(:submission_email_address)
+ end
+ within '[data-name="submission_date"]' do
+ fill_in with: @conference.content(:submission_date)
+ end
+ within '[data-name="submission_text"]' do
+ fill_in with: @conference.content(:submission_text)
+ end
+ within '[data-name="gallery"]' do
+ first('.images .page-form-media-picker-placeholder').execute_script <<~JS
+ this.style.position = 'static'
+ JS
+ click_on 'Choose'
+ end
+ within '.modal', visible: true, style: { display: 'block' } do
+ first('.media-picker-image').click
+ click_on 'Confirm selection (1)'
+ end
+ within '[data-name="sponsors"]' do
+ within id: /structure_form_pane_[0-9]+/ do
+ fill_in id: /conference_en_content_attributes_[0-9]+_content_attributes_[0-9]+_parts_attributes_0_content/x,
+ with: @conference.content(:sponsors).first.content(:name)
+ fill_in id: /conference_en_content_attributes_[0-9]+_content_attributes_[0-9]+_parts_attributes_1_content/x,
+ with: @conference.content(:sponsors).first.content(:website)
+ click_on 'Choose image'
+ end
+ end
+ within '.modal', visible: true, style: { display: 'block' } do
+ first('.media-picker-image').click
+ end
+ click_on 'Save conference'
+ assert_current_path admin_conferences_conferences_path
+ assert_text 'Conference saved'
+ Percy.snapshot page, name: 'Conferences index on update in locale'
+ end
+
test 'destroying a conference' do
visit admin_conferences_conferences_path
within "tr[data-conference-id=\"#{@empty_conference.id}\"]" do
click_on 'Edit'
end
- assert_selector '.breadcrumbs' do
- assert_text @empty_conference.name
- end
+ assert_current_path edit_admin_conferences_conference_path(@empty_conference)
accept_confirm "Are you sure you want to delete the conference #{@empty_conference.name}?" do
click_on 'Permanently delete'
Percy.snapshot page, name: 'Conferences delete dialog'
diff --git a/test/system/spina/admin/conferences/delegates_test.rb b/test/system/spina/admin/conferences/delegates_test.rb
index 05d84d29..626467e5 100644
--- a/test/system/spina/admin/conferences/delegates_test.rb
+++ b/test/system/spina/admin/conferences/delegates_test.rb
@@ -8,29 +8,17 @@ module Conferences
class DelegatesTest < ApplicationSystemTestCase
setup do
@delegate = spina_admin_conferences_delegates :joe_bloggs
- @user = spina_users :joe
- visit admin_login_path
- within '.login-fields' do
- fill_in 'email', with: @user.email
- fill_in 'password', with: 'password'
- end
- click_on 'Login'
end
test 'visiting the index' do
visit admin_conferences_delegates_path
- assert_selector '.breadcrumbs' do
- assert_text 'Delegates'
- end
Percy.snapshot page, name: 'Delegates index'
end
test 'creating a delegate' do
visit admin_conferences_delegates_path
click_on 'New delegate'
- assert_selector '.breadcrumbs' do
- assert_text 'New delegate'
- end
+ assert_current_path new_admin_conferences_delegate_path
fill_in 'delegate_first_name', with: @delegate.first_name
fill_in 'delegate_last_name', with: @delegate.last_name
select @delegate.institution.name, from: 'delegate_institution_id'
@@ -49,9 +37,7 @@ class DelegatesTest < ApplicationSystemTestCase
within "tr[data-delegate-id=\"#{@delegate.id}\"]" do
click_on 'Edit'
end
- assert_selector '.breadcrumbs' do
- assert_text @delegate.full_name
- end
+ assert_current_path edit_admin_conferences_delegate_path(@delegate)
Percy.snapshot page, name: 'Delegates form on update'
fill_in 'delegate_first_name', with: @delegate.first_name
fill_in 'delegate_last_name', with: @delegate.last_name
@@ -65,14 +51,34 @@ class DelegatesTest < ApplicationSystemTestCase
Percy.snapshot page, name: 'Delegates index on update'
end
- test 'destroying a delegate' do
+ test 'updating a delegate in a locale' do
visit admin_conferences_delegates_path
within "tr[data-delegate-id=\"#{@delegate.id}\"]" do
click_on 'Edit'
end
- assert_selector '.breadcrumbs' do
- assert_text @delegate.full_name
+ assert_current_path edit_admin_conferences_delegate_path(@delegate)
+ click_link 'British English'
+ click_link 'English'
+ assert_current_path edit_admin_conferences_delegate_path(@delegate, locale: :en)
+ Percy.snapshot page, name: 'Delegates form on update in locale'
+ fill_in 'delegate_first_name', with: @delegate.first_name
+ fill_in 'delegate_last_name', with: @delegate.last_name
+ select @delegate.institution.name, from: 'delegate_institution_id'
+ fill_in 'delegate_email_address', with: @delegate.email_address
+ fill_in 'delegate_url', with: @delegate.url
+ @delegate.conferences.each { |conference| check conference.name, allow_label_click: true }
+ click_on 'Save delegate'
+ assert_current_path admin_conferences_delegates_path
+ assert_text 'Delegate saved'
+ Percy.snapshot page, name: 'Delegates index on update in locale'
+ end
+
+ test 'destroying a delegate' do
+ visit admin_conferences_delegates_path
+ within "tr[data-delegate-id=\"#{@delegate.id}\"]" do
+ click_on 'Edit'
end
+ assert_current_path edit_admin_conferences_delegate_path(@delegate)
accept_confirm "Are you sure you want to delete the delegate #{@delegate.full_name}?" do
click_on 'Permanently delete'
Percy.snapshot page, name: 'Delegates delete dialog'
diff --git a/test/system/spina/admin/conferences/dietary_requirements_test.rb b/test/system/spina/admin/conferences/dietary_requirements_test.rb
index 3e0640bf..388faef4 100644
--- a/test/system/spina/admin/conferences/dietary_requirements_test.rb
+++ b/test/system/spina/admin/conferences/dietary_requirements_test.rb
@@ -8,29 +8,17 @@ module Conferences
class DietaryRequirementsTest < ApplicationSystemTestCase
setup do
@dietary_requirement = spina_admin_conferences_dietary_requirements :vegan
- @user = spina_users :joe
- visit admin_login_path
- within '.login-fields' do
- fill_in 'email', with: @user.email
- fill_in 'password', with: 'password'
- end
- click_on 'Login'
end
test 'visiting the index' do
visit admin_conferences_dietary_requirements_path
- assert_selector '.breadcrumbs' do
- assert_text 'Dietary requirements'
- end
Percy.snapshot page, name: 'Dietary requirements index'
end
test 'creating a dietary requirement' do
visit admin_conferences_dietary_requirements_path
click_on 'New dietary requirement'
- assert_selector '.breadcrumbs' do
- assert_text 'New dietary requirement'
- end
+ assert_current_path new_admin_conferences_dietary_requirement_path
fill_in 'dietary_requirement_name', with: @dietary_requirement.name
Percy.snapshot page, name: 'Dietary requirements form on create'
click_on 'Save dietary requirement'
@@ -44,9 +32,7 @@ class DietaryRequirementsTest < ApplicationSystemTestCase
within "tr[data-dietary-requirement-id=\"#{@dietary_requirement.id}\"]" do
click_on 'Edit'
end
- assert_selector '.breadcrumbs' do
- assert_text @dietary_requirement.name
- end
+ assert_current_path edit_admin_conferences_dietary_requirement_path(@dietary_requirement)
Percy.snapshot page, name: 'Dietary requirements form on update'
fill_in 'dietary_requirement_name', with: @dietary_requirement.name
click_on 'Save dietary requirement'
@@ -55,14 +41,29 @@ class DietaryRequirementsTest < ApplicationSystemTestCase
Percy.snapshot page, name: 'Dietary requirements index on update'
end
- test 'destroying a dietary requirement' do
+ test 'updating a dietary requirement in a locale' do
visit admin_conferences_dietary_requirements_path
within "tr[data-dietary-requirement-id=\"#{@dietary_requirement.id}\"]" do
click_on 'Edit'
end
- assert_selector '.breadcrumbs' do
- assert_text @dietary_requirement.name
+ assert_current_path edit_admin_conferences_dietary_requirement_path(@dietary_requirement)
+ click_link 'British English'
+ click_link 'English'
+ assert_current_path edit_admin_conferences_dietary_requirement_path(@dietary_requirement, locale: :en)
+ Percy.snapshot page, name: 'Dietary requirements form on update in locale'
+ fill_in 'dietary_requirement_name', with: @dietary_requirement.name
+ click_on 'Save dietary requirement'
+ assert_current_path admin_conferences_dietary_requirements_path
+ assert_text 'Dietary requirement saved'
+ Percy.snapshot page, name: 'Dietary requirements index on update in locale'
+ end
+
+ test 'destroying a dietary requirement' do
+ visit admin_conferences_dietary_requirements_path
+ within "tr[data-dietary-requirement-id=\"#{@dietary_requirement.id}\"]" do
+ click_on 'Edit'
end
+ assert_current_path edit_admin_conferences_dietary_requirement_path(@dietary_requirement)
accept_confirm "Are you sure you want to delete the dietary requirement #{@dietary_requirement.name}?" do
click_on 'Permanently delete'
Percy.snapshot page, name: 'Dietary requirements delete dialog'
diff --git a/test/system/spina/admin/conferences/institutions_test.rb b/test/system/spina/admin/conferences/institutions_test.rb
index d165f0fc..8b5dfaf0 100644
--- a/test/system/spina/admin/conferences/institutions_test.rb
+++ b/test/system/spina/admin/conferences/institutions_test.rb
@@ -9,29 +9,17 @@ class InstitutionsTest < ApplicationSystemTestCase
setup do
@institution = spina_admin_conferences_institutions :university_of_atlantis
@empty_institution = spina_admin_conferences_institutions :empty_institution
- @user = spina_users :joe
- visit admin_login_path
- within '.login-fields' do
- fill_in 'email', with: @user.email
- fill_in 'password', with: 'password'
- end
- click_on 'Login'
end
test 'visiting the index' do
visit admin_conferences_institutions_path
- assert_selector '.breadcrumbs' do
- assert_text 'Institutions'
- end
Percy.snapshot page, name: 'Institutions index'
end
test 'creating an institution' do
visit admin_conferences_institutions_path
click_on 'New institution'
- assert_selector '.breadcrumbs' do
- assert_text 'New institution'
- end
+ assert_current_path new_admin_conferences_institution_path
fill_in 'institution_name', with: @institution.name
fill_in 'institution_city', with: @institution.city
click_on 'Choose image'
@@ -50,9 +38,7 @@ class InstitutionsTest < ApplicationSystemTestCase
within "tr[data-institution-id=\"#{@institution.id}\"]" do
click_on 'Edit'
end
- assert_selector '.breadcrumbs' do
- assert_text @institution.name
- end
+ assert_current_path edit_admin_conferences_institution_path(@institution)
Percy.snapshot page, name: 'Institutions form on update'
fill_in 'institution_name', with: @institution.name
fill_in 'institution_city', with: @institution.city
@@ -66,14 +52,34 @@ class InstitutionsTest < ApplicationSystemTestCase
Percy.snapshot page, name: 'Institutions index on update'
end
+ test 'updating an institution in a locale' do
+ visit admin_conferences_institutions_path
+ within "tr[data-institution-id=\"#{@institution.id}\"]" do
+ click_on 'Edit'
+ end
+ assert_current_path edit_admin_conferences_institution_path(@institution)
+ click_link 'British English'
+ click_link 'English'
+ assert_current_path edit_admin_conferences_institution_path(@institution, locale: :en)
+ Percy.snapshot page, name: 'Institutions form on update in locale'
+ fill_in 'institution_name', with: @institution.name
+ fill_in 'institution_city', with: @institution.city
+ click_on 'Choose image'
+ within '.modal', visible: true, style: { display: 'block' } do
+ first('.media-picker-image').click
+ end
+ click_on 'Save institution'
+ assert_current_path admin_conferences_institutions_path
+ assert_text 'Institution saved'
+ Percy.snapshot page, name: 'Institutions index on update in locale'
+ end
+
test 'destroying an institution' do
visit admin_conferences_institutions_path
within "tr[data-institution-id=\"#{@empty_institution.id}\"]" do
click_on 'Edit'
end
- assert_selector '.breadcrumbs' do
- assert_text @empty_institution.name
- end
+ assert_current_path edit_admin_conferences_institution_path(@empty_institution)
accept_confirm "Are you sure you want to delete the institution #{@empty_institution.name}?" do
click_on 'Permanently delete'
Percy.snapshot page, name: 'Institutions delete dialog'
diff --git a/test/system/spina/admin/conferences/presentation_attachment_types_test.rb b/test/system/spina/admin/conferences/presentation_attachment_types_test.rb
index 2089139d..adea7697 100644
--- a/test/system/spina/admin/conferences/presentation_attachment_types_test.rb
+++ b/test/system/spina/admin/conferences/presentation_attachment_types_test.rb
@@ -8,29 +8,17 @@ module Conferences
class PresentationAttachmentTypesTest < ApplicationSystemTestCase
setup do
@presentation_attachment_type = spina_admin_conferences_presentation_attachment_types :handout
- @user = spina_users :joe
- visit admin_login_path
- within '.login-fields' do
- fill_in 'email', with: @user.email
- fill_in 'password', with: 'password'
- end
- click_on 'Login'
end
test 'visiting the index' do
visit admin_conferences_presentation_attachment_types_path
- assert_selector '.breadcrumbs' do
- assert_text 'Presentation attachment types'
- end
Percy.snapshot page, name: 'Presentation attachment types index'
end
test 'creating a presentation attachment type' do
visit admin_conferences_presentation_attachment_types_path
click_on 'New presentation attachment type'
- assert_selector '.breadcrumbs' do
- assert_text 'New presentation attachment type'
- end
+ assert_current_path new_admin_conferences_presentation_attachment_type_path
fill_in 'presentation_attachment_type_name', with: @presentation_attachment_type.name
Percy.snapshot page, name: 'Presentation attachment types form on create'
click_on 'Save presentation attachment type'
@@ -44,9 +32,7 @@ class PresentationAttachmentTypesTest < ApplicationSystemTestCase
within "tr[data-presentation-attachment-type-id=\"#{@presentation_attachment_type.id}\"]" do
click_on 'Edit'
end
- assert_selector '.breadcrumbs' do
- assert_text @presentation_attachment_type.name
- end
+ assert_current_path edit_admin_conferences_presentation_attachment_type_path(@presentation_attachment_type)
Percy.snapshot page, name: 'Presentation attachment types form on update'
fill_in 'presentation_attachment_type_name', with: @presentation_attachment_type.name
click_on 'Save presentation attachment type'
@@ -55,7 +41,7 @@ class PresentationAttachmentTypesTest < ApplicationSystemTestCase
Percy.snapshot page, name: 'Presentation attachment types index on update'
end
- test 'destroying a presentation attachment type' do
+ test 'updating a presentation attachment type in a locale' do
visit admin_conferences_presentation_attachment_types_path
within "tr[data-presentation-attachment-type-id=\"#{@presentation_attachment_type.id}\"]" do
click_on 'Edit'
@@ -63,6 +49,24 @@ class PresentationAttachmentTypesTest < ApplicationSystemTestCase
assert_selector '.breadcrumbs' do
assert_text @presentation_attachment_type.name
end
+ assert_current_path edit_admin_conferences_presentation_attachment_type_path(@presentation_attachment_type)
+ click_link 'British English'
+ click_link 'English'
+ assert_current_path edit_admin_conferences_presentation_attachment_type_path(@presentation_attachment_type, locale: :en)
+ Percy.snapshot page, name: 'Presentation attachment types form on update in locale'
+ fill_in 'presentation_attachment_type_name', with: @presentation_attachment_type.name
+ click_on 'Save presentation attachment type'
+ assert_current_path admin_conferences_presentation_attachment_types_path
+ assert_text 'Presentation attachment type saved'
+ Percy.snapshot page, name: 'Presentation attachment types index on update in locale'
+ end
+
+ test 'destroying a presentation attachment type' do
+ visit admin_conferences_presentation_attachment_types_path
+ within "tr[data-presentation-attachment-type-id=\"#{@presentation_attachment_type.id}\"]" do
+ click_on 'Edit'
+ end
+ assert_current_path edit_admin_conferences_presentation_attachment_type_path(@presentation_attachment_type)
accept_confirm "Are you sure you want to delete the presentation attachment type #{@presentation_attachment_type.name}" \
'?' do
click_on 'Permanently delete'
diff --git a/test/system/spina/admin/conferences/presentation_types_test.rb b/test/system/spina/admin/conferences/presentation_types_test.rb
index bf6781c6..025c8c9a 100644
--- a/test/system/spina/admin/conferences/presentation_types_test.rb
+++ b/test/system/spina/admin/conferences/presentation_types_test.rb
@@ -9,29 +9,17 @@ class PresentationTypesTest < ApplicationSystemTestCase
setup do
@presentation_type = spina_admin_conferences_presentation_types :plenary_1
@empty_presentation_type = spina_admin_conferences_presentation_types :empty_presentation_type
- @user = spina_users :joe
- visit admin_login_path
- within '.login-fields' do
- fill_in 'email', with: @user.email
- fill_in 'password', with: 'password'
- end
- click_on 'Login'
end
test 'visiting the index' do
visit admin_conferences_presentation_types_path
- assert_selector '.breadcrumbs' do
- assert_text 'Presentation types'
- end
Percy.snapshot page, name: 'Presentation types index'
end
test 'creating a presentation type' do
visit admin_conferences_presentation_types_path
click_on 'New presentation type'
- assert_selector '.breadcrumbs' do
- assert_text 'New presentation type'
- end
+ assert_current_path new_admin_conferences_presentation_type_path
select @presentation_type.conference.name, from: 'presentation_type_conference_id'
fill_in 'presentation_type_name', with: @presentation_type.name
fill_in 'presentation_type_minutes', with: @presentation_type.minutes
@@ -47,9 +35,7 @@ class PresentationTypesTest < ApplicationSystemTestCase
within "tr[data-presentation-type-id=\"#{@presentation_type.id}\"]" do
click_on 'Edit'
end
- assert_selector '.breadcrumbs' do
- assert_text @presentation_type.name
- end
+ assert_current_path edit_admin_conferences_presentation_type_path(@presentation_type)
Percy.snapshot page, name: 'Presentation types form on update'
select @presentation_type.conference.name, from: 'presentation_type_conference_id'
fill_in 'presentation_type_name', with: @presentation_type.name
@@ -60,14 +46,31 @@ class PresentationTypesTest < ApplicationSystemTestCase
Percy.snapshot page, name: 'Presentation types index on update'
end
+ test 'updating a presentation type in a locale' do
+ visit admin_conferences_presentation_types_path
+ within "tr[data-presentation-type-id=\"#{@presentation_type.id}\"]" do
+ click_on 'Edit'
+ end
+ assert_current_path edit_admin_conferences_presentation_type_path(@presentation_type)
+ click_link 'British English'
+ click_link 'English'
+ assert_current_path edit_admin_conferences_presentation_type_path(@presentation_type, locale: :en)
+ Percy.snapshot page, name: 'Presentation types form on update in locale'
+ select @presentation_type.conference.name, from: 'presentation_type_conference_id'
+ fill_in 'presentation_type_name', with: @presentation_type.name
+ fill_in 'presentation_type_minutes', with: @presentation_type.minutes
+ click_on 'Save presentation type'
+ assert_current_path admin_conferences_presentation_types_path
+ assert_text 'Presentation type saved'
+ Percy.snapshot page, name: 'Presentation types index on update in locale'
+ end
+
test 'destroying a presentation type' do
visit admin_conferences_presentation_types_path
within "tr[data-presentation-type-id=\"#{@empty_presentation_type.id}\"]" do
click_on 'Edit'
end
- assert_selector '.breadcrumbs' do
- assert_text @empty_presentation_type.name
- end
+ assert_current_path edit_admin_conferences_presentation_type_path(@empty_presentation_type)
accept_confirm "Are you sure you want to delete the presentation type #{@empty_presentation_type.name}?" do
click_on 'Permanently delete'
Percy.snapshot page, name: 'Presentation types delete dialog'
diff --git a/test/system/spina/admin/conferences/presentations_test.rb b/test/system/spina/admin/conferences/presentations_test.rb
index 9c71937f..d9ef46fd 100644
--- a/test/system/spina/admin/conferences/presentations_test.rb
+++ b/test/system/spina/admin/conferences/presentations_test.rb
@@ -8,29 +8,17 @@ module Conferences
class PresentationsTest < ApplicationSystemTestCase
setup do
@presentation = spina_admin_conferences_presentations :asymmetry_and_antisymmetry
- @user = spina_users :joe
- visit admin_login_path
- within '.login-fields' do
- fill_in 'email', with: @user.email
- fill_in 'password', with: 'password'
- end
- click_on 'Login'
end
test 'visiting the index' do
visit admin_conferences_presentations_path
- assert_selector '.breadcrumbs' do
- assert_text 'Presentations'
- end
Percy.snapshot page, name: 'Presentations index'
end
test 'creating a presentation' do
visit admin_conferences_presentations_path
click_on 'New presentation'
- assert_selector '.breadcrumbs' do
- assert_text 'New presentation'
- end
+ assert_current_path new_admin_conferences_presentation_path
select @presentation.conference.name, from: 'conference_id'
select @presentation.presentation_type.name, from: 'presentation_type_id'
select @presentation.session.name, from: 'presentation_session_id'
@@ -52,14 +40,12 @@ class PresentationsTest < ApplicationSystemTestCase
Percy.snapshot page, name: 'Presentations index on create'
end
- test 'updating a presentation' do # rubocop:disable Metrics/BlockLength
+ test 'updating a presentation' do
visit admin_conferences_presentations_path
within "tr[data-presentation-id=\"#{@presentation.id}\"]" do
click_on 'Edit'
end
- assert_selector '.breadcrumbs' do
- assert_text @presentation.name
- end
+ assert_current_path edit_admin_conferences_presentation_path(@presentation)
Percy.snapshot page, name: 'Presentations form on update'
select @presentation.conference.name, from: 'conference_id'
select @presentation.presentation_type.name, from: 'presentation_type_id'
@@ -82,14 +68,43 @@ class PresentationsTest < ApplicationSystemTestCase
Percy.snapshot page, name: 'Presentations index on update'
end
- test 'destroying a presentation' do
+ test 'updating a presentation in a locale' do
visit admin_conferences_presentations_path
within "tr[data-presentation-id=\"#{@presentation.id}\"]" do
click_on 'Edit'
end
- assert_selector '.breadcrumbs' do
- assert_text @presentation.name
+ assert_current_path edit_admin_conferences_presentation_path(@presentation)
+ click_link 'British English'
+ click_link 'English'
+ assert_current_path edit_admin_conferences_presentation_path(@presentation, locale: :en)
+ Percy.snapshot page, name: 'Presentations form on update in locale'
+ select @presentation.conference.name, from: 'conference_id'
+ select @presentation.presentation_type.name, from: 'presentation_type_id'
+ select @presentation.session.name, from: 'presentation_session_id'
+ fill_in 'presentation_start_datetime', with: @presentation.start_datetime
+ fill_in 'presentation_title', with: @presentation.title
+ fill_in_rich_text_area 'presentation[abstract]', with: @presentation.abstract
+ @presentation.presenters.each { |presenter| check presenter.reversed_name_and_institution, allow_label_click: true }
+ within '.presentation_attachment' do
+ click_link class: %w[button button-link icon]
+ find_link(href: '#structure_form_pane_2').click
+ within '#structure_form_pane_2' do
+ select @presentation.attachments.second.name, from: 'presentation_attachments_attributes_2_attachment_type_id'
+ select @presentation.attachments.first.attachment.name, from: 'presentation_attachments_attributes_2_attachment_id'
+ end
+ end
+ click_on 'Save presentation'
+ assert_current_path admin_conferences_presentations_path
+ assert_text 'Presentation saved'
+ Percy.snapshot page, name: 'Presentations index on update in locale'
+ end
+
+ test 'destroying a presentation' do
+ visit admin_conferences_presentations_path
+ within "tr[data-presentation-id=\"#{@presentation.id}\"]" do
+ click_on 'Edit'
end
+ assert_current_path edit_admin_conferences_presentation_path(@presentation)
accept_confirm "Are you sure you want to delete the presentation #{@presentation.name}?" do
click_on 'Permanently delete'
Percy.snapshot page, name: 'Presentations delete dialog'
diff --git a/test/system/spina/admin/conferences/rooms_test.rb b/test/system/spina/admin/conferences/rooms_test.rb
index c1ed8261..0a74a424 100644
--- a/test/system/spina/admin/conferences/rooms_test.rb
+++ b/test/system/spina/admin/conferences/rooms_test.rb
@@ -9,29 +9,17 @@ class RoomsTest < ApplicationSystemTestCase
setup do
@room = spina_admin_conferences_rooms :lecture_block_2
@empty_room = spina_admin_conferences_rooms :empty_room
- @user = spina_users :joe
- visit admin_login_path
- within '.login-fields' do
- fill_in 'email', with: @user.email
- fill_in 'password', with: 'password'
- end
- click_on 'Login'
end
test 'visiting the index' do
visit admin_conferences_rooms_path
- assert_selector '.breadcrumbs' do
- assert_text 'Rooms'
- end
Percy.snapshot page, name: 'Rooms index'
end
test 'creating a room' do
visit admin_conferences_rooms_path
click_on 'New room'
- assert_selector '.breadcrumbs' do
- assert_text 'New room'
- end
+ assert_current_path new_admin_conferences_room_path
select @room.institution.name, from: 'room_institution_id'
fill_in 'room_building', with: @room.building
fill_in 'room_number', with: @room.number
@@ -47,9 +35,7 @@ class RoomsTest < ApplicationSystemTestCase
within "tr[data-room-id=\"#{@room.id}\"]" do
click_on 'Edit'
end
- assert_selector '.breadcrumbs' do
- assert_text @room.name
- end
+ assert_current_path edit_admin_conferences_room_path(@room)
Percy.snapshot page, name: 'Rooms form on update'
select @room.institution.name, from: 'room_institution_id'
fill_in 'room_building', with: @room.building
@@ -60,14 +46,31 @@ class RoomsTest < ApplicationSystemTestCase
Percy.snapshot page, name: 'Rooms index on update'
end
+ test 'updating a room in a locale' do
+ visit admin_conferences_rooms_path
+ within "tr[data-room-id=\"#{@room.id}\"]" do
+ click_on 'Edit'
+ end
+ assert_current_path edit_admin_conferences_room_path(@room)
+ click_link 'British English'
+ click_link 'English'
+ assert_current_path edit_admin_conferences_room_path(@room, locale: :en)
+ Percy.snapshot page, name: 'Rooms form on update in locale'
+ select @room.institution.name, from: 'room_institution_id'
+ fill_in 'room_building', with: @room.building
+ fill_in 'room_number', with: @room.number
+ click_on 'Save room'
+ assert_current_path admin_conferences_rooms_path
+ assert_text 'Room saved'
+ Percy.snapshot page, name: 'Rooms index on update in locale'
+ end
+
test 'destroying a room' do
visit admin_conferences_rooms_path
within "tr[data-room-id=\"#{@empty_room.id}\"]" do
click_on 'Edit'
end
- assert_selector '.breadcrumbs' do
- assert_text @empty_room.name
- end
+ assert_current_path edit_admin_conferences_room_path(@empty_room)
accept_confirm "Are you sure you want to delete the room #{@empty_room.name}?" do
click_on 'Permanently delete'
Percy.snapshot page, name: 'Rooms delete dialog'
diff --git a/test/system/spina/admin/conferences/sessions_test.rb b/test/system/spina/admin/conferences/sessions_test.rb
index 3d38c7ee..e28b18e9 100644
--- a/test/system/spina/admin/conferences/sessions_test.rb
+++ b/test/system/spina/admin/conferences/sessions_test.rb
@@ -9,29 +9,17 @@ class SessionsTest < ApplicationSystemTestCase
setup do
@session = spina_admin_conferences_sessions :oral_1_lecture_block_2_uoa_2017
@empty_session = spina_admin_conferences_sessions :empty_session
- @user = spina_users :joe
- visit admin_login_path
- within '.login-fields' do
- fill_in 'email', with: @user.email
- fill_in 'password', with: 'password'
- end
- click_on 'Login'
end
test 'visiting the index' do
visit admin_conferences_sessions_path
- assert_selector '.breadcrumbs' do
- assert_text 'Sessions'
- end
Percy.snapshot page, name: 'Sessions index'
end
test 'creating a session' do
visit admin_conferences_sessions_path
click_on 'New session'
- assert_selector '.breadcrumbs' do
- assert_text 'New session'
- end
+ assert_current_path new_admin_conferences_session_path
fill_in 'session_name', with: @session.name
select @session.conference.name, from: 'conference_id'
select @session.presentation_type.name, from: 'session_presentation_type_id'
@@ -49,9 +37,7 @@ class SessionsTest < ApplicationSystemTestCase
within "tr[data-session-id=\"#{@session.id}\"]" do
click_on 'Edit'
end
- assert_selector '.breadcrumbs' do
- assert_text @session.name
- end
+ assert_current_path edit_admin_conferences_session_path(@session)
Percy.snapshot page, name: 'Sessions form on update'
fill_in 'session_name', with: @session.name
select @session.conference.name, from: 'conference_id'
@@ -64,14 +50,33 @@ class SessionsTest < ApplicationSystemTestCase
Percy.snapshot page, name: 'Sessions index on update'
end
+ test 'updating a session in a locale' do
+ visit admin_conferences_sessions_path
+ within "tr[data-session-id=\"#{@session.id}\"]" do
+ click_on 'Edit'
+ end
+ assert_current_path edit_admin_conferences_session_path(@session)
+ click_link 'British English'
+ click_link 'English'
+ assert_current_path edit_admin_conferences_session_path(@session, locale: :en)
+ Percy.snapshot page, name: 'Sessions form on update in locale'
+ fill_in 'session_name', with: @session.name
+ select @session.conference.name, from: 'conference_id'
+ select @session.presentation_type.name, from: 'session_presentation_type_id'
+ select @session.institution.name, from: 'institution_id'
+ select @session.room.name, from: 'session_room_id'
+ click_on 'Save session'
+ assert_current_path admin_conferences_sessions_path
+ assert_text 'Session saved'
+ Percy.snapshot page, name: 'Sessions index on update in locale'
+ end
+
test 'destroying a session' do
visit admin_conferences_sessions_path
within "tr[data-session-id=\"#{@empty_session.id}\"]" do
click_on 'Edit'
end
- assert_selector '.breadcrumbs' do
- assert_text @empty_session.name
- end
+ assert_current_path edit_admin_conferences_session_path(@empty_session)
accept_confirm "Are you sure you want to delete the session #{@empty_session.name}?" do
click_on 'Permanently delete'
Percy.snapshot page, name: 'Sessions delete dialog'