hot-glue 0.0.8 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +1 -1
- data/Gemfile.lock +21 -18
- data/README.md +84 -50
- data/app/helpers/hot_glue/controller_helper.rb +1 -1
- data/db/migrate/20210306223305_create_ghis.rb +9 -0
- data/db/schema.rb +1 -1
- data/lib/generators/hot_glue/install_generator.rb +0 -2
- data/lib/generators/hot_glue/markup_templates/base.rb +7 -0
- data/lib/generators/hot_glue/markup_templates/erb.rb +228 -0
- data/lib/generators/hot_glue/markup_templates/haml.rb +223 -0
- data/lib/generators/hot_glue/markup_templates/slim.rb +9 -0
- data/lib/generators/hot_glue/scaffold_generator.rb +172 -280
- data/lib/generators/hot_glue/templates/controller.rb.erb +12 -10
- data/lib/generators/hot_glue/templates/erb/_errors.erb +11 -0
- data/lib/generators/hot_glue/templates/erb/_flash_notices.erb +12 -0
- data/lib/generators/hot_glue/templates/erb/_form.erb +8 -0
- data/lib/generators/hot_glue/templates/erb/_line.erb +10 -0
- data/lib/generators/hot_glue/templates/erb/_list.erb +19 -0
- data/lib/generators/hot_glue/templates/erb/_new_button.erb +3 -0
- data/lib/generators/hot_glue/templates/erb/_new_form.erb +8 -0
- data/lib/generators/hot_glue/templates/erb/_show.erb +8 -0
- data/lib/generators/hot_glue/templates/erb/create.turbo_stream.erb +18 -0
- data/lib/generators/hot_glue/templates/erb/destroy.turbo_stream.erb +3 -0
- data/lib/generators/hot_glue/templates/erb/edit.erb +30 -0
- data/lib/generators/hot_glue/templates/erb/edit.turbo_stream.erb +3 -0
- data/lib/generators/hot_glue/templates/erb/index.erb +10 -0
- data/lib/generators/hot_glue/templates/erb/new.erb +1 -0
- data/lib/generators/hot_glue/templates/erb/update.turbo_stream.erb +10 -0
- data/lib/generators/hot_glue/templates/{_errors.haml → haml/_errors.haml} +0 -0
- data/lib/generators/hot_glue/templates/{_flash_notices.haml → haml/_flash_notices.haml} +0 -0
- data/lib/generators/hot_glue/templates/{_form.haml → haml/_form.haml} +1 -0
- data/lib/generators/hot_glue/templates/{_line.haml → haml/_line.haml} +0 -0
- data/lib/generators/hot_glue/templates/{_list.haml → haml/_list.haml} +0 -0
- data/lib/generators/hot_glue/templates/{_new_button.haml → haml/_new_button.haml} +0 -0
- data/lib/generators/hot_glue/templates/{_new_form.haml → haml/_new_form.haml} +0 -3
- data/lib/generators/hot_glue/templates/haml/_show.haml +7 -0
- data/lib/generators/hot_glue/templates/{create.turbo_stream.haml → haml/create.turbo_stream.haml} +0 -0
- data/lib/generators/hot_glue/templates/{destroy.turbo_stream.haml → haml/destroy.turbo_stream.haml} +0 -0
- data/lib/generators/hot_glue/templates/{edit.haml → haml/edit.haml} +0 -0
- data/lib/generators/hot_glue/templates/{edit.turbo_stream.haml → haml/edit.turbo_stream.haml} +0 -0
- data/lib/generators/hot_glue/templates/{index.haml → haml/index.haml} +0 -0
- data/lib/generators/hot_glue/templates/{new.haml → haml/new.haml} +0 -0
- data/lib/generators/hot_glue/templates/haml/update.turbo_stream.haml +9 -0
- data/lib/generators/hot_glue/templates/system_spec.rb.erb +115 -76
- data/lib/hot-glue.rb +6 -20
- data/lib/hotglue/version.rb +1 -1
- metadata +45 -27
- data/db/migrate/20210306223305_create_hgis.rb +0 -9
- data/lib/generators/hot_glue/templates/_show.haml +0 -7
- data/lib/generators/hot_glue/templates/request_spec.rb.erb +0 -110
- data/lib/generators/hot_glue/templates/update.turbo_stream.haml +0 -5
@@ -1,7 +1,6 @@
|
|
1
1
|
class <%= controller_class_name %> < <%= controller_descends_from %>
|
2
2
|
<% unless @auth_identifier == '' || @auth.nil? %>before_action :authenticate_<%= @auth_identifier %>!<% end %>
|
3
|
-
|
4
|
-
before_action :load_<%= arg %><% end %> <% end %>
|
3
|
+
|
5
4
|
before_action :load_<%= singular_name %>, only: [:show, :edit, :update, :destroy]
|
6
5
|
helper :hot_glue
|
7
6
|
include HotGlue::ControllerHelper
|
@@ -11,22 +10,23 @@ class <%= controller_class_name %> < <%= controller_descends_from %>
|
|
11
10
|
<% end %>
|
12
11
|
|
13
12
|
<% if any_nested? %><% nest_chain = [] %> <% @nested_args.each { |arg|
|
14
|
-
this_scope = nest_chain.empty? ? "#{@auth ? auth_object : class_name}.#{arg}s" : "
|
15
|
-
nest_chain << arg %>
|
16
|
-
|
13
|
+
this_scope = nest_chain.empty? ? "#{@auth ? auth_object : class_name}.#{arg}s" : "#{nest_chain.last}.#{arg}s"
|
14
|
+
nest_chain << arg %>
|
15
|
+
def <%= arg %>
|
16
|
+
@<%= arg %> ||= <%= this_scope %>.find(params[:<%= arg %>_id])
|
17
17
|
end<% } %><% end %>
|
18
18
|
|
19
19
|
<% if !@self_auth %>
|
20
20
|
def load_<%= singular_name %>
|
21
|
-
@<%= singular_name %> = <%= object_scope %>.find(params[:id])
|
21
|
+
@<%= singular_name %> = <%= object_scope.gsub("@",'') %>.find(params[:id])
|
22
22
|
end
|
23
23
|
<% else %>
|
24
24
|
def load_<%= singular_name %>
|
25
|
-
@<%= singular_name %> = <%= auth_object %>
|
25
|
+
@<%= singular_name %> = <%= auth_object.gsub("@",'') %>
|
26
26
|
end<% end %>
|
27
27
|
|
28
28
|
def load_all_<%= plural %>
|
29
|
-
<% if !@self_auth %>@<%= plural_name %> = <%= object_scope %><% if model_has_strings? %>.where(<%=class_name %>.arel_table[:email].matches("%#{@__general_string}%"))<% end %>.page(params[:page])
|
29
|
+
<% if !@self_auth %>@<%= plural_name %> = <%= object_scope.gsub("@",'') %><% if model_has_strings? %>.where(<%=class_name %>.arel_table[:email].matches("%#{@__general_string}%"))<% end %>.page(params[:page])
|
30
30
|
<% else %>@<%= plural_name %> = [<%= auth_object %>]<% end %>
|
31
31
|
end
|
32
32
|
|
@@ -81,8 +81,10 @@ class <%= controller_class_name %> < <%= controller_descends_from %>
|
|
81
81
|
end
|
82
82
|
|
83
83
|
def update
|
84
|
-
if
|
85
|
-
|
84
|
+
if @<%= singular_name %>.update(modify_date_inputs_on_params(<%= singular %>_params<%= @auth ? ', ' + @auth : '' %>))
|
85
|
+
flash[:notice] = "Saved #{@<%= singular %>.<%= display_class %>}"
|
86
|
+
else
|
87
|
+
flash[:alert] = "<%= singular_name.titlecase %> could not be saved."
|
86
88
|
end
|
87
89
|
respond_to do |format|
|
88
90
|
format.turbo_stream
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<\%= turbo_frame_tag "errors" do %>
|
2
|
+
<\% if resource.errors.any? %>
|
3
|
+
<div id="error_explanation">
|
4
|
+
<\% resource.errors.full_messages.each do |message| %>
|
5
|
+
<div class="alert alert-danger">
|
6
|
+
<\%= message %>
|
7
|
+
</div>
|
8
|
+
<\% end %>
|
9
|
+
</div>
|
10
|
+
<\% end %>
|
11
|
+
<\% end %>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<%= turbo_frame_tag "flash_notices" do %>
|
2
|
+
<% unless notice.nil? %>
|
3
|
+
<div class="alert alert-notice alert-dismissible">
|
4
|
+
<%= notice %>
|
5
|
+
</div>
|
6
|
+
<% end %>
|
7
|
+
<% unless alert.nil? %>
|
8
|
+
<div class="alert alert-danger alert-dismissible">
|
9
|
+
<%= alert %>
|
10
|
+
</div>
|
11
|
+
<% end %>
|
12
|
+
<% end %>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
|
2
|
+
<\%= turbo_frame_tag "<%= singular %>__#{ <%= singular %>.id }" do %>
|
3
|
+
<div class='row' data-id='<\%= <%= singular %>.id %>' data-edit='false'>
|
4
|
+
<\%= render partial: '<%= show_path_partial %>', locals: { <%= singular %>: <%= singular %>} %>
|
5
|
+
</div>
|
6
|
+
<\% end %>
|
7
|
+
|
8
|
+
|
9
|
+
|
10
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<\%= turbo_frame_tag "<%= plural %>-list" do %>
|
2
|
+
<div class="container-fluid "><%= singular %>-table
|
3
|
+
<div class="row">
|
4
|
+
<%= list_column_headings %>
|
5
|
+
<div class='col buttons-col'></div>
|
6
|
+
</div>
|
7
|
+
|
8
|
+
<\% if <%= plural %>.empty? %>
|
9
|
+
<div>
|
10
|
+
None
|
11
|
+
</div>
|
12
|
+
<\% end %>
|
13
|
+
<\% <%= plural %>.each do |<%= singular %>| %>
|
14
|
+
<\%= render partial: '<%= line_path_partial %>', locals: {<%= singular %>: <%= singular %> <%= nested_assignments_with_leading_comma %> } %>
|
15
|
+
<\% end %>
|
16
|
+
|
17
|
+
<%= @no_paginate ? "" : paginate %>
|
18
|
+
</div>
|
19
|
+
<\% end %>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<\%= turbo_frame_tag "<%= singular %>-new" do %>
|
2
|
+
<h3>
|
3
|
+
New <%= singular.titlecase %>
|
4
|
+
</h3>
|
5
|
+
<\%= form_with model: <%= singular %>, url: <%= path_helper_plural %>(<%= nested_objects_arity %>), method: "post" do |f| %>
|
6
|
+
<\%= render partial: "<%= namespace_with_slash + @plural %>/form", locals: { <%= singular %>: <%= singular %>, f: f} %>
|
7
|
+
<\% end %>
|
8
|
+
<\% end %>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<%= all_line_fields %>
|
2
|
+
<div class="col">
|
3
|
+
<% if destroy_action %>
|
4
|
+
<\%= link_to "Delete <i class='fa fa-1x fa-remove'></i>".html_safe, <%= path_helper_singular %>(<%= path_helper_args %>), method: :delete, data: {confirm: 'Are you sure?'}, disable_with: "Loading...", class: "delete-<%= singular %>-button btn btn-primary " %>
|
5
|
+
<% end %>
|
6
|
+
|
7
|
+
<\%= link_to "Edit <i class='fa fa-1x fa-list-alt'></i>".html_safe, edit_<%= path_helper_singular %>(<%= path_helper_args %>), <% if @big_edit %>'data-turbo' => 'false', <% end %>disable_with: "Loading...", class: "edit-<%= singular %>-button btn btn-primary " %>
|
8
|
+
</div>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<\% if @<%= singular %>.errors.none? %>
|
2
|
+
<\%= turbo_stream.replace "<%= plural %>-list" do %>
|
3
|
+
<\%= render partial: "list", locals: {<%= plural %>: @<%= plural %>} %>
|
4
|
+
<\% end %>
|
5
|
+
<\% end %>
|
6
|
+
<\%= turbo_stream.replace "<%= singular %>-new" do %>
|
7
|
+
<\% if @<%= singular %>.errors.none? %>
|
8
|
+
<\%= render partial: "new_button" %>
|
9
|
+
<\% else %>
|
10
|
+
<\%= render partial: "new_form", locals: {<%= singular %>: @<%= singular %>} %>
|
11
|
+
<\% end %>
|
12
|
+
<\% end %>
|
13
|
+
<\%= turbo_stream.replace "flash_notices" do %>
|
14
|
+
<\%= render partial: "layouts/flash_notices" %>
|
15
|
+
<\% if @<%= singular %>.errors.any? %>
|
16
|
+
<\%= render partial: "errors", locals: {resource: @<%= singular %>} %>
|
17
|
+
<\% end %>
|
18
|
+
<\% end %>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<\%= link_to "<i class='fa fa-arrow-circle-left 2x'></i> Back to list".html_safe, <%= path_helper_plural %> %>
|
2
|
+
|
3
|
+
<\%= turbo_frame_tag "<%= singular %>__#{<%= "@" + singular %>.id}" do %>
|
4
|
+
|
5
|
+
<div class="cell editable" style="position: relative;">
|
6
|
+
|
7
|
+
<\% if @<%= singular %>.errors.any? %>
|
8
|
+
<\%= render(partial: "#{controller.namespace}errors", locals: {resource: @<%= singular%> }) %>
|
9
|
+
<\% end %>
|
10
|
+
|
11
|
+
<h2>Editing</h2>
|
12
|
+
<% if eval("@" + singular).try(:to_label) %>
|
13
|
+
<%="@" + singular%>.to_label
|
14
|
+
<% elsif eval("@" + singular).try(:name) %>
|
15
|
+
<%="@" + singular%>.name %>
|
16
|
+
<% else %>
|
17
|
+
(no name)
|
18
|
+
<% end %>
|
19
|
+
<\%= form_with model: <%= "@" + singular%>, url: <%= path_helper_singular %>(<%= path_arity %>) do |f| %>
|
20
|
+
<\%= render partial: "form", locals: {:<%= singular %> => <%= "@" + singular%>, f: f} %>
|
21
|
+
<\% end %>
|
22
|
+
<i class='fa fa-times-circle fa-2x'
|
23
|
+
data-name='close-<%= singular %>__<\% <%= "@" + singular %>.id %> }'
|
24
|
+
data-row-id=<%= "@" + singular %>.id,
|
25
|
+
data-role='close-button'></i>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<\% end %>
|
29
|
+
|
30
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<div class="container-fluid">
|
2
|
+
<div class="row">
|
3
|
+
<div class="col-md-12">
|
4
|
+
<\%= render partial: "new_button" %>
|
5
|
+
<div class="clearfix"></div>
|
6
|
+
<\%= render partial: '<%= list_path_partial %>',
|
7
|
+
locals: {<%= plural %>: @<%= plural %>} \%>
|
8
|
+
</div>
|
9
|
+
</div>
|
10
|
+
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<\%= render partial: "new_form", locals: {<%= singular %>: @<%=singular%>} %>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<\%= turbo_stream.replace "<%= singular%>__#{@<%= singular %>.id}" do %>
|
2
|
+
<\%= render partial: 'line', locals: {<%= singular %>: @<%= singular %> <%= nested_assignments_with_leading_comma %> } %>
|
3
|
+
<\% end %>
|
4
|
+
|
5
|
+
<\%= turbo_stream.replace "flash_notices" do %>
|
6
|
+
<\%= render partial: "layouts/flash_notices" %>
|
7
|
+
<\% if @<%= singular %>.errors.any? %>
|
8
|
+
<\%= render partial: "errors", locals: {resource: @<%= singular %>} %>
|
9
|
+
<\% end %>
|
10
|
+
<\% end %>
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -5,6 +5,3 @@
|
|
5
5
|
= form_with model: <%= singular %>, url: <%= path_helper_plural %>(<%= nested_objects_arity %>), method: "post" do |f|
|
6
6
|
= render partial: "<%=namespace_with_slash%><%= @plural %>/form", locals: {<%= singular %>: <%= singular %>, f: f}
|
7
7
|
|
8
|
-
.row
|
9
|
-
.col-md-12
|
10
|
-
= f.submit "Save", class: "btn btn-primary pull-right"
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<%= all_line_fields %>
|
2
|
+
.col
|
3
|
+
<% if destroy_action %>
|
4
|
+
= link_to "Delete <i class='fa fa-1x fa-remove'></i>".html_safe, <%= path_helper_singular %>(<%= path_helper_args %>), method: :delete, data: {confirm: 'Are you sure?'}, disable_with: "Loading...", class: "delete-<%= singular %>-button btn btn-primary "
|
5
|
+
<% end %>
|
6
|
+
|
7
|
+
= link_to "Edit <i class='fa fa-1x fa-list-alt'></i>".html_safe, edit_<%= path_helper_singular %>(<%= path_helper_args %>), <% if @big_edit %>'data-turbo' => 'false', <% end %>disable_with: "Loading...", class: "edit-<%= singular %>-button btn btn-primary "
|
data/lib/generators/hot_glue/templates/{create.turbo_stream.haml → haml/create.turbo_stream.haml}
RENAMED
File without changes
|
data/lib/generators/hot_glue/templates/{destroy.turbo_stream.haml → haml/destroy.turbo_stream.haml}
RENAMED
File without changes
|
File without changes
|
data/lib/generators/hot_glue/templates/{edit.turbo_stream.haml → haml/edit.turbo_stream.haml}
RENAMED
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,9 @@
|
|
1
|
+
|
2
|
+
= turbo_stream.replace "<%= singular%>__#{@<%= singular %>.id}" do
|
3
|
+
= render partial: 'line', locals: {<%= singular %>: @<%= singular %> <%= nested_assignments_with_leading_comma %> }
|
4
|
+
|
5
|
+
|
6
|
+
= turbo_stream.replace "flash_notices" do
|
7
|
+
= render partial: "layouts/flash_notices"
|
8
|
+
- if @<%= singular %>.errors.any?
|
9
|
+
= render partial: "errors", locals: {resource: @<%= singular %>}
|
@@ -1,108 +1,147 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
3
|
describe "interaction for <%= controller_class_name %>", type: :feature do
|
4
|
-
|
5
|
-
let(:<%=
|
4
|
+
include HotGlue::ControllerHelper
|
5
|
+
<% unless @auth.nil? %>let(:<%= @auth %>) {create(:<%= @auth.gsub('current_', '') %>)}<%end%>
|
6
6
|
|
7
|
-
|
7
|
+
let!(:<%= singular %>1) {create(:<%= singular %><%= object_parent_mapping_as_argument_for_specs %> )}
|
8
|
+
let!(:<%= singular %>2) {create(:<%= singular %><%= object_parent_mapping_as_argument_for_specs %> )}
|
9
|
+
let!(:<%= singular %>3) {create(:<%= singular %><%= object_parent_mapping_as_argument_for_specs %> )}
|
8
10
|
|
9
|
-
|
10
|
-
@request.env["devise.mapping"] = Devise.mappings[:account]
|
11
|
+
<%= objest_nest_factory_setup %>
|
11
12
|
|
12
|
-
|
13
|
+
before(:each) do
|
14
|
+
login_as(<%= @auth %>)
|
13
15
|
end
|
14
16
|
|
15
17
|
describe "index" do
|
16
|
-
it "should
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
it "should show me the list" do
|
19
|
+
visit <%= path_helper_plural %>
|
20
|
+
|
21
|
+
<%=
|
22
|
+
@columns.map { |col|
|
23
|
+
type = eval("#{singular_class}.columns_hash['#{col}']").type
|
24
|
+
# limit = eval("#{singular_class}.columns_hash['#{col}']").limit
|
25
|
+
# sql_type = eval("#{singular_class}.columns_hash['#{col}']").sql_type
|
26
|
+
#
|
27
|
+
|
28
|
+
case type
|
29
|
+
when :datetime
|
30
|
+
" " + ["expect(page).to have_content(#{singular}#{rand(3)+1}.#{col}.in_time_zone(#{ @auth }.timezone).strftime('%m/%d/%Y @ %l:%M %p ').gsub(' ', ' ') + timezonize(#{ @auth }.timezone) )"].join("\n ")
|
31
|
+
|
32
|
+
else
|
33
|
+
" " + ["expect(page).to have_content(#{singular}#{rand(3)+1}.#{col})"].join("\n ")
|
34
|
+
|
21
35
|
end
|
22
36
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
}
|
37
|
+
}.join("\n")
|
38
|
+
|
39
|
+
%>
|
40
|
+
|
28
41
|
end
|
29
42
|
end
|
30
43
|
|
31
|
-
describe "create" do
|
32
|
-
it "should create a new <%= singular %>" do
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
<%= singular %>: {
|
37
|
-
<%= columns_spec_with_sample_data %>
|
38
|
-
}}
|
39
|
-
}.to change { <%= @singular_class %>.all.count }.by(1)
|
40
|
-
assert_response :ok
|
41
|
-
end
|
44
|
+
describe "new & create" do
|
45
|
+
it "should create a new <%= singular.titlecase %>" do
|
46
|
+
visit <%= path_helper_plural %>
|
47
|
+
click_link "New <%= singular.titlecase %>"
|
48
|
+
expect(page).to have_selector(:xpath, './/h3[contains(., "New <%= singular.titlecase %>")]')
|
42
49
|
|
43
|
-
|
44
|
-
|
45
|
-
|
50
|
+
<%=
|
51
|
+
@columns.map { |col|
|
52
|
+
type = eval("#{singular_class}.columns_hash['#{col}']").type
|
53
|
+
# limit = eval("#{singular_class}.columns_hash['#{col}']").limit
|
54
|
+
# sql_type = eval("#{singular_class}.columns_hash['#{col}']").sql_type
|
46
55
|
#
|
47
|
-
# expect(controller).to set_flash.now[:alert].to(/Oops, your <%= singular %> could not be saved/)
|
48
|
-
# end
|
49
|
-
end
|
50
56
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
}
|
57
|
-
|
57
|
+
case type
|
58
|
+
when :datetime
|
59
|
+
when :integer
|
60
|
+
" " + 'find("input#' + singular + '_' + col.to_s + '").fill_in(with: rand(10))'
|
61
|
+
else
|
62
|
+
" " + "new_#{col} = 'new_test-email@nowhere.com' \n" +
|
63
|
+
' ' + 'find("input#' + singular + '_' + col.to_s + '").fill_in(with: new_' + col.to_s + ')'
|
64
|
+
end
|
65
|
+
|
66
|
+
}.join("\n")
|
67
|
+
|
68
|
+
%>
|
69
|
+
click_button "Save"
|
70
|
+
expect(page).to have_content("Successfully created")
|
71
|
+
|
72
|
+
<%=
|
73
|
+
@columns.map { |col|
|
74
|
+
type = eval("#{singular_class}.columns_hash['#{col}']").type
|
75
|
+
|
76
|
+
case type
|
77
|
+
when :datetime
|
78
|
+
when :integer
|
79
|
+
else
|
80
|
+
"expect(page).to have_content(new_#{col})"
|
81
|
+
end
|
82
|
+
|
83
|
+
}.join("\n")
|
84
|
+
%>
|
85
|
+
|
58
86
|
end
|
59
87
|
end
|
60
88
|
|
61
89
|
describe "show" do
|
62
90
|
it "should return a view form" do
|
63
|
-
|
64
|
-
|
65
|
-
id: <%= singular %>.id
|
66
|
-
}
|
67
|
-
assert_response :ok
|
91
|
+
visit <%= path_helper_plural %>
|
92
|
+
|
68
93
|
end
|
69
94
|
end
|
70
95
|
|
71
|
-
describe "update" do
|
72
|
-
it "should
|
73
|
-
|
74
|
-
|
75
|
-
<%= (@nested_args.empty? ? "" : objest_nest_params_by_id_for_specs + ",") %>
|
76
|
-
id: <%= singular %>.id,
|
77
|
-
<%= singular %>: {
|
78
|
-
<%= columns_spec_with_sample_data %>
|
79
|
-
}}
|
80
|
-
|
81
|
-
assert_response :ok
|
82
|
-
end
|
96
|
+
describe "edit & update" do
|
97
|
+
it "should return an editable form" do
|
98
|
+
visit <%= path_helper_plural %>
|
99
|
+
find("a.edit-<%= singular %>-button[href='/<%= namespace_with_slash %><%= plural %>/#{<%= singular %>1.id}/edit']").click
|
83
100
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
101
|
+
expect(page).to have_content("Editing #{<%= singular %>1.<%= derrive_reference_name(singular_class) %>}")
|
102
|
+
<%=
|
103
|
+
@columns.map { |col|
|
104
|
+
type = eval("#{singular_class}.columns_hash['#{col}']").type
|
105
|
+
|
106
|
+
case type
|
107
|
+
when :datetime
|
108
|
+
when :integer
|
109
|
+
else
|
110
|
+
" " + "new_#{col.to_s} = Faker::Name.new \n" +
|
111
|
+
|
112
|
+
' find("input[name=\'' + singular + '[' + col.to_s + ']\'").fill_in(with: new_' + col.to_s + ')'
|
113
|
+
|
114
|
+
end
|
115
|
+
}.join("\n")
|
116
|
+
%>
|
117
|
+
click_button "Save"
|
118
|
+
within("turbo-frame#<%= singular %>__#{<%= singular %>1.id} ") do
|
119
|
+
|
120
|
+
|
121
|
+
<%=
|
122
|
+
@columns.map { |col|
|
123
|
+
type = eval("#{singular_class}.columns_hash['#{col}']").type
|
124
|
+
case type
|
125
|
+
when :datetime
|
126
|
+
when :integer
|
127
|
+
else
|
128
|
+
' expect(page).to have_content(new_' + col.to_s + ')'
|
129
|
+
end
|
130
|
+
}.join("\n")
|
131
|
+
%>
|
132
|
+
|
133
|
+
end
|
134
|
+
end
|
96
135
|
end
|
97
136
|
|
98
|
-
describe "
|
137
|
+
describe "destroy" do
|
99
138
|
it "should destroy" do
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
expect(<%=
|
139
|
+
visit <%= path_helper_plural %>
|
140
|
+
accept_alert do
|
141
|
+
find("a.delete-<%= singular %>-button[href='<%= namespace_with_dash %>/<%= plural %>/#{<%= singular %>1.id}']").click
|
142
|
+
end
|
143
|
+
expect(page).to_not have_content(<%= singular %>1.email)
|
144
|
+
expect(<%= singular_class %>.where(id: <%= singular %>1.id).count).to eq(0)
|
106
145
|
end
|
107
146
|
end
|
108
147
|
end
|