aboutsummaryrefslogtreecommitdiffstats
path: root/spec/features/vehicle_journeys_spec.rb
blob: 16a79e2c586c90551e6bbfe14f4e41a3303a4632 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
require 'spec_helper'

describe 'VehicleJourneys', type: :feature do
  login_user

  let(:referential) { Referential.first }
  let!(:line) { create(:line) }
  let!(:route) { create(:route, line: line) }
  let!(:journey_pattern) { create(:journey_pattern, route: route) }
  let!(:vehicle_journey) { create(:vehicle_journey, journey_pattern: journey_pattern) }

  describe 'show' do
    context 'user has permissions' do
      before(:each) { visit referential_line_route_vehicle_journey_path(referential, line, route, vehicle_journey) }

      context 'user has permission to create vehicle journeys' do
        it 'shows a create link for vehicle journeys' do
          expect(page).to have_content(I18n.t('vehicle_journeys.actions.new'))
        end
      end

      context 'user has permission to edit vehicle journeys' do
        it 'shows an edit link for vehicle journeys' do
          expect(page).to have_content(I18n.t('vehicle_journeys.actions.edit'))
        end
      end

      context 'user has permission to destroy vehicle journeys' do
        it 'shows a destroy link for vehicle journeys' do
          expect(page).to have_content(I18n.t('vehicle_journeys.actions.destroy'))
        end
      end
    end

    context 'user does not have permissions' do
      context 'user does not have permission to create vehicle journeys' do
        it 'does not show a create link for vehicle journeys' do
          @user.tap { |u| u.permissions.delete('vehicle_journeys.create') }.save
          visit referential_line_route_vehicle_journey_path(referential, line, route, vehicle_journey)
          expect(page).not_to have_content(I18n.t('vehicle_journeys.actions.new'))
        end
      end

      context 'user does not have permission to edit vehicle journeys' do
        it 'does not show an edit link for vehicle journeys' do
          @user.tap { |u| u.permissions.delete('vehicle_journeys.update') }.save
          visit referential_line_route_vehicle_journey_path(referential, line, route, vehicle_journey)
          expect(page).not_to have_content(I18n.t('vehicle_journeys.actions.edit'))
        end
      end

      context 'user does not have permission to edit vehicle journeys' do
        it 'does not show a destroy link for vehicle journeys' do
          @user.tap { |u| u.permissions.delete('vehicle_journeys.destroy') }.save
          visit referential_line_route_vehicle_journey_path(referential, line, route, vehicle_journey)
          expect(page).not_to have_content(I18n.t('vehicle_journeys.actions.destroy'))
        end
      end
    end
  end

  # describe 'index' do
  #   context 'user has permission to create vehicle journeys' do
  #     it 'shows a create link for vehicle journeys' do
  #       visit referential_line_route_vehicle_journeys_path(referential, line, route)
  #       expect(page).to have_content(I18n.t('vehicle_journeys.actions.new'))
  #     end
  #   end

  #   context 'user does not have permission to create vehicle journeys' do
  #     it 'does not show a create link for vehicle journeys' do
  #       @user.tap { |u| u.permissions.delete('vehicle_journeys.create') }.save
  #       visit referential_line_route_vehicle_journeys_path(referential, line, route)
  #       expect(page).not_to have_content(I18n.t('vehicle_journeys.actions.new'))
  #     end
  #   end
  # end
end