aboutsummaryrefslogtreecommitdiffstats
path: root/spec/controllers/routes_controller_spec.rb
blob: 06d24f3e683f88f377eb221add009eeb67150bc4 (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
79
80
81
82
83
require 'spec_helper'

describe RoutesController, :type => :controller do
  login_user

  let!(:route) { Factory(:route) }

  it { is_expected.to be_kind_of(ChouetteController) }

  shared_examples_for "redirected to referential_line_path(referential,line)" do
    it "should redirect_to referential_line_path(referential,line)" do
      #response.should redirect_to( referential_line_path(referential,route.line) )
    end
  end
  shared_examples_for "line and referential linked" do
    it "assigns route.line as @line" do
      expect(assigns[:line]).to eq(route.line)
    end

    it "assigns referential as @referential" do
      expect(assigns[:referential]).to eq(referential)
    end
  end
  shared_examples_for "route, line and referential linked" do
    it "assigns route as @route" do
      expect(assigns[:route]).to eq(route)
    end
    it_behaves_like "line and referential linked"
  end

  describe "GET /index" do
    before(:each) do
      get :index, :line_id => route.line_id,
          :referential_id => referential.id
    end

    it_behaves_like "line and referential linked"
    it_behaves_like "redirected to referential_line_path(referential,line)"
  end
  
  describe "POST /create" do
    before(:each) do
      post :create, :line_id => route.line_id,
          :referential_id => referential.id,
          :route => { :name => "changed"}

    end
    it_behaves_like "line and referential linked"
    it_behaves_like "redirected to referential_line_path(referential,line)"
  end
  
  describe "PUT /update" do
    before(:each) do
      put :update, :id => route.id, :line_id => route.line_id,
          :referential_id => referential.id,
          :route => route.attributes
    end

    it_behaves_like "route, line and referential linked"
    it_behaves_like "redirected to referential_line_path(referential,line)"
  end
  
  describe "GET /show" do
    before(:each) do
      get :show, :id => route.id, 
          :line_id => route.line_id,
          :referential_id => referential.id
    end

    it_behaves_like "route, line and referential linked"

    it "assigns RouteMap.new(route) as @map" do
      expect(assigns[:map]).to be_an_instance_of(RouteMap)
      expect(assigns[:map].route).to eq(route)
    end

    it "assigns route.stop_points.paginate(:page => nil) as @stop_points" do
      expect(assigns[:stop_points]).to eq(route.stop_points.paginate(:page => nil))
    end
  end
  
end