157 lines
5.8 KiB
Ruby
157 lines
5.8 KiB
Ruby
require "rails_helper"
|
|
|
|
feature "Conference management" do
|
|
before do
|
|
Rails.application.load_seed
|
|
end
|
|
|
|
scenario "Creating a new conference" do
|
|
sign_in_as_admin
|
|
visit management_root_path
|
|
expect(page).to_not have_content "FooConf"
|
|
create_new_conference
|
|
visit management_root_path
|
|
expect(page).to have_content "FooConf"
|
|
end
|
|
|
|
scenario "Enabling the call for papers of a conference" do
|
|
sign_in_as_admin
|
|
create_new_conference
|
|
visit root_path
|
|
expect(page).to have_link I18n.t("views.welcome.submit_event", event_type: "")
|
|
visit management_root_path
|
|
click_on_first_conference_in_management_root
|
|
click_on I18n.t("management.conferences.show.cfp_status")
|
|
expect(page).to_not have_link I18n.t("views.welcome.submit_event", event_type: "")
|
|
end
|
|
|
|
scenario "Editing an existing conference" do
|
|
sign_in_as_admin
|
|
create_new_conference
|
|
click_on I18n.t("actions.edit.button", model: Conference.model_name.human)
|
|
fill_in Conference.human_attribute_name(:title), with: "FooBarBazConf"
|
|
page.find(".btn.btn-primary").click
|
|
expect(page).to have_content "FooBarBazConf"
|
|
end
|
|
|
|
scenario "Deleting a newly created conference", js: true do
|
|
sign_in_as_admin
|
|
create_new_conference(host_name: "127.0.0.1")
|
|
click_on "Clarion"
|
|
expect(page).to have_content "FooConf"
|
|
click_on_first_conference_in_management_root
|
|
accept_confirm do
|
|
click_on I18n.t("actions.destroy.button", model: Conference.model_name.human)
|
|
end
|
|
visit management_root_path
|
|
expect(page).to_not have_content "FooConf"
|
|
end
|
|
|
|
scenario "Reviewing an event" do
|
|
sign_in_as_admin
|
|
create_new_conference
|
|
submit_an_event_proposition(true)
|
|
visit management_root_path
|
|
click_on_first_conference_in_management_root
|
|
click_on I18n.t("activerecord.models.event", count: 2).capitalize
|
|
click_on I18n.t("actions.view.button", model: Event.model_name.human)
|
|
expect(page).to have_content("This is just a sample title of an event")
|
|
end
|
|
|
|
scenario "Editing an event" do
|
|
sign_in_as_admin
|
|
create_new_conference
|
|
submit_an_event_proposition(true)
|
|
visit management_root_path
|
|
click_on_first_conference_in_management_root
|
|
click_on I18n.t("activerecord.models.event", count: 2).capitalize
|
|
expect(page).to have_content("This is just a sample title of an event")
|
|
click_on I18n.t("actions.edit.button", model: Event.model_name.human)
|
|
fill_in Event.human_attribute_name(:title), with: "This is just a sample edited title of an event"
|
|
click_on I18n.t("helpers.submit.event.update")
|
|
expect(page).to have_content I18n.t("management.events.update.event_successfully_updated")
|
|
expect(page).to have_content "This is just a sample edited title of an event"
|
|
end
|
|
|
|
scenario "Approving an event from its detailed view" do
|
|
sign_in_as_admin
|
|
create_new_conference
|
|
submit_an_event_proposition(true)
|
|
visit management_root_path
|
|
click_on_first_conference_in_management_root
|
|
click_on I18n.t("activerecord.models.event", count: 2).capitalize
|
|
expect(page).to_not have_button I18n.t("status.approved")
|
|
click_on I18n.t("actions.view.button", model: Event.model_name.human)
|
|
click_on I18n.t("status.undecided")
|
|
click_on I18n.t("status.approved")
|
|
click_on I18n.t("activerecord.models.event", count: 2).capitalize
|
|
expect(page).to have_button I18n.t("status.approved")
|
|
end
|
|
|
|
scenario "Approving an event from the events index" do
|
|
sign_in_as_admin
|
|
create_new_conference
|
|
submit_an_event_proposition(true)
|
|
visit management_root_path
|
|
click_on_first_conference_in_management_root
|
|
click_on I18n.t("activerecord.models.event", count: 2).capitalize
|
|
expect(page).to_not have_button I18n.t("status.approved")
|
|
click_on I18n.t("status.undecided")
|
|
click_on I18n.t("status.approved")
|
|
expect(page).to have_button I18n.t("status.approved")
|
|
end
|
|
|
|
scenario "Creating a profile for a submitter" do
|
|
sign_in_as_admin
|
|
create_new_conference
|
|
submit_an_event_proposition(true)
|
|
visit management_root_path
|
|
click_on_first_conference_in_management_root
|
|
click_on I18n.t("activerecord.models.personal_profile", count: 2).capitalize
|
|
click_on I18n.t("actions.create.title", model: PersonalProfile.model_name.human)
|
|
fill_in_personal_profile
|
|
expect(page).to have_content I18n.t("management.personal_profiles.create.successfully_created")
|
|
expect(page).to have_content "Foo Bar"
|
|
end
|
|
|
|
scenario "Cloning the last profile of a submitter that did not update it when they submitted" do
|
|
time_travel_to(2.years.ago) do
|
|
sign_in_as_admin
|
|
create_new_conference
|
|
sign_out
|
|
|
|
visit root_path
|
|
click_on I18n.t("views.welcome.submit_event", event_type: Conference.first.event_types.first.name.downcase)
|
|
click_on I18n.t(:registration)
|
|
|
|
register_a_new_user(false)
|
|
|
|
submit_an_event_proposition
|
|
|
|
fill_in_personal_profile
|
|
sign_out
|
|
end
|
|
|
|
sign_in_as_admin
|
|
create_new_conference
|
|
sign_out
|
|
|
|
visit root_path
|
|
click_on I18n.t("views.welcome.submit_event", event_type: Conference.first.event_types.first.name.downcase)
|
|
|
|
sign_in_as_an_existing_user(false)
|
|
|
|
submit_an_event_proposition(false)
|
|
expect(page).to have_content I18n.t(:please_fill_in_your_speaker_profile)
|
|
sign_out
|
|
|
|
verify_the_event_is_submitted
|
|
click_on I18n.t("activerecord.models.personal_profile", count: 2).capitalize
|
|
expect(page).to have_text(I18n.t("management.personal_profiles.index.no_profile"))
|
|
click_on I18n.t("actions.clone.title", model: PersonalProfile.model_name.human)
|
|
expect(page).to have_text(I18n.t("management.personal_profiles.create.successfully_created"))
|
|
click_on I18n.t("activerecord.models.personal_profile", count: 2).capitalize
|
|
expect(page).to_not have_text(I18n.t("management.personal_profiles.index.no_profile"))
|
|
end
|
|
end
|