authorized_rails_scaffolds 0.0.14 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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