diff --git a/spec/features/management_interface_spec.rb b/spec/features/management_interface_spec.rb index 3f648da..20ac8bf 100644 --- a/spec/features/management_interface_spec.rb +++ b/spec/features/management_interface_spec.rb @@ -73,6 +73,34 @@ feature 'Conference management' do 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 @@ -85,4 +113,45 @@ feature 'Conference management' do 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.try(:mb_chars).try(: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.try(:mb_chars).try(: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