diff --git a/app/views/admin/events/_proposal.html.haml b/app/views/admin/events/_proposal.html.haml index 722387ac..1c2254d3 100644 --- a/app/views/admin/events/_proposal.html.haml +++ b/app/views/admin/events/_proposal.html.haml @@ -7,6 +7,8 @@ %small = @event.subtitle .btn-group.pull-right + - if @event.public + = link_to 'Preview', conference_program_proposal_path(@conference.short_title, @event.id), class: 'btn btn-mini btn-primary' = link_to 'Registrations', registrations_admin_conference_program_event_path(@conference.short_title, @event), class: 'btn btn-success' = link_to 'Edit', edit_admin_conference_program_event_path(@conference.short_title, @event), class: 'btn btn-mini btn-primary' diff --git a/spec/features/proposals_spec.rb b/spec/features/proposals_spec.rb index 4d25e9ce..6839f8dd 100644 --- a/spec/features/proposals_spec.rb +++ b/spec/features/proposals_spec.rb @@ -27,6 +27,21 @@ feature Event do sign_in organizer end + scenario 'can preview a proposal if it is public', feature: true, js: true do + visit admin_conference_program_event_path(conference.short_title, @event) + expect(page).to have_selector(:link_or_button, 'Preview') + click_link 'Preview' + expect(current_path).to eq(conference_program_proposal_path(conference.short_title, @event.id)) + end + + scenario 'cannot preview a proposal if it is not public', feature: true, js: true do + event = create(:event, program: conference.program, title: 'Example Proposal') + event.public = false + event.save! + visit admin_conference_program_event_path(conference.short_title, event) + expect(page).to_not have_selector(:link_or_button, 'Preview') + end + scenario 'rejects a proposal', feature: true, js: true do visit admin_conference_program_events_path(conference.short_title) expect(page).to have_content 'Example Proposal'