authorized_rails_scaffolds 0.0.14 → 0.0.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -0
  3. data/lib/authorized_rails_scaffolds.rb +23 -6
  4. data/lib/authorized_rails_scaffolds/helper.rb +13 -54
  5. data/lib/authorized_rails_scaffolds/{controller_macros.rb → macros/controller_macros.rb} +1 -1
  6. data/lib/authorized_rails_scaffolds/{factory_macros.rb → macros/factory_macros.rb} +5 -5
  7. data/lib/authorized_rails_scaffolds/macros/parent_macros.rb +56 -0
  8. data/lib/authorized_rails_scaffolds/macros/path_macros.rb +70 -0
  9. data/lib/authorized_rails_scaffolds/macros/resource_macros.rb +53 -0
  10. data/lib/authorized_rails_scaffolds/macros/route_example_macros.rb +65 -0
  11. data/lib/authorized_rails_scaffolds/{test_var_macros.rb → macros/test_var_macros.rb} +9 -9
  12. data/lib/authorized_rails_scaffolds/rails_erb_scaffold_helper.rb +0 -25
  13. data/lib/authorized_rails_scaffolds/rails_helper_helper.rb +41 -0
  14. data/lib/authorized_rails_scaffolds/rails_scaffold_controller_helper.rb +27 -2
  15. data/lib/authorized_rails_scaffolds/rspec_integration_helper.rb +9 -0
  16. data/lib/authorized_rails_scaffolds/rspec_scaffold_controller_helper.rb +8 -4
  17. data/lib/authorized_rails_scaffolds/rspec_scaffold_helper.rb +5 -4
  18. data/lib/authorized_rails_scaffolds/rspec_scaffold_routing_helper.rb +2 -2
  19. data/lib/authorized_rails_scaffolds/rspec_scaffold_view_helper.rb +1 -1
  20. data/lib/authorized_rails_scaffolds/version.rb +1 -1
  21. data/lib/generators/authorized_rails_scaffolds/install_macros/install_macros_generator.rb +2 -1
  22. data/lib/generators/authorized_rails_scaffolds/install_macros/templates/devise_can_can/USAGE +1 -0
  23. data/lib/generators/authorized_rails_scaffolds/install_macros/templates/devise_can_can/request_macros.rb +8 -0
  24. data/lib/generators/authorized_rails_scaffolds/install_templates/install_templates_generator.rb +14 -0
  25. data/lib/generators/authorized_rails_scaffolds/install_templates/templates/scaffold/_form.html.erb +2 -1
  26. data/lib/generators/authorized_rails_scaffolds/install_templates/templates/scaffold/controller.rb +68 -35
  27. data/lib/generators/authorized_rails_scaffolds/install_templates/templates/scaffold/helper.rb +25 -0
  28. data/lib/generators/authorized_rails_scaffolds/install_templates/templates/scaffold/index.html.erb +15 -15
  29. data/lib/generators/authorized_rails_scaffolds/install_templates/templates/scaffold/show.html.erb +1 -1
  30. data/lib/generators/authorized_rails_scaffolds/install_templates/templates/spec/controller_spec.rb +90 -84
  31. data/lib/generators/authorized_rails_scaffolds/install_templates/templates/spec/edit_spec.rb +37 -30
  32. data/lib/generators/authorized_rails_scaffolds/install_templates/templates/spec/index_spec.rb +56 -51
  33. data/lib/generators/authorized_rails_scaffolds/install_templates/templates/spec/new_spec.rb +33 -26
  34. data/lib/generators/authorized_rails_scaffolds/install_templates/templates/spec/request_spec.rb +125 -0
  35. data/lib/generators/authorized_rails_scaffolds/install_templates/templates/spec/routing_spec.rb +12 -9
  36. data/lib/generators/authorized_rails_scaffolds/install_templates/templates/spec/show_spec.rb +20 -17
  37. data/spec/lib/authorized_rails_scaffolds/rails_erb_scaffold_helper_spec.rb +24 -23
  38. data/spec/lib/authorized_rails_scaffolds/rails_helper_helper_spec.rb +66 -0
  39. data/spec/lib/authorized_rails_scaffolds/rails_scaffold_controller_helper_spec.rb +42 -0
  40. data/spec/lib/authorized_rails_scaffolds/rspec_scaffold_controller_helper_spec.rb +7 -7
  41. data/spec/lib/authorized_rails_scaffolds/rspec_scaffold_routing_helper_spec.rb +14 -14
  42. data/spec/lib/authorized_rails_scaffolds/rspec_scaffold_view_helper_spec.rb +4 -4
  43. metadata +16 -7
  44. data/lib/authorized_rails_scaffolds/resource_macros.rb +0 -81
  45. data/lib/authorized_rails_scaffolds/route_example_macros.rb +0 -43
@@ -0,0 +1,125 @@
1
+ require 'spec_helper'
2
+
3
+ <%-
4
+ # class_name
5
+ # table_name
6
+ # index_helper
7
+
8
+ t_helper = AuthorizedRailsScaffolds::RSpecIntegrationHelper.new(
9
+ :class_name => class_name,
10
+ :human_name => human_name,
11
+ :table_name => table_name
12
+ )
13
+
14
+ resource_class = t_helper.resource_class
15
+ resource_human_name = t_helper.resource_human_name
16
+ resource_array_name = t_helper.resource_array_name
17
+ resource_symbol = t_helper.resource_symbol
18
+ resource_test_var = t_helper.resource_test_var
19
+
20
+ parent_model_names = t_helper.parent_model_names
21
+
22
+
23
+ -%>
24
+ describe "<%= class_name.pluralize %>" do
25
+
26
+ # This should return the minimal set of attributes required to create a valid
27
+ # <%= resource_class %>.
28
+ def valid_create_attributes
29
+ FactoryGirl.attributes_for(<%= resource_symbol %>)
30
+ end
31
+
32
+ # This should return the minimal set of attributes required to update a valid
33
+ # <%= resource_class %>.
34
+ def valid_update_attributes
35
+ FactoryGirl.attributes_for(<%= resource_symbol %>)
36
+ end
37
+
38
+ <%- if parent_model_names.any? -%>
39
+ <%- parent_model_names.each do |parent_model| -%>
40
+ let(<%= t_helper.references_test_sym(parent_model) %>) { <%= t_helper.create_parent_resource_from_factory parent_model %> }
41
+ <%- end -%>
42
+
43
+ <%- end -%>
44
+ describe "GET <%= t_helper.example_index_path %>" do
45
+ context "as a user" do
46
+ before(:each) { sign_in_user }
47
+ it "renders a list of <%= resource_array_name %><%= t_helper.extra_comments %>" do
48
+ 2.times { <%= t_helper.create_resource_from_factory %> }
49
+ get <%= t_helper.controller_index_route %>
50
+ response.status.should be(200)
51
+ end
52
+ end
53
+ end
54
+
55
+ describe "GET <%= t_helper.example_show_path %>" do
56
+ context "as a user" do
57
+ before(:each) { sign_in_user }
58
+ it "renders a <%= resource_human_name %><%= t_helper.extra_comments %>" do
59
+ <%= resource_test_var %> = <%= t_helper.create_resource_from_factory %>
60
+ get <%= t_helper.controller_show_route resource_test_var %>
61
+ response.status.should be(200)
62
+ end
63
+ end
64
+ end
65
+
66
+ describe "GET <%= t_helper.example_index_path %>/new" do
67
+ context "as a user" do
68
+ before(:each) { sign_in_user }
69
+ it "renders a form for a new <%= resource_human_name %><%= t_helper.extra_comments %>" do
70
+ get <%= t_helper.controller_new_route %>
71
+ response.status.should be(200)
72
+ end
73
+ end
74
+ end
75
+
76
+ describe "GET <%= t_helper.example_show_path %>/edit" do
77
+ context "as a user" do
78
+ before(:each) { sign_in_user }
79
+ it "renders the edit form for a <%= resource_human_name %>" do
80
+ <%= resource_test_var %> = <%= t_helper.create_resource_from_factory %>
81
+ get <%= t_helper.controller_edit_route resource_test_var %>
82
+ response.status.should be(200)
83
+ end
84
+ end
85
+ end
86
+
87
+ describe "POST <%= t_helper.example_index_path %>" do
88
+ context "as a user" do
89
+ before(:each) { sign_in_user }
90
+ it "creates and redirects to a new <%= resource_human_name %>" do
91
+ post <%= t_helper.controller_index_route %>, <%= resource_symbol %> => valid_create_attributes
92
+ response.status.should redirect_to(<%= t_helper.controller_show_route "#{resource_class}.last" %>)
93
+ follow_redirect!
94
+ response.body.should include(<%= "'#{resource_human_name} was successfully created.'" %>)
95
+ end
96
+ end
97
+ end
98
+
99
+ describe "PUT <%= t_helper.example_show_path %>" do
100
+ context "as a user" do
101
+ before(:each) { sign_in_user }
102
+ it "updates a <%= resource_human_name %> and redirects to the show url" do
103
+ <%= resource_test_var %> = <%= t_helper.create_resource_from_factory %>
104
+ put <%= t_helper.controller_show_route resource_test_var %>, <%= resource_symbol %> => valid_update_attributes
105
+ response.status.should redirect_to(<%= t_helper.controller_show_route resource_test_var %>)
106
+ follow_redirect!
107
+ response.body.should include(<%= "'#{resource_human_name} was successfully updated.'" %>)
108
+ end
109
+ end
110
+ end
111
+
112
+ describe "DELETE <%= t_helper.example_show_path %>" do
113
+ context "as a user" do
114
+ before(:each) { sign_in_user }
115
+ it "deletes a <%= resource_human_name %> and redirects to the index url" do
116
+ <%= resource_test_var %> = <%= t_helper.create_resource_from_factory %>
117
+ delete <%= t_helper.controller_show_route resource_test_var %>
118
+ response.status.should redirect_to(<%= t_helper.controller_index_route %>)
119
+ follow_redirect!
120
+ response.body.should include(<%= "'#{resource_human_name} was successfully deleted.'" %>)
121
+ end
122
+ end
123
+ end
124
+
125
+ end
@@ -23,8 +23,11 @@ t_helper = AuthorizedRailsScaffolds::RSpecScaffoldRoutingHelper.new(
23
23
 
24
24
  # request_path = t_helper.request_path
25
25
  resource_directory = t_helper.resource_directory
26
- example_controller_path = t_helper.example_controller_path
27
- example_controller_path_extra_params = t_helper.example_controller_path_extra_params
26
+
27
+ example_index_path = t_helper.example_index_path
28
+ example_show_path = t_helper.example_show_path
29
+ example_index_path_extra_params = t_helper.example_index_path_extra_params
30
+ example_show_path_extra_params = t_helper.example_show_path_extra_params
28
31
 
29
32
  -%>
30
33
  describe <%= t_helper.controller_class_name %> do
@@ -32,32 +35,32 @@ describe <%= t_helper.controller_class_name %> do
32
35
 
33
36
  <% unless options[:singleton] -%>
34
37
  it "routes to #index" do
35
- get("<%= example_controller_path %>").should route_to("<%= resource_directory %>#index"<%= example_controller_path_extra_params %>)
38
+ get("<%= example_index_path %>").should route_to("<%= resource_directory %>#index"<%= example_index_path_extra_params %>)
36
39
  end
37
40
 
38
41
  <% end -%>
39
42
  it "routes to #new" do
40
- get("<%= example_controller_path %>/new").should route_to("<%= resource_directory %>#new"<%= example_controller_path_extra_params %>)
43
+ get("<%= example_index_path %>/new").should route_to("<%= resource_directory %>#new"<%= example_index_path_extra_params %>)
41
44
  end
42
45
 
43
46
  it "routes to #show" do
44
- get("<%= example_controller_path %>/1").should route_to("<%= resource_directory %>#show"<%= example_controller_path_extra_params %>, :id => "1")
47
+ get("<%= example_show_path %>").should route_to("<%= resource_directory %>#show"<%= example_show_path_extra_params %>, :id => "1")
45
48
  end
46
49
 
47
50
  it "routes to #edit" do
48
- get("<%= example_controller_path %>/1/edit").should route_to("<%= resource_directory %>#edit"<%= example_controller_path_extra_params %>, :id => "1")
51
+ get("<%= example_show_path %>/edit").should route_to("<%= resource_directory %>#edit"<%= example_show_path_extra_params %>, :id => "1")
49
52
  end
50
53
 
51
54
  it "routes to #create" do
52
- post("<%= example_controller_path %>").should route_to("<%= resource_directory %>#create"<%= example_controller_path_extra_params %>)
55
+ post("<%= example_index_path %>").should route_to("<%= resource_directory %>#create"<%= example_index_path_extra_params %>)
53
56
  end
54
57
 
55
58
  it "routes to #update" do
56
- put("<%= example_controller_path %>/1").should route_to("<%= resource_directory %>#update"<%= example_controller_path_extra_params %>, :id => "1")
59
+ put("<%= example_show_path %>").should route_to("<%= resource_directory %>#update"<%= example_show_path_extra_params %>, :id => "1")
57
60
  end
58
61
 
59
62
  it "routes to #destroy" do
60
- delete("<%= example_controller_path %>/1").should route_to("<%= resource_directory %>#destroy"<%= example_controller_path_extra_params %>, :id => "1")
63
+ delete("<%= example_show_path %>").should route_to("<%= resource_directory %>#destroy"<%= example_show_path_extra_params %>, :id => "1")
61
64
  end
62
65
 
63
66
  end
@@ -11,11 +11,11 @@ t_helper = AuthorizedRailsScaffolds::RSpecScaffoldViewHelper.new(
11
11
 
12
12
  resource_var = t_helper.resource_var
13
13
  resource_symbol = t_helper.resource_symbol
14
- resource_table_name = t_helper.resource_table_name
15
- resource_test_property = t_helper.resource_test_property
14
+ resource_name = t_helper.resource_name
15
+ resource_test_name = t_helper.resource_test_name
16
16
 
17
17
  resource_directory = t_helper.resource_directory
18
- parent_model_tables = t_helper.parent_model_tables
18
+ parent_model_names = t_helper.parent_model_names
19
19
 
20
20
  output_attributes = t_helper.output_attributes
21
21
  datetime_attributes = t_helper.datetime_attributes
@@ -25,36 +25,39 @@ standard_attributes = t_helper.standard_attributes
25
25
  -%>
26
26
  describe "<%= resource_directory %>/show" do
27
27
 
28
- <% parent_model_tables.each_with_index do |parent_model, index| -%>
28
+ <% parent_model_names.each_with_index do |parent_model, index| -%>
29
29
  <%- if index == 0 -%>
30
30
  let(<%= t_helper.references_test_sym(parent_model) %>) { FactoryGirl.build_stubbed(:<%= parent_model %>) }
31
31
  <%- else -%>
32
- let(<%= t_helper.references_test_sym(parent_model) %>) { FactoryGirl.build_stubbed(:<%= parent_model %>, :<%= parent_model_tables[index - 1] %> => <%= parent_model_tables[index - 1] %>) }
32
+ let(<%= t_helper.references_test_sym(parent_model) %>) { FactoryGirl.build_stubbed(:<%= parent_model %>, :<%= parent_model_names[index - 1] %> => <%= parent_model_names[index - 1] %>) }
33
33
  <%- end -%>
34
34
  <%- end -%>
35
35
  <% references_attributes.each do |parent_attribute| -%>
36
- <%- next if parent_model_tables.include? parent_attribute.name -%>
36
+ <%- next if parent_model_names.include? parent_attribute.name -%>
37
37
  let(<%= t_helper.references_test_sym(parent_attribute.name) %>) { FactoryGirl.build_stubbed(:<%= parent_attribute.name %>) }
38
38
  <% end -%>
39
39
  let(<%= t_helper.resource_test_sym %>) do
40
- FactoryGirl.build_stubbed(:<%= t_helper.resource_table_name %><%= output_attributes.empty? ? ')' : ',' %>
40
+ FactoryGirl.build_stubbed(:<%= t_helper.resource_name %><%= output_attributes.empty? ? ')' : ',' %>
41
41
  <% output_attributes.each_with_index do |attribute, attribute_index| -%>
42
- :<%= attribute.name %> => <% if attribute.type == :references %><%= t_helper.references_test_property(attribute.name) %><% else %><%= t_helper.factory_attribute_value attribute.type, value_for(attribute) %><% end %><%= attribute_index == output_attributes.length - 1 ? '' : ','%>
42
+ :<%= attribute.name %> => <% if attribute.type == :references %><%= t_helper.references_test_name(attribute.name) %><% else %><%= t_helper.factory_attribute_value attribute.type, value_for(attribute) %><% end %><%= attribute_index == output_attributes.length - 1 ? '' : ','%>
43
43
  <% end -%>
44
44
  <%= output_attributes.empty? ? "" : " )\n" -%>
45
45
  end
46
46
 
47
- context<% if parent_model_tables.any? %> "within <%= parent_model_tables.join('/') %> nesting"<% end %> do<%- unless parent_model_tables.any? -%> # Within default nesting<% end %>
47
+ before(:each) do
48
+ # Stub ability for testing
49
+ @ability = Object.new
50
+ @ability.extend(CanCan::Ability)
51
+ controller.stub(:current_ability) { @ability }
52
+ end
53
+
54
+ context<% if parent_model_names.any? %> "within <%= parent_model_names.join('/') %> nesting"<% end %> do<%- unless parent_model_names.any? -%> # Within default nesting<% end %>
48
55
  before(:each) do
49
56
  # Add Properties for view scope
50
- <%- parent_model_tables.each do |parent_model| -%>
51
- assign(<%= t_helper.parent_sym(parent_model) %>, <%= t_helper.references_test_property(parent_model) %>)
57
+ <%- parent_model_names.each do |parent_model| -%>
58
+ assign(<%= t_helper.parent_sym(parent_model) %>, <%= t_helper.references_test_name(parent_model) %>)
52
59
  <%- end -%>
53
- assign(<%= resource_symbol %>, <%= t_helper.resource_test_property %>)
54
-
55
- @ability = Object.new
56
- @ability.extend(CanCan::Ability)
57
- controller.stub(:current_ability) { @ability }
60
+ assign(<%= resource_symbol %>, <%= t_helper.resource_test_name %>)
58
61
  end
59
62
 
60
63
  it "renders attributes in a <dl> as a <dt> and <dd> pair" do
@@ -85,7 +88,7 @@ describe "<%= resource_directory %>/show" do
85
88
 
86
89
  context "with a <%= attribute.name %> reference" do
87
90
  before(:each) do
88
- <%= resource_test_property %>.<%= attribute.name %> = FactoryGirl.build_stubbed(:<%= attribute.name %>)
91
+ <%= resource_test_name %>.<%= attribute.name %> = FactoryGirl.build_stubbed(:<%= attribute.name %>)
89
92
  end
90
93
  context 'without read <%= attribute.name.classify %> permissions' do
91
94
  it "should not a render link to <%= attribute.name %>" do
@@ -3,24 +3,14 @@ require 'spec_helper'
3
3
  describe AuthorizedRailsScaffolds::RailsErbScaffoldHelper do
4
4
  include RailsErbScaffoldHelperMacros
5
5
 
6
- describe '#scoped_values_for_form' do
7
- context 'with no parent modules' do
8
- it 'returns the resource variable' do
9
- subject = build_rails_erb_scaffold_spec_helper :class_name => 'FooBar', :var_name => 'foo_bar'
10
- subject.scoped_values_for_form.should eq('@foo_bar')
11
- end
12
- end
13
- context 'with a parent modules' do
14
- it 'returns a array with the parent module symbol and the resource variable' do
15
- subject = build_rails_erb_scaffold_spec_helper :class_name => 'Example::FooBar', :var_name => 'foo_bar'
16
- subject.scoped_values_for_form.should eq('[:example, @foo_bar]')
17
- end
6
+ describe '#controller_show_route' do
7
+ it 'returns a single route to the resource' do
8
+ subject = build_rails_erb_scaffold_spec_helper :class_name => 'FooBar', :var_name => 'foo_bar'
9
+ subject.controller_new_route.should eq('new_foo_bar_path')
18
10
  end
19
- context 'with multiple parent modules' do
20
- it 'returns a array with all parent modules as symbols and the resource variable' do
21
- subject = build_rails_erb_scaffold_spec_helper :class_name => 'Example::V1::FooBar', :var_name => 'foo_bar'
22
- subject.scoped_values_for_form.should eq('[:example, :v1, @foo_bar]')
23
- end
11
+ it 'returns appends the included value to the root' do
12
+ subject = build_rails_erb_scaffold_spec_helper :class_name => 'FooBar', :var_name => 'foo_bar'
13
+ subject.controller_show_route('@foo_bar').should eq('foo_bar_path(@foo_bar)')
24
14
  end
25
15
  context 'with a parent model' do
26
16
  before(:each) do
@@ -29,18 +19,29 @@ describe AuthorizedRailsScaffolds::RailsErbScaffoldHelper do
29
19
  end
30
20
  end
31
21
  context 'with no parent modules' do
32
- it 'returns a array with the parent model and the resource variable' do
33
- subject = build_rails_erb_scaffold_spec_helper :class_name => 'FooBar', :var_name => 'foo_bar'
34
- subject.scoped_values_for_form.should eq('[@parent, @foo_bar]')
22
+ before(:each) do
23
+ @subject = build_rails_erb_scaffold_spec_helper :class_name => 'FooBar', :var_name => 'foo_bar'
24
+ end
25
+ it 'returns a path within the parent models' do
26
+ @subject.controller_new_route.should eq('new_parent_foo_bar_path(@parent)')
27
+ end
28
+ it 'returns a path with the resource within the parent models' do
29
+ @subject.controller_show_route('@foo_bar').should eq('parent_foo_bar_path(@parent, @foo_bar)')
35
30
  end
36
31
  end
37
32
  context 'with a parent modules' do
38
- it 'returns a array with the parent modules, the parent model and the resource variable' do
39
- subject = build_rails_erb_scaffold_spec_helper :class_name => 'Example::FooBar', :var_name => 'foo_bar'
40
- subject.scoped_values_for_form.should eq('[:example, @parent, @foo_bar]')
33
+ before(:each) do
34
+ @subject = build_rails_erb_scaffold_spec_helper :class_name => 'Awesome::FooBar', :var_name => 'foo_bar'
35
+ end
36
+ it 'returns a path within the module and with parent models' do
37
+ @subject.controller_new_route.should eq('new_awesome_parent_foo_bar_path(@parent)')
38
+ end
39
+ it 'returns a path with the resource within the module and with parent models' do
40
+ @subject.controller_show_route('@foo_bar').should eq('awesome_parent_foo_bar_path(@parent, @foo_bar)')
41
41
  end
42
42
  end
43
43
  end
44
+
44
45
  end
45
46
 
46
47
  describe '#resource_var' do
@@ -0,0 +1,66 @@
1
+ require 'spec_helper'
2
+
3
+ describe AuthorizedRailsScaffolds::RailsHelperHelper do
4
+
5
+ describe 'template values' do
6
+ context 'within nested module' do
7
+ let(:subject) do
8
+ AuthorizedRailsScaffolds::RailsHelperHelper.new(
9
+ :class_name => 'Example::FooBars',
10
+ :singular_table_name => 'example_foo_bar',
11
+ :file_name => 'foo_bars' # Helper has plural file_name
12
+ )
13
+ end
14
+ it { subject.resource_class.should eq('FooBar') }
15
+ it { subject.resource_human_name.should eq('Foo bar') }
16
+
17
+ it { subject.resource_name.should eq('foo_bar') }
18
+ it { subject.resource_var.should eq('@foo_bar') }
19
+ it { subject.resource_symbol.should eq(':foo_bar') }
20
+
21
+ it { subject.resource_array_name.should eq('foo_bars') }
22
+ it { subject.resource_array_var.should eq('@foo_bars') }
23
+ end
24
+ end
25
+
26
+ describe '#scoped_values_for_form' do
27
+ context 'with no parent modules' do
28
+ it 'returns the resource variable' do
29
+ subject = AuthorizedRailsScaffolds::RailsHelperHelper.new(:class_name => 'FooBar', :var_name => 'foo_bar')
30
+ subject.scoped_values_for_form('@foo_bar').should eq('@foo_bar')
31
+ end
32
+ end
33
+ context 'with a parent modules' do
34
+ it 'returns a array with the parent module symbol and the resource variable' do
35
+ subject = AuthorizedRailsScaffolds::RailsHelperHelper.new(:class_name => 'Example::FooBar', :var_name => 'foo_bar')
36
+ subject.scoped_values_for_form('@foo_bar').should eq('[:example, @foo_bar]')
37
+ end
38
+ end
39
+ context 'with multiple parent modules' do
40
+ it 'returns a array with all parent modules as symbols and the resource variable' do
41
+ subject = AuthorizedRailsScaffolds::RailsHelperHelper.new(:class_name => 'Example::V1::FooBar', :var_name => 'foo_bar')
42
+ subject.scoped_values_for_form('@foo_bar').should eq('[:example, :v1, @foo_bar]')
43
+ end
44
+ end
45
+ context 'with a parent model' do
46
+ before(:each) do
47
+ AuthorizedRailsScaffolds.configure do |config|
48
+ config.parent_models = ['Parent']
49
+ end
50
+ end
51
+ context 'with no parent modules' do
52
+ it 'returns a array with the parent model and the resource variable' do
53
+ subject = AuthorizedRailsScaffolds::RailsHelperHelper.new(:class_name => 'FooBar', :var_name => 'foo_bar')
54
+ subject.scoped_values_for_form('@foo_bar').should eq('[@parent, @foo_bar]')
55
+ end
56
+ end
57
+ context 'with a parent modules' do
58
+ it 'returns a array with the parent modules, the parent model and the resource variable' do
59
+ subject = AuthorizedRailsScaffolds::RailsHelperHelper.new(:class_name => 'Example::FooBar', :var_name => 'foo_bar')
60
+ subject.scoped_values_for_form('@foo_bar').should eq('[:example, @parent, @foo_bar]')
61
+ end
62
+ end
63
+ end
64
+ end
65
+
66
+ end
@@ -3,6 +3,48 @@ require 'spec_helper'
3
3
  describe AuthorizedRailsScaffolds::RailsScaffoldControllerHelper do
4
4
  include RailsScaffoldControllerHelperMacros
5
5
 
6
+ describe 'template variables' do
7
+ context 'within nested module' do
8
+ let(:subject) do
9
+ build_rails_controller_spec_helper :class_name => 'Example::FooBar'
10
+ end
11
+ it { subject.resource_class.should eq('FooBar') }
12
+ it { subject.resource_human_name.should eq('Foo bar') }
13
+ it { subject.resource_symbol.should eq(':foo_bar') }
14
+ it { subject.resource_name.should eq('foo_bar') }
15
+ it { subject.resource_array_name.should eq('foo_bars') }
16
+ it { subject.resource_var.should eq('@foo_bar') }
17
+ it { subject.resource_array_var.should eq('@foo_bars') }
18
+
19
+ it { subject.example_index_path.should eq("/example/foo_bars") }
20
+ end
21
+ context 'within nested modules and parent parent models' do
22
+ let(:subject) do
23
+ AuthorizedRailsScaffolds.configure do |config|
24
+ config.parent_models = ['Parent']
25
+ end
26
+ AuthorizedRailsScaffolds::RailsScaffoldControllerHelper.new(
27
+ :class_name => 'Example::FooBar',
28
+ :human_name => 'Foo bar',
29
+ :controller_class_name => 'Example::FooBars',
30
+ :singular_table_name => 'example_foo_bar',
31
+ :file_name => 'foo_bar'
32
+ )
33
+ end
34
+ it { subject.resource_class.should eq('FooBar') }
35
+ it { subject.resource_human_name.should eq('Foo bar') }
36
+
37
+ it { subject.resource_name.should eq('foo_bar') }
38
+ it { subject.resource_var.should eq('@foo_bar') }
39
+ it { subject.resource_symbol.should eq(':foo_bar') }
40
+
41
+ it { subject.resource_array_name.should eq('foo_bars') }
42
+ it { subject.resource_array_var.should eq('@foo_bars') }
43
+
44
+ it { subject.example_index_path.should eq("/example/parents/2/foo_bars") }
45
+ end
46
+ end
47
+
6
48
  describe '#application_controller_class' do
7
49
  context 'with no parent modules' do
8
50
  it 'returns a default ApplicationController' do
@@ -101,11 +101,11 @@ describe AuthorizedRailsScaffolds::RSpecScaffoldControllerHelper do
101
101
  end
102
102
  end
103
103
 
104
- describe '#parent_model_tables' do
104
+ describe '#parent_model_names' do
105
105
  context 'with no parent_models' do
106
106
  it 'returns an empty array' do
107
107
  subject = build_controller_spec_helper
108
- subject.parent_model_tables.should eq([])
108
+ subject.parent_model_names.should eq([])
109
109
  end
110
110
  end
111
111
  context 'with a parent model' do
@@ -116,7 +116,7 @@ describe AuthorizedRailsScaffolds::RSpecScaffoldControllerHelper do
116
116
  end
117
117
  it 'returns an array containing the models table name' do
118
118
  subject = build_controller_spec_helper
119
- subject.parent_model_tables.should eq(['parent'])
119
+ subject.parent_model_names.should eq(['parent'])
120
120
  end
121
121
  end
122
122
  context 'with multiple parent models' do
@@ -127,19 +127,19 @@ describe AuthorizedRailsScaffolds::RSpecScaffoldControllerHelper do
127
127
  end
128
128
  it 'returns an array containing all model table names' do
129
129
  subject = build_controller_spec_helper
130
- subject.parent_model_tables.should eq(['grandparent', 'parent'])
130
+ subject.parent_model_names.should eq(['grandparent', 'parent'])
131
131
  end
132
132
  end
133
133
  end
134
134
 
135
- describe '#resource_table_name' do
135
+ describe '#resource_name' do
136
136
  it 'returns the var_name' do
137
137
  subject = build_controller_spec_helper :var_name => 'foo_bar'
138
- subject.resource_table_name.should eq('foo_bar')
138
+ subject.resource_name.should eq('foo_bar')
139
139
  end
140
140
  it 'returns the converts class_name into underscored' do
141
141
  subject = build_controller_spec_helper :class_name => 'FooBar'
142
- subject.resource_table_name.should eq('foo_bar')
142
+ subject.resource_name.should eq('foo_bar')
143
143
  end
144
144
  end
145
145