model_base_generators 0.3.9 → 0.4.0

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 (455) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.travis.yml +8 -2
  4. data/Gemfile +1 -1
  5. data/Gemfiles/rails-5.0 +25 -0
  6. data/Gemfiles/rails-5.1 +25 -0
  7. data/README.md +2 -2
  8. data/Rakefile +10 -1
  9. data/{example → examples/rails-5.0}/.gitignore +1 -1
  10. data/{example → examples/rails-5.0}/.model_base/controllers +0 -0
  11. data/{example → examples/rails-5.0}/.rspec +0 -0
  12. data/{example → examples/rails-5.0}/.rubocop.yml +0 -0
  13. data/{example → examples/rails-5.0}/Gemfile +5 -4
  14. data/{example → examples/rails-5.0}/Gemfile.lock +87 -77
  15. data/{example → examples/rails-5.0}/Rakefile +0 -0
  16. data/{example → examples/rails-5.0}/app/assets/config/manifest.js +0 -0
  17. data/{example → examples/rails-5.0}/app/assets/images/.keep +0 -0
  18. data/{example → examples/rails-5.0}/app/assets/javascripts/application.js +0 -0
  19. data/{example → examples/rails-5.0}/app/assets/javascripts/cable.js +0 -0
  20. data/{example → examples/rails-5.0}/app/assets/javascripts/channels/.keep +0 -0
  21. data/{example → examples/rails-5.0}/app/assets/stylesheets/application.css +0 -0
  22. data/{example → examples/rails-5.0}/app/channels/application_cable/channel.rb +0 -0
  23. data/{example → examples/rails-5.0}/app/channels/application_cable/connection.rb +0 -0
  24. data/{example → examples/rails-5.0}/app/controllers/application_controller.rb +0 -0
  25. data/{example → examples/rails-5.0}/app/controllers/attached_files_controller.rb +0 -0
  26. data/{example → examples/rails-5.0}/app/controllers/concerns/.keep +0 -0
  27. data/{example → examples/rails-5.0}/app/controllers/concerns/authentication.rb +0 -0
  28. data/{example → examples/rails-5.0}/app/controllers/issue_comments_controller.rb +0 -0
  29. data/{example → examples/rails-5.0}/app/controllers/issues_controller.rb +0 -0
  30. data/{example → examples/rails-5.0}/app/controllers/phases_controller.rb +0 -0
  31. data/{example → examples/rails-5.0}/app/controllers/project_assignments_controller.rb +0 -0
  32. data/{example → examples/rails-5.0}/app/controllers/projects_controller.rb +0 -0
  33. data/{example → examples/rails-5.0}/app/helpers/application_helper.rb +0 -0
  34. data/{example → examples/rails-5.0}/app/helpers/attached_files_helper.rb +0 -0
  35. data/{example → examples/rails-5.0}/app/helpers/issue_comments_helper.rb +0 -0
  36. data/{example → examples/rails-5.0}/app/helpers/issues_helper.rb +0 -0
  37. data/{example → examples/rails-5.0}/app/helpers/phases_helper.rb +0 -0
  38. data/{example → examples/rails-5.0}/app/helpers/project_assignments_helper.rb +0 -0
  39. data/{example → examples/rails-5.0}/app/helpers/projects_helper.rb +0 -0
  40. data/{example → examples/rails-5.0}/app/jobs/application_job.rb +0 -0
  41. data/{example → examples/rails-5.0}/app/mailers/application_mailer.rb +0 -0
  42. data/{example → examples/rails-5.0}/app/models/ability.rb +0 -0
  43. data/{example → examples/rails-5.0}/app/models/application_record.rb +0 -0
  44. data/{example → examples/rails-5.0}/app/models/attached_file.rb +0 -0
  45. data/{example → examples/rails-5.0}/app/models/concerns/.keep +0 -0
  46. data/{example → examples/rails-5.0}/app/models/issue.rb +1 -1
  47. data/{example → examples/rails-5.0}/app/models/issue_comment.rb +0 -0
  48. data/{example → examples/rails-5.0}/app/models/phase.rb +0 -0
  49. data/{example → examples/rails-5.0}/app/models/project.rb +0 -0
  50. data/{example → examples/rails-5.0}/app/models/project_assignment.rb +0 -0
  51. data/{example → examples/rails-5.0}/app/models/user.rb +0 -0
  52. data/{example → examples/rails-5.0}/app/validations/ar_internal_metadatum_validation.rb +0 -0
  53. data/{example → examples/rails-5.0}/app/validations/attached_file_validation.rb +0 -0
  54. data/{example → examples/rails-5.0}/app/validations/issue_comment_validation.rb +0 -0
  55. data/{example → examples/rails-5.0}/app/validations/issue_validation.rb +0 -0
  56. data/{example → examples/rails-5.0}/app/validations/phase_validation.rb +0 -0
  57. data/{example → examples/rails-5.0}/app/validations/project_assignment_validation.rb +0 -0
  58. data/{example → examples/rails-5.0}/app/validations/project_validation.rb +0 -0
  59. data/{example → examples/rails-5.0}/app/validations/user_validation.rb +0 -0
  60. data/{example → examples/rails-5.0}/app/views/attached_files/_attached_file.json.jbuilder +0 -0
  61. data/{example → examples/rails-5.0}/app/views/attached_files/_form.html.erb +0 -0
  62. data/{example → examples/rails-5.0}/app/views/attached_files/_table.html.erb +0 -0
  63. data/{example → examples/rails-5.0}/app/views/attached_files/edit.html.erb +0 -0
  64. data/{example → examples/rails-5.0}/app/views/attached_files/index.html.erb +0 -0
  65. data/{example → examples/rails-5.0}/app/views/attached_files/index.json.jbuilder +0 -0
  66. data/{example → examples/rails-5.0}/app/views/attached_files/new.html.erb +0 -0
  67. data/{example → examples/rails-5.0}/app/views/attached_files/show.html.erb +0 -0
  68. data/{example → examples/rails-5.0}/app/views/attached_files/show.json.jbuilder +0 -0
  69. data/{example → examples/rails-5.0}/app/views/issue_comments/_form.html.erb +0 -0
  70. data/examples/rails-5.0/app/views/issue_comments/_issue_comment.json.jbuilder +2 -0
  71. data/{example → examples/rails-5.0}/app/views/issue_comments/_table.html.erb +0 -0
  72. data/{example → examples/rails-5.0}/app/views/issue_comments/edit.html.erb +0 -0
  73. data/{example → examples/rails-5.0}/app/views/issue_comments/index.html.erb +0 -0
  74. data/examples/rails-5.0/app/views/issue_comments/index.json.jbuilder +1 -0
  75. data/{example → examples/rails-5.0}/app/views/issue_comments/new.html.erb +0 -0
  76. data/{example → examples/rails-5.0}/app/views/issue_comments/show.html.erb +0 -0
  77. data/examples/rails-5.0/app/views/issue_comments/show.json.jbuilder +1 -0
  78. data/{example → examples/rails-5.0}/app/views/issues/_form.html.erb +0 -0
  79. data/examples/rails-5.0/app/views/issues/_issue.json.jbuilder +2 -0
  80. data/{example → examples/rails-5.0}/app/views/issues/_table.html.erb +0 -0
  81. data/{example → examples/rails-5.0}/app/views/issues/edit.html.erb +0 -0
  82. data/{example → examples/rails-5.0}/app/views/issues/index.html.erb +0 -0
  83. data/examples/rails-5.0/app/views/issues/index.json.jbuilder +1 -0
  84. data/{example → examples/rails-5.0}/app/views/issues/new.html.erb +0 -0
  85. data/{example → examples/rails-5.0}/app/views/issues/show.html.erb +0 -0
  86. data/examples/rails-5.0/app/views/issues/show.json.jbuilder +1 -0
  87. data/{example → examples/rails-5.0}/app/views/layouts/application.html.erb +0 -0
  88. data/{example → examples/rails-5.0}/app/views/layouts/mailer.html.erb +0 -0
  89. data/{example → examples/rails-5.0}/app/views/layouts/mailer.text.erb +0 -0
  90. data/{example → examples/rails-5.0}/app/views/phases/_form.html.erb +0 -0
  91. data/examples/rails-5.0/app/views/phases/_phase.json.jbuilder +2 -0
  92. data/{example → examples/rails-5.0}/app/views/phases/_table.html.erb +0 -0
  93. data/{example → examples/rails-5.0}/app/views/phases/edit.html.erb +0 -0
  94. data/{example → examples/rails-5.0}/app/views/phases/index.html.erb +0 -0
  95. data/examples/rails-5.0/app/views/phases/index.json.jbuilder +1 -0
  96. data/{example → examples/rails-5.0}/app/views/phases/new.html.erb +0 -0
  97. data/{example → examples/rails-5.0}/app/views/phases/show.html.erb +0 -0
  98. data/examples/rails-5.0/app/views/phases/show.json.jbuilder +1 -0
  99. data/{example → examples/rails-5.0}/app/views/project_assignments/_form.html.erb +0 -0
  100. data/examples/rails-5.0/app/views/project_assignments/_project_assignment.json.jbuilder +2 -0
  101. data/{example → examples/rails-5.0}/app/views/project_assignments/_table.html.erb +0 -0
  102. data/{example → examples/rails-5.0}/app/views/project_assignments/edit.html.erb +0 -0
  103. data/{example → examples/rails-5.0}/app/views/project_assignments/index.html.erb +0 -0
  104. data/examples/rails-5.0/app/views/project_assignments/index.json.jbuilder +1 -0
  105. data/{example → examples/rails-5.0}/app/views/project_assignments/new.html.erb +0 -0
  106. data/{example → examples/rails-5.0}/app/views/project_assignments/show.html.erb +0 -0
  107. data/examples/rails-5.0/app/views/project_assignments/show.json.jbuilder +1 -0
  108. data/{example → examples/rails-5.0}/app/views/projects/_form.html.erb +0 -0
  109. data/examples/rails-5.0/app/views/projects/_project.json.jbuilder +2 -0
  110. data/{example → examples/rails-5.0}/app/views/projects/_table.html.erb +0 -0
  111. data/{example → examples/rails-5.0}/app/views/projects/edit.html.erb +0 -0
  112. data/{example → examples/rails-5.0}/app/views/projects/index.html.erb +0 -0
  113. data/examples/rails-5.0/app/views/projects/index.json.jbuilder +1 -0
  114. data/{example → examples/rails-5.0}/app/views/projects/new.html.erb +0 -0
  115. data/{example → examples/rails-5.0}/app/views/projects/show.html.erb +0 -0
  116. data/examples/rails-5.0/app/views/projects/show.json.jbuilder +1 -0
  117. data/{example → examples/rails-5.0}/bin/bundle +0 -0
  118. data/{example → examples/rails-5.0}/bin/rails +0 -0
  119. data/{example → examples/rails-5.0}/bin/rake +0 -0
  120. data/{example → examples/rails-5.0}/bin/setup +0 -0
  121. data/{example → examples/rails-5.0}/bin/update +0 -0
  122. data/{example → examples/rails-5.0}/config.ru +0 -0
  123. data/{example → examples/rails-5.0}/config/application.rb +1 -2
  124. data/{example → examples/rails-5.0}/config/boot.rb +0 -0
  125. data/{example → examples/rails-5.0}/config/cable.yml +0 -0
  126. data/{example → examples/rails-5.0}/config/database.yml +0 -0
  127. data/{example → examples/rails-5.0}/config/environment.rb +0 -0
  128. data/{example → examples/rails-5.0}/config/environments/development.rb +0 -0
  129. data/{example → examples/rails-5.0}/config/environments/production.rb +0 -0
  130. data/{example → examples/rails-5.0}/config/environments/test.rb +0 -0
  131. data/{example → examples/rails-5.0}/config/initializers/application_controller_renderer.rb +0 -0
  132. data/{example → examples/rails-5.0}/config/initializers/assets.rb +0 -0
  133. data/{example → examples/rails-5.0}/config/initializers/backtrace_silencers.rb +0 -0
  134. data/{example → examples/rails-5.0}/config/initializers/cookies_serializer.rb +0 -0
  135. data/{example → examples/rails-5.0}/config/initializers/devise.rb +0 -0
  136. data/{example → examples/rails-5.0}/config/initializers/filter_parameter_logging.rb +0 -0
  137. data/{example → examples/rails-5.0}/config/initializers/inflections.rb +0 -0
  138. data/{example → examples/rails-5.0}/config/initializers/mime_types.rb +0 -0
  139. data/{example → examples/rails-5.0}/config/initializers/new_framework_defaults.rb +0 -0
  140. data/{example → examples/rails-5.0}/config/initializers/pretty_validation.rb +0 -0
  141. data/{example → examples/rails-5.0}/config/initializers/session_store.rb +0 -0
  142. data/{example → examples/rails-5.0}/config/initializers/wrap_parameters.rb +0 -0
  143. data/{example → examples/rails-5.0}/config/locales/devise.en.yml +0 -0
  144. data/{example → examples/rails-5.0}/config/locales/devise.ja.yml +0 -0
  145. data/{example → examples/rails-5.0}/config/locales/en.yml +0 -0
  146. data/{example → examples/rails-5.0}/config/locales/rails.ja.yml +0 -0
  147. data/{example → examples/rails-5.0}/config/puma.rb +0 -0
  148. data/{example → examples/rails-5.0}/config/routes.rb +0 -0
  149. data/{example → examples/rails-5.0}/config/secrets.yml +0 -0
  150. data/{example → examples/rails-5.0}/config/spring.rb +0 -0
  151. data/{example → examples/rails-5.0}/db/schema.rb +0 -0
  152. data/{example → examples/rails-5.0}/lib/assets/.keep +0 -0
  153. data/{example → examples/rails-5.0}/log/.keep +0 -0
  154. data/{example → examples/rails-5.0}/public/404.html +0 -0
  155. data/{example → examples/rails-5.0}/public/422.html +0 -0
  156. data/{example → examples/rails-5.0}/public/500.html +0 -0
  157. data/{example → examples/rails-5.0}/public/apple-touch-icon-precomposed.png +0 -0
  158. data/{example → examples/rails-5.0}/public/apple-touch-icon.png +0 -0
  159. data/{example → examples/rails-5.0}/public/favicon.ico +0 -0
  160. data/{example → examples/rails-5.0}/spec/controllers/attached_files_controller_spec.rb +6 -6
  161. data/{example → examples/rails-5.0}/spec/controllers/issue_comments_controller_spec.rb +5 -5
  162. data/{example → examples/rails-5.0}/spec/controllers/issues_controller_spec.rb +4 -4
  163. data/{example → examples/rails-5.0}/spec/controllers/phases_controller_spec.rb +4 -4
  164. data/{example → examples/rails-5.0}/spec/controllers/project_assignments_controller_spec.rb +4 -4
  165. data/{example → examples/rails-5.0}/spec/controllers/projects_controller_spec.rb +3 -3
  166. data/{example → examples/rails-5.0}/spec/factories/attached_files.rb +1 -1
  167. data/{example → examples/rails-5.0}/spec/factories/issue_comments.rb +1 -1
  168. data/{example → examples/rails-5.0}/spec/factories/issues.rb +1 -1
  169. data/{example → examples/rails-5.0}/spec/factories/phases.rb +1 -1
  170. data/{example → examples/rails-5.0}/spec/factories/project_assignments.rb +1 -1
  171. data/{example → examples/rails-5.0}/spec/factories/projects.rb +1 -1
  172. data/{example → examples/rails-5.0}/spec/factories/users.rb +1 -1
  173. data/{example → examples/rails-5.0}/spec/helpers/attached_files_helper_spec.rb +0 -0
  174. data/{example → examples/rails-5.0}/spec/helpers/issue_comments_helper_spec.rb +0 -0
  175. data/{example → examples/rails-5.0}/spec/helpers/issues_helper_spec.rb +0 -0
  176. data/{example → examples/rails-5.0}/spec/helpers/phases_helper_spec.rb +0 -0
  177. data/{example → examples/rails-5.0}/spec/helpers/project_assignments_helper_spec.rb +0 -0
  178. data/{example → examples/rails-5.0}/spec/helpers/projects_helper_spec.rb +0 -0
  179. data/{example → examples/rails-5.0}/spec/rails_helper.rb +0 -0
  180. data/{example → examples/rails-5.0}/spec/requests/attached_files_spec.rb +1 -1
  181. data/{example → examples/rails-5.0}/spec/requests/issue_comments_spec.rb +1 -1
  182. data/{example → examples/rails-5.0}/spec/requests/issues_spec.rb +1 -1
  183. data/{example → examples/rails-5.0}/spec/requests/phases_spec.rb +1 -1
  184. data/{example → examples/rails-5.0}/spec/requests/project_assignments_spec.rb +1 -1
  185. data/{example → examples/rails-5.0}/spec/requests/projects_spec.rb +1 -1
  186. data/{example → examples/rails-5.0}/spec/routing/attached_files_routing_spec.rb +0 -0
  187. data/{example → examples/rails-5.0}/spec/routing/issue_comments_routing_spec.rb +0 -0
  188. data/{example → examples/rails-5.0}/spec/routing/issues_routing_spec.rb +0 -0
  189. data/{example → examples/rails-5.0}/spec/routing/phases_routing_spec.rb +0 -0
  190. data/{example → examples/rails-5.0}/spec/routing/project_assignments_routing_spec.rb +0 -0
  191. data/{example → examples/rails-5.0}/spec/routing/projects_routing_spec.rb +0 -0
  192. data/{example → examples/rails-5.0}/spec/spec_helper.rb +0 -0
  193. data/{example → examples/rails-5.0}/spec/support/controller_macros.rb +2 -2
  194. data/{example → examples/rails-5.0}/spec/support/devise.rb +0 -0
  195. data/{example → examples/rails-5.0}/spec/support/field_assertions.rb +0 -0
  196. data/{example → examples/rails-5.0}/spec/support/time_match_support.rb +0 -0
  197. data/{example → examples/rails-5.0}/spec/views/attached_files/edit.html.erb_spec.rb +5 -5
  198. data/examples/rails-5.0/spec/views/attached_files/index.html.erb_spec.rb +22 -0
  199. data/{example → examples/rails-5.0}/spec/views/attached_files/new.html.erb_spec.rb +5 -5
  200. data/examples/rails-5.0/spec/views/attached_files/show.html.erb_spec.rb +19 -0
  201. data/{example → examples/rails-5.0}/spec/views/issue_comments/edit.html.erb_spec.rb +4 -4
  202. data/{example → examples/rails-5.0}/spec/views/issue_comments/index.html.erb_spec.rb +5 -5
  203. data/{example → examples/rails-5.0}/spec/views/issue_comments/new.html.erb_spec.rb +4 -4
  204. data/{example → examples/rails-5.0}/spec/views/issue_comments/show.html.erb_spec.rb +4 -4
  205. data/{example → examples/rails-5.0}/spec/views/issues/edit.html.erb_spec.rb +3 -3
  206. data/{example → examples/rails-5.0}/spec/views/issues/index.html.erb_spec.rb +4 -4
  207. data/{example → examples/rails-5.0}/spec/views/issues/new.html.erb_spec.rb +3 -3
  208. data/{example → examples/rails-5.0}/spec/views/issues/show.html.erb_spec.rb +3 -3
  209. data/{example → examples/rails-5.0}/spec/views/phases/edit.html.erb_spec.rb +3 -3
  210. data/{example → examples/rails-5.0}/spec/views/phases/index.html.erb_spec.rb +4 -4
  211. data/{example → examples/rails-5.0}/spec/views/phases/new.html.erb_spec.rb +3 -3
  212. data/{example → examples/rails-5.0}/spec/views/phases/show.html.erb_spec.rb +3 -3
  213. data/{example → examples/rails-5.0}/spec/views/project_assignments/edit.html.erb_spec.rb +3 -3
  214. data/{example → examples/rails-5.0}/spec/views/project_assignments/index.html.erb_spec.rb +4 -4
  215. data/{example → examples/rails-5.0}/spec/views/project_assignments/new.html.erb_spec.rb +3 -3
  216. data/{example → examples/rails-5.0}/spec/views/project_assignments/show.html.erb_spec.rb +3 -3
  217. data/{example → examples/rails-5.0}/spec/views/projects/edit.html.erb_spec.rb +2 -2
  218. data/{example → examples/rails-5.0}/spec/views/projects/index.html.erb_spec.rb +3 -3
  219. data/{example → examples/rails-5.0}/spec/views/projects/new.html.erb_spec.rb +2 -2
  220. data/{example → examples/rails-5.0}/spec/views/projects/show.html.erb_spec.rb +2 -2
  221. data/examples/rails-5.0/tmp/.keep +0 -0
  222. data/examples/rails-5.1/.gitignore +4 -0
  223. data/examples/rails-5.1/.model_base +1 -0
  224. data/examples/rails-5.1/.rspec +2 -0
  225. data/examples/rails-5.1/Gemfile +87 -0
  226. data/examples/rails-5.1/Gemfile.lock +361 -0
  227. data/examples/rails-5.1/README.md +24 -0
  228. data/examples/rails-5.1/Rakefile +6 -0
  229. data/examples/rails-5.1/app/assets/config/manifest.js +3 -0
  230. data/examples/rails-5.1/app/assets/images/.keep +0 -0
  231. data/examples/rails-5.1/app/assets/javascripts/application.js +15 -0
  232. data/examples/rails-5.1/app/assets/javascripts/bootstrap.js.coffee +3 -0
  233. data/examples/rails-5.1/app/assets/javascripts/cable.js +13 -0
  234. data/examples/rails-5.1/app/assets/javascripts/channels/.keep +0 -0
  235. data/examples/rails-5.1/app/assets/stylesheets/application.css +15 -0
  236. data/examples/rails-5.1/app/assets/stylesheets/bootstrap_and_overrides.css +6 -0
  237. data/examples/rails-5.1/app/channels/application_cable/channel.rb +4 -0
  238. data/examples/rails-5.1/app/channels/application_cable/connection.rb +4 -0
  239. data/examples/rails-5.1/app/controllers/application_controller.rb +3 -0
  240. data/examples/rails-5.1/app/controllers/attached_files_controller.rb +63 -0
  241. data/examples/rails-5.1/app/controllers/concerns/.keep +0 -0
  242. data/examples/rails-5.1/app/controllers/concerns/authentication.rb +13 -0
  243. data/examples/rails-5.1/app/controllers/issue_comments_controller.rb +63 -0
  244. data/examples/rails-5.1/app/controllers/issues_controller.rb +63 -0
  245. data/examples/rails-5.1/app/controllers/phases_controller.rb +63 -0
  246. data/examples/rails-5.1/app/controllers/project_assignments_controller.rb +63 -0
  247. data/examples/rails-5.1/app/controllers/projects_controller.rb +63 -0
  248. data/examples/rails-5.1/app/helpers/application_helper.rb +2 -0
  249. data/examples/rails-5.1/app/helpers/attached_files_helper.rb +3 -0
  250. data/examples/rails-5.1/app/helpers/issue_comments_helper.rb +3 -0
  251. data/examples/rails-5.1/app/helpers/issues_helper.rb +3 -0
  252. data/examples/rails-5.1/app/helpers/phases_helper.rb +3 -0
  253. data/examples/rails-5.1/app/helpers/project_assignments_helper.rb +3 -0
  254. data/examples/rails-5.1/app/helpers/projects_helper.rb +3 -0
  255. data/examples/rails-5.1/app/jobs/application_job.rb +2 -0
  256. data/examples/rails-5.1/app/mailers/application_mailer.rb +4 -0
  257. data/examples/rails-5.1/app/models +1 -0
  258. data/examples/rails-5.1/app/validations +1 -0
  259. data/examples/rails-5.1/app/views/attached_files/_attached_file.json.jbuilder +2 -0
  260. data/examples/rails-5.1/app/views/attached_files/_form.html.erb +48 -0
  261. data/examples/rails-5.1/app/views/attached_files/_table.html.erb +31 -0
  262. data/examples/rails-5.1/app/views/attached_files/edit.html.erb +5 -0
  263. data/examples/rails-5.1/app/views/attached_files/index.html.erb +9 -0
  264. data/examples/rails-5.1/app/views/attached_files/index.json.jbuilder +1 -0
  265. data/examples/rails-5.1/app/views/attached_files/new.html.erb +5 -0
  266. data/examples/rails-5.1/app/views/attached_files/show.html.erb +27 -0
  267. data/examples/rails-5.1/app/views/attached_files/show.json.jbuilder +1 -0
  268. data/examples/rails-5.1/app/views/issue_comments/_form.html.erb +55 -0
  269. data/{example → examples/rails-5.1}/app/views/issue_comments/_issue_comment.json.jbuilder +0 -0
  270. data/examples/rails-5.1/app/views/issue_comments/_table.html.erb +33 -0
  271. data/examples/rails-5.1/app/views/issue_comments/edit.html.erb +5 -0
  272. data/examples/rails-5.1/app/views/issue_comments/index.html.erb +9 -0
  273. data/{example → examples/rails-5.1}/app/views/issue_comments/index.json.jbuilder +0 -0
  274. data/examples/rails-5.1/app/views/issue_comments/new.html.erb +5 -0
  275. data/examples/rails-5.1/app/views/issue_comments/show.html.erb +29 -0
  276. data/examples/rails-5.1/app/views/issue_comments/show.json.jbuilder +1 -0
  277. data/examples/rails-5.1/app/views/issues/_form.html.erb +62 -0
  278. data/examples/rails-5.1/app/views/issues/_issue.json.jbuilder +2 -0
  279. data/examples/rails-5.1/app/views/issues/_table.html.erb +35 -0
  280. data/examples/rails-5.1/app/views/issues/edit.html.erb +5 -0
  281. data/examples/rails-5.1/app/views/issues/index.html.erb +9 -0
  282. data/examples/rails-5.1/app/views/issues/index.json.jbuilder +1 -0
  283. data/examples/rails-5.1/app/views/issues/new.html.erb +5 -0
  284. data/examples/rails-5.1/app/views/issues/show.html.erb +31 -0
  285. data/examples/rails-5.1/app/views/issues/show.json.jbuilder +1 -0
  286. data/examples/rails-5.1/app/views/kaminari/_first_page.html.erb +3 -0
  287. data/examples/rails-5.1/app/views/kaminari/_gap.html.erb +3 -0
  288. data/examples/rails-5.1/app/views/kaminari/_last_page.html.erb +3 -0
  289. data/examples/rails-5.1/app/views/kaminari/_next_page.html.erb +3 -0
  290. data/examples/rails-5.1/app/views/kaminari/_page.html.erb +9 -0
  291. data/examples/rails-5.1/app/views/kaminari/_paginator.html.erb +15 -0
  292. data/examples/rails-5.1/app/views/kaminari/_prev_page.html.erb +3 -0
  293. data/examples/rails-5.1/app/views/layouts/application.html.erb +65 -0
  294. data/examples/rails-5.1/app/views/layouts/mailer.html.erb +13 -0
  295. data/examples/rails-5.1/app/views/layouts/mailer.text.erb +1 -0
  296. data/examples/rails-5.1/app/views/phases/_form.html.erb +55 -0
  297. data/examples/rails-5.1/app/views/phases/_phase.json.jbuilder +2 -0
  298. data/examples/rails-5.1/app/views/phases/_table.html.erb +31 -0
  299. data/examples/rails-5.1/app/views/phases/edit.html.erb +5 -0
  300. data/examples/rails-5.1/app/views/phases/index.html.erb +9 -0
  301. data/examples/rails-5.1/app/views/phases/index.json.jbuilder +1 -0
  302. data/examples/rails-5.1/app/views/phases/new.html.erb +5 -0
  303. data/examples/rails-5.1/app/views/phases/show.html.erb +25 -0
  304. data/examples/rails-5.1/app/views/phases/show.json.jbuilder +1 -0
  305. data/examples/rails-5.1/app/views/project_assignments/_form.html.erb +62 -0
  306. data/examples/rails-5.1/app/views/project_assignments/_project_assignment.json.jbuilder +2 -0
  307. data/examples/rails-5.1/app/views/project_assignments/_table.html.erb +35 -0
  308. data/examples/rails-5.1/app/views/project_assignments/edit.html.erb +5 -0
  309. data/examples/rails-5.1/app/views/project_assignments/index.html.erb +9 -0
  310. data/examples/rails-5.1/app/views/project_assignments/index.json.jbuilder +1 -0
  311. data/examples/rails-5.1/app/views/project_assignments/new.html.erb +5 -0
  312. data/examples/rails-5.1/app/views/project_assignments/show.html.erb +29 -0
  313. data/examples/rails-5.1/app/views/project_assignments/show.json.jbuilder +1 -0
  314. data/examples/rails-5.1/app/views/projects/_form.html.erb +48 -0
  315. data/examples/rails-5.1/app/views/projects/_project.json.jbuilder +2 -0
  316. data/examples/rails-5.1/app/views/projects/_table.html.erb +29 -0
  317. data/examples/rails-5.1/app/views/projects/edit.html.erb +5 -0
  318. data/examples/rails-5.1/app/views/projects/index.html.erb +9 -0
  319. data/examples/rails-5.1/app/views/projects/index.json.jbuilder +1 -0
  320. data/examples/rails-5.1/app/views/projects/new.html.erb +5 -0
  321. data/examples/rails-5.1/app/views/projects/show.html.erb +23 -0
  322. data/examples/rails-5.1/app/views/projects/show.json.jbuilder +1 -0
  323. data/examples/rails-5.1/bin/bundle +3 -0
  324. data/examples/rails-5.1/bin/rails +9 -0
  325. data/examples/rails-5.1/bin/rake +9 -0
  326. data/examples/rails-5.1/bin/setup +38 -0
  327. data/examples/rails-5.1/bin/spring +17 -0
  328. data/examples/rails-5.1/bin/update +29 -0
  329. data/examples/rails-5.1/bin/yarn +11 -0
  330. data/examples/rails-5.1/config.ru +5 -0
  331. data/examples/rails-5.1/config/application.rb +31 -0
  332. data/examples/rails-5.1/config/boot.rb +3 -0
  333. data/examples/rails-5.1/config/cable.yml +10 -0
  334. data/examples/rails-5.1/config/database.yml +25 -0
  335. data/examples/rails-5.1/config/environment.rb +5 -0
  336. data/examples/rails-5.1/config/environments/development.rb +79 -0
  337. data/examples/rails-5.1/config/environments/production.rb +91 -0
  338. data/examples/rails-5.1/config/environments/test.rb +42 -0
  339. data/examples/rails-5.1/config/initializers/application_controller_renderer.rb +8 -0
  340. data/examples/rails-5.1/config/initializers/assets.rb +14 -0
  341. data/examples/rails-5.1/config/initializers/backtrace_silencers.rb +7 -0
  342. data/examples/rails-5.1/config/initializers/cookies_serializer.rb +5 -0
  343. data/examples/rails-5.1/config/initializers/devise.rb +279 -0
  344. data/examples/rails-5.1/config/initializers/filter_parameter_logging.rb +4 -0
  345. data/examples/rails-5.1/config/initializers/inflections.rb +16 -0
  346. data/examples/rails-5.1/config/initializers/mime_types.rb +4 -0
  347. data/examples/rails-5.1/config/initializers/wrap_parameters.rb +14 -0
  348. data/examples/rails-5.1/config/locales/devise.en.yml +64 -0
  349. data/examples/rails-5.1/config/locales/en.bootstrap.yml +23 -0
  350. data/examples/rails-5.1/config/locales/en.yml +33 -0
  351. data/examples/rails-5.1/config/locales/ja.devise.yml +60 -0
  352. data/examples/rails-5.1/config/locales/ja.yml +205 -0
  353. data/examples/rails-5.1/config/puma.rb +56 -0
  354. data/examples/rails-5.1/config/routes.rb +10 -0
  355. data/examples/rails-5.1/config/secrets.yml +32 -0
  356. data/examples/rails-5.1/config/spring.rb +6 -0
  357. data/examples/rails-5.1/db/schema.rb +1 -0
  358. data/examples/rails-5.1/lib/assets/.keep +0 -0
  359. data/examples/rails-5.1/lib/tasks/.keep +0 -0
  360. data/examples/rails-5.1/log/.keep +0 -0
  361. data/examples/rails-5.1/package.json +5 -0
  362. data/examples/rails-5.1/public/404.html +67 -0
  363. data/examples/rails-5.1/public/422.html +67 -0
  364. data/examples/rails-5.1/public/500.html +66 -0
  365. data/examples/rails-5.1/public/apple-touch-icon-precomposed.png +0 -0
  366. data/examples/rails-5.1/public/apple-touch-icon.png +0 -0
  367. data/examples/rails-5.1/public/favicon.ico +0 -0
  368. data/examples/rails-5.1/public/robots.txt +1 -0
  369. data/examples/rails-5.1/spec/controllers/attached_files_controller_spec.rb +181 -0
  370. data/examples/rails-5.1/spec/controllers/issue_comments_controller_spec.rb +179 -0
  371. data/examples/rails-5.1/spec/controllers/issues_controller_spec.rb +181 -0
  372. data/examples/rails-5.1/spec/controllers/phases_controller_spec.rb +183 -0
  373. data/examples/rails-5.1/spec/controllers/project_assignments_controller_spec.rb +178 -0
  374. data/examples/rails-5.1/spec/controllers/projects_controller_spec.rb +180 -0
  375. data/examples/rails-5.1/spec/factories +1 -0
  376. data/examples/rails-5.1/spec/helpers/attached_files_helper_spec.rb +15 -0
  377. data/examples/rails-5.1/spec/helpers/issue_comments_helper_spec.rb +15 -0
  378. data/examples/rails-5.1/spec/helpers/issues_helper_spec.rb +15 -0
  379. data/examples/rails-5.1/spec/helpers/phases_helper_spec.rb +15 -0
  380. data/examples/rails-5.1/spec/helpers/project_assignments_helper_spec.rb +15 -0
  381. data/examples/rails-5.1/spec/helpers/projects_helper_spec.rb +15 -0
  382. data/examples/rails-5.1/spec/models/user_spec.rb +5 -0
  383. data/examples/rails-5.1/spec/rails_helper.rb +69 -0
  384. data/examples/rails-5.1/spec/requests/attached_files_spec.rb +14 -0
  385. data/examples/rails-5.1/spec/requests/issue_comments_spec.rb +14 -0
  386. data/examples/rails-5.1/spec/requests/issues_spec.rb +14 -0
  387. data/examples/rails-5.1/spec/requests/phases_spec.rb +14 -0
  388. data/examples/rails-5.1/spec/requests/project_assignments_spec.rb +14 -0
  389. data/examples/rails-5.1/spec/requests/projects_spec.rb +14 -0
  390. data/examples/rails-5.1/spec/routing/attached_files_routing_spec.rb +38 -0
  391. data/examples/rails-5.1/spec/routing/issue_comments_routing_spec.rb +38 -0
  392. data/examples/rails-5.1/spec/routing/issues_routing_spec.rb +38 -0
  393. data/examples/rails-5.1/spec/routing/phases_routing_spec.rb +38 -0
  394. data/examples/rails-5.1/spec/routing/project_assignments_routing_spec.rb +38 -0
  395. data/examples/rails-5.1/spec/routing/projects_routing_spec.rb +38 -0
  396. data/examples/rails-5.1/spec/spec_helper.rb +96 -0
  397. data/examples/rails-5.1/spec/support/controller_macros.rb +19 -0
  398. data/examples/rails-5.1/spec/support/devise.rb +19 -0
  399. data/examples/rails-5.1/spec/support/field_assertions.rb +6 -0
  400. data/examples/rails-5.1/spec/support/time_match_support.rb +10 -0
  401. data/examples/rails-5.1/spec/views/attached_files/edit.html.erb_spec.rb +23 -0
  402. data/examples/rails-5.1/spec/views/attached_files/index.html.erb_spec.rb +22 -0
  403. data/examples/rails-5.1/spec/views/attached_files/new.html.erb_spec.rb +23 -0
  404. data/examples/rails-5.1/spec/views/attached_files/show.html.erb_spec.rb +19 -0
  405. data/examples/rails-5.1/spec/views/issue_comments/edit.html.erb_spec.rb +23 -0
  406. data/examples/rails-5.1/spec/views/issue_comments/index.html.erb_spec.rb +22 -0
  407. data/examples/rails-5.1/spec/views/issue_comments/new.html.erb_spec.rb +23 -0
  408. data/examples/rails-5.1/spec/views/issue_comments/show.html.erb_spec.rb +19 -0
  409. data/examples/rails-5.1/spec/views/issues/edit.html.erb_spec.rb +23 -0
  410. data/examples/rails-5.1/spec/views/issues/index.html.erb_spec.rb +23 -0
  411. data/examples/rails-5.1/spec/views/issues/new.html.erb_spec.rb +23 -0
  412. data/examples/rails-5.1/spec/views/issues/show.html.erb_spec.rb +20 -0
  413. data/examples/rails-5.1/spec/views/phases/edit.html.erb_spec.rb +22 -0
  414. data/examples/rails-5.1/spec/views/phases/index.html.erb_spec.rb +22 -0
  415. data/examples/rails-5.1/spec/views/phases/new.html.erb_spec.rb +22 -0
  416. data/examples/rails-5.1/spec/views/phases/show.html.erb_spec.rb +19 -0
  417. data/examples/rails-5.1/spec/views/project_assignments/edit.html.erb_spec.rb +23 -0
  418. data/examples/rails-5.1/spec/views/project_assignments/index.html.erb_spec.rb +21 -0
  419. data/examples/rails-5.1/spec/views/project_assignments/new.html.erb_spec.rb +23 -0
  420. data/examples/rails-5.1/spec/views/project_assignments/show.html.erb_spec.rb +19 -0
  421. data/examples/rails-5.1/spec/views/projects/edit.html.erb_spec.rb +20 -0
  422. data/examples/rails-5.1/spec/views/projects/index.html.erb_spec.rb +20 -0
  423. data/examples/rails-5.1/spec/views/projects/new.html.erb_spec.rb +20 -0
  424. data/examples/rails-5.1/spec/views/projects/show.html.erb_spec.rb +17 -0
  425. data/examples/rails-5.1/test/application_system_test_case.rb +5 -0
  426. data/examples/rails-5.1/test/controllers/.keep +0 -0
  427. data/examples/rails-5.1/test/fixtures/.keep +0 -0
  428. data/examples/rails-5.1/test/fixtures/files/.keep +0 -0
  429. data/examples/rails-5.1/test/helpers/.keep +0 -0
  430. data/examples/rails-5.1/test/integration/.keep +0 -0
  431. data/examples/rails-5.1/test/mailers/.keep +0 -0
  432. data/examples/rails-5.1/test/models/.keep +0 -0
  433. data/examples/rails-5.1/test/system/.keep +0 -0
  434. data/examples/rails-5.1/test/test_helper.rb +9 -0
  435. data/examples/rails-5.1/tmp/.keep +0 -0
  436. data/examples/rails-5.1/vendor/.keep +0 -0
  437. data/lib/generators/model_base/templates/spec/factories/users.rb +1 -1
  438. data/lib/generators/model_base/templates/spec/support/controller_macros.rb +2 -2
  439. data/lib/model_base/generators.rb +4 -4
  440. data/lib/model_base/generators/{factory_girl → factory_bot}/model.rb +8 -8
  441. data/lib/model_base/meta_model.rb +12 -12
  442. data/lib/model_base/version.rb +1 -1
  443. data/lib/templates/{factory_girl → factory_bot}/factory.rb +2 -2
  444. data/lib/templates/rspec/integration/request_spec.rb +1 -1
  445. data/lib/templates/rspec/scaffold/controller_spec.rb +3 -3
  446. data/lib/templates/rspec/scaffold/edit_spec.rb +2 -2
  447. data/lib/templates/rspec/scaffold/index_spec.rb +3 -3
  448. data/lib/templates/rspec/scaffold/new_spec.rb +2 -2
  449. data/lib/templates/rspec/scaffold/show_spec.rb +2 -2
  450. data/model_base_generators.gemspec +1 -0
  451. data/rails_template.rb +26 -10
  452. metadata +435 -206
  453. data/example/app/views/issue_comments/show.json.jbuilder +0 -1
  454. data/example/spec/views/attached_files/index.html.erb_spec.rb +0 -22
  455. data/example/spec/views/attached_files/show.html.erb_spec.rb +0 -19
@@ -0,0 +1,179 @@
1
+ # frozen_string_literal: true
2
+ require 'rails_helper'
3
+
4
+ # This spec was generated by rspec-rails when you ran the scaffold generator.
5
+ # It demonstrates how one might use RSpec to specify the controller code that
6
+ # was generated by Rails when you ran the scaffold generator.
7
+ #
8
+ # It assumes that the implementation code is generated by the rails scaffold
9
+ # generator. If you are using any extension libraries to generate different
10
+ # controller code, this generated spec may or may not pass.
11
+ #
12
+ # It only uses APIs available in rails and/or rspec-rails. There are a number
13
+ # of tools you can use to make these specs even more expressive, but we're
14
+ # sticking to rails and rspec-rails APIs to keep things simple and stable.
15
+ #
16
+ # Compared to earlier versions of this generator, there is very limited use of
17
+ # stubs and message expectations in this spec. Stubs are only used when there
18
+ # is no simpler way to get a handle on the object needed for the example.
19
+ # Message expectations are only used when there is no simpler way to specify
20
+ # that an instance is receiving a specific message.
21
+
22
+ RSpec.describe IssueCommentsController, type: :controller do
23
+ let(:user) { FactoryBot.create(:user) }
24
+ let(:project) { FactoryBot.create(:project, owner: user) }
25
+ let(:issue) { FactoryBot.create(:issue, project: project, creator: user) }
26
+ let(:issue_comment) { FactoryBot.create(:issue_comment, issue: issue, user: user) }
27
+ before { devise_user_login(user) }
28
+
29
+ # This should return the minimal set of attributes required to create a valid
30
+ # IssueComment. As you add validations to IssueComment, be sure to
31
+ # adjust the attributes here as well.
32
+ let(:valid_parameters) do
33
+ FactoryBot.attributes_for(:issue_comment).merge(issue_id: issue.id, user_id: user.id)
34
+ end
35
+
36
+ let(:invalid_parameters) do
37
+ skip('Add a hash of attributes invalid for your model')
38
+ end
39
+
40
+ # This should return the minimal set of values that should be in the session
41
+ # in order to pass any filters (e.g. authentication) defined in
42
+ # IssueCommentsController. Be sure to keep this updated too.
43
+ let(:valid_session) { {} }
44
+
45
+ describe 'GET #index' do
46
+ it 'assigns all issue_comments as @issue_comments' do
47
+ get :index, session: valid_session,
48
+ params: {}
49
+ expect(assigns(:issue_comments)).to eq([issue_comment])
50
+ end
51
+ end
52
+
53
+ describe 'GET #show' do
54
+ it 'assigns the requested issue_comment as @issue_comment' do
55
+ issue_comment # To create issue_comment
56
+ get :show, session: valid_session,
57
+ params: { id: issue_comment.to_param }
58
+ expect(assigns(:issue_comment)).to eq(issue_comment)
59
+ end
60
+ end
61
+
62
+ describe 'GET #new' do
63
+ it 'assigns a new issue_comment as @issue_comment' do
64
+ get :new, session: valid_session,
65
+ params: {}
66
+ expect(assigns(:issue_comment)).to be_a_new(IssueComment)
67
+ end
68
+ end
69
+
70
+ describe 'GET #edit' do
71
+ it 'assigns the requested issue_comment as @issue_comment' do
72
+ issue_comment # To create issue_comment
73
+ get :edit, session: valid_session,
74
+ params: { id: issue_comment.to_param }
75
+ expect(assigns(:issue_comment)).to eq(issue_comment)
76
+ end
77
+ end
78
+
79
+ describe 'POST #create' do
80
+ context 'with valid params' do
81
+ it 'creates a new IssueComment' do
82
+ expect {
83
+ post :create, session: valid_session,
84
+ params: { issue_comment: valid_parameters }
85
+ }.to change(IssueComment, :count).by(1)
86
+ end
87
+
88
+ it 'assigns a newly created issue_comment as @issue_comment' do
89
+ post :create, session: valid_session,
90
+ params: { issue_comment: valid_parameters }
91
+ expect(assigns(:issue_comment)).to be_a(IssueComment)
92
+ expect(assigns(:issue_comment)).to be_persisted
93
+ end
94
+
95
+ it 'redirects to the created issue_comment' do
96
+ post :create, session: valid_session,
97
+ params: { issue_comment: valid_parameters }
98
+ expect(response).to redirect_to(IssueComment.last)
99
+ end
100
+ end
101
+
102
+ context 'with invalid params' do
103
+ it 'assigns a newly created but unsaved issue_comment as @issue_comment' do
104
+ post :create, session: valid_session,
105
+ params: { issue_comment: invalid_parameters }
106
+ expect(assigns(:issue_comment)).to be_a_new(IssueComment)
107
+ end
108
+
109
+ it "re-renders the 'new' template" do
110
+ post :create, session: valid_session,
111
+ params: { issue_comment: invalid_parameters }
112
+ expect(response).to render_template('new')
113
+ end
114
+ end
115
+ end
116
+
117
+ describe 'PUT #update' do
118
+ context 'with valid params' do
119
+ let(:new_parameters) do
120
+ skip('Add a hash of attributes valid for your model')
121
+ end
122
+
123
+ it 'updates the requested issue_comment' do
124
+ issue_comment # To create issue_comment
125
+ put :update, session: valid_session,
126
+ params: { id: issue_comment.to_param, issue_comment: new_parameters }
127
+ issue_comment.reload
128
+ skip('Add assertions for updated state')
129
+ end
130
+
131
+ it 'assigns the requested issue_comment as @issue_comment' do
132
+ issue_comment # To create issue_comment
133
+ put :update, session: valid_session,
134
+ params: { id: issue_comment.to_param, issue_comment: new_parameters }
135
+ expect(assigns(:issue_comment)).to eq(issue_comment)
136
+ end
137
+
138
+ it 'redirects to the issue_comment' do
139
+ issue_comment # To create issue_comment
140
+ put :update, session: valid_session,
141
+ params: { id: issue_comment.to_param, issue_comment: new_parameters }
142
+ expect(response).to redirect_to(issue_comment)
143
+ end
144
+ end
145
+
146
+ context 'with invalid params' do
147
+ it 'assigns the issue_comment as @issue_comment' do
148
+ issue_comment # To create issue_comment
149
+ put :update, session: valid_session,
150
+ params: { id: issue_comment.to_param, issue_comment: invalid_parameters }
151
+ expect(assigns(:issue_comment)).to eq(issue_comment)
152
+ end
153
+
154
+ it "re-renders the 'edit' template" do
155
+ issue_comment # To create issue_comment
156
+ put :update, session: valid_session,
157
+ params: { id: issue_comment.to_param, issue_comment: invalid_parameters }
158
+ expect(response).to render_template('edit')
159
+ end
160
+ end
161
+ end
162
+
163
+ describe 'DELETE #destroy' do
164
+ it 'destroys the requested issue_comment' do
165
+ issue_comment # To create issue_comment
166
+ expect {
167
+ delete :destroy, session: valid_session,
168
+ params: { id: issue_comment.to_param }
169
+ }.to change(IssueComment, :count).by(-1)
170
+ end
171
+
172
+ it 'redirects to the issue_comments list' do
173
+ issue_comment # To create issue_comment
174
+ delete :destroy, session: valid_session,
175
+ params: { id: issue_comment.to_param }
176
+ expect(response).to redirect_to(issue_comments_url)
177
+ end
178
+ end
179
+ end
@@ -0,0 +1,181 @@
1
+ # frozen_string_literal: true
2
+ require 'rails_helper'
3
+
4
+ # This spec was generated by rspec-rails when you ran the scaffold generator.
5
+ # It demonstrates how one might use RSpec to specify the controller code that
6
+ # was generated by Rails when you ran the scaffold generator.
7
+ #
8
+ # It assumes that the implementation code is generated by the rails scaffold
9
+ # generator. If you are using any extension libraries to generate different
10
+ # controller code, this generated spec may or may not pass.
11
+ #
12
+ # It only uses APIs available in rails and/or rspec-rails. There are a number
13
+ # of tools you can use to make these specs even more expressive, but we're
14
+ # sticking to rails and rspec-rails APIs to keep things simple and stable.
15
+ #
16
+ # Compared to earlier versions of this generator, there is very limited use of
17
+ # stubs and message expectations in this spec. Stubs are only used when there
18
+ # is no simpler way to get a handle on the object needed for the example.
19
+ # Message expectations are only used when there is no simpler way to specify
20
+ # that an instance is receiving a specific message.
21
+
22
+ RSpec.describe IssuesController, type: :controller do
23
+ let(:user) { FactoryBot.create(:user) }
24
+ let(:project) { FactoryBot.create(:project, owner: user) }
25
+ let(:issue) { FactoryBot.create(:issue, project: project, creator: user) }
26
+ before { devise_user_login(user) }
27
+
28
+ # This should return the minimal set of attributes required to create a valid
29
+ # Issue. As you add validations to Issue, be sure to
30
+ # adjust the attributes here as well.
31
+ let(:valid_parameters) do
32
+ FactoryBot.attributes_for(:issue).merge(project_id: project.id, creator_id: user.id)
33
+ end
34
+
35
+ let(:invalid_parameters) do
36
+ valid_parameters.symbolize_keys.merge(title: '')
37
+ end
38
+
39
+ # This should return the minimal set of values that should be in the session
40
+ # in order to pass any filters (e.g. authentication) defined in
41
+ # IssuesController. Be sure to keep this updated too.
42
+ let(:valid_session) { {} }
43
+
44
+ describe 'GET #index' do
45
+ it 'assigns all issues as @issues' do
46
+ get :index, session: valid_session,
47
+ params: {}
48
+ expect(assigns(:issues)).to eq([issue])
49
+ end
50
+ end
51
+
52
+ describe 'GET #show' do
53
+ it 'assigns the requested issue as @issue' do
54
+ issue # To create issue
55
+ get :show, session: valid_session,
56
+ params: { id: issue.to_param }
57
+ expect(assigns(:issue)).to eq(issue)
58
+ end
59
+ end
60
+
61
+ describe 'GET #new' do
62
+ it 'assigns a new issue as @issue' do
63
+ get :new, session: valid_session,
64
+ params: {}
65
+ expect(assigns(:issue)).to be_a_new(Issue)
66
+ end
67
+ end
68
+
69
+ describe 'GET #edit' do
70
+ it 'assigns the requested issue as @issue' do
71
+ issue # To create issue
72
+ get :edit, session: valid_session,
73
+ params: { id: issue.to_param }
74
+ expect(assigns(:issue)).to eq(issue)
75
+ end
76
+ end
77
+
78
+ describe 'POST #create' do
79
+ context 'with valid params' do
80
+ it 'creates a new Issue' do
81
+ expect {
82
+ post :create, session: valid_session,
83
+ params: { issue: valid_parameters }
84
+ }.to change(Issue, :count).by(1)
85
+ end
86
+
87
+ it 'assigns a newly created issue as @issue' do
88
+ post :create, session: valid_session,
89
+ params: { issue: valid_parameters }
90
+ expect(assigns(:issue)).to be_a(Issue)
91
+ expect(assigns(:issue)).to be_persisted
92
+ end
93
+
94
+ it 'redirects to the created issue' do
95
+ post :create, session: valid_session,
96
+ params: { issue: valid_parameters }
97
+ expect(response).to redirect_to(Issue.last)
98
+ end
99
+ end
100
+
101
+ context 'with invalid params' do
102
+ it 'assigns a newly created but unsaved issue as @issue' do
103
+ post :create, session: valid_session,
104
+ params: { issue: invalid_parameters }
105
+ expect(assigns(:issue)).to be_a_new(Issue)
106
+ end
107
+
108
+ it "re-renders the 'new' template" do
109
+ post :create, session: valid_session,
110
+ params: { issue: invalid_parameters }
111
+ expect(response).to render_template('new')
112
+ end
113
+ end
114
+ end
115
+
116
+ describe 'PUT #update' do
117
+ context 'with valid params' do
118
+ let(:new_title) { valid_parameters[:title].succ }
119
+ let(:new_status) { Issue.status.values[1] }
120
+ let(:new_parameters) do
121
+ valid_parameters.merge(title: new_title, status: new_status)
122
+ end
123
+
124
+ it 'updates the requested issue' do
125
+ issue # To create issue
126
+ put :update, session: valid_session,
127
+ params: { id: issue.to_param, issue: new_parameters }
128
+ issue.reload
129
+ expect(issue.title).to eq new_title
130
+ expect(issue.status).to eq new_status
131
+ end
132
+
133
+ it 'assigns the requested issue as @issue' do
134
+ issue # To create issue
135
+ put :update, session: valid_session,
136
+ params: { id: issue.to_param, issue: new_parameters }
137
+ expect(assigns(:issue)).to eq(issue)
138
+ end
139
+
140
+ it 'redirects to the issue' do
141
+ issue # To create issue
142
+ put :update, session: valid_session,
143
+ params: { id: issue.to_param, issue: new_parameters }
144
+ expect(response).to redirect_to(issue)
145
+ end
146
+ end
147
+
148
+ context 'with invalid params' do
149
+ it 'assigns the issue as @issue' do
150
+ issue # To create issue
151
+ put :update, session: valid_session,
152
+ params: { id: issue.to_param, issue: invalid_parameters }
153
+ expect(assigns(:issue)).to eq(issue)
154
+ end
155
+
156
+ it "re-renders the 'edit' template" do
157
+ issue # To create issue
158
+ put :update, session: valid_session,
159
+ params: { id: issue.to_param, issue: invalid_parameters }
160
+ expect(response).to render_template('edit')
161
+ end
162
+ end
163
+ end
164
+
165
+ describe 'DELETE #destroy' do
166
+ it 'destroys the requested issue' do
167
+ issue # To create issue
168
+ expect {
169
+ delete :destroy, session: valid_session,
170
+ params: { id: issue.to_param }
171
+ }.to change(Issue, :count).by(-1)
172
+ end
173
+
174
+ it 'redirects to the issues list' do
175
+ issue # To create issue
176
+ delete :destroy, session: valid_session,
177
+ params: { id: issue.to_param }
178
+ expect(response).to redirect_to(issues_url)
179
+ end
180
+ end
181
+ end
@@ -0,0 +1,183 @@
1
+ # frozen_string_literal: true
2
+ require 'rails_helper'
3
+
4
+ # This spec was generated by rspec-rails when you ran the scaffold generator.
5
+ # It demonstrates how one might use RSpec to specify the controller code that
6
+ # was generated by Rails when you ran the scaffold generator.
7
+ #
8
+ # It assumes that the implementation code is generated by the rails scaffold
9
+ # generator. If you are using any extension libraries to generate different
10
+ # controller code, this generated spec may or may not pass.
11
+ #
12
+ # It only uses APIs available in rails and/or rspec-rails. There are a number
13
+ # of tools you can use to make these specs even more expressive, but we're
14
+ # sticking to rails and rspec-rails APIs to keep things simple and stable.
15
+ #
16
+ # Compared to earlier versions of this generator, there is very limited use of
17
+ # stubs and message expectations in this spec. Stubs are only used when there
18
+ # is no simpler way to get a handle on the object needed for the example.
19
+ # Message expectations are only used when there is no simpler way to specify
20
+ # that an instance is receiving a specific message.
21
+
22
+ RSpec.describe PhasesController, type: :controller do
23
+ let(:user) { FactoryBot.create(:user) }
24
+ let(:project) { FactoryBot.create(:project, owner: user) }
25
+ let(:phase) { FactoryBot.create(:phase, project: project) }
26
+ before { devise_user_login(user) }
27
+
28
+ # This should return the minimal set of attributes required to create a valid
29
+ # Phase. As you add validations to Phase, be sure to
30
+ # adjust the attributes here as well.
31
+ let(:valid_parameters) do
32
+ FactoryBot.attributes_for(:phase).merge(project_id: project.id)
33
+ end
34
+
35
+ let(:invalid_parameters) do
36
+ valid_parameters.symbolize_keys.merge(name: '')
37
+ end
38
+
39
+ # This should return the minimal set of values that should be in the session
40
+ # in order to pass any filters (e.g. authentication) defined in
41
+ # PhasesController. Be sure to keep this updated too.
42
+ let(:valid_session) { {} }
43
+
44
+ describe 'GET #index' do
45
+ it 'assigns all phases as @phases' do
46
+ get :index, session: valid_session,
47
+ params: {}
48
+ expect(assigns(:phases)).to eq([phase])
49
+ end
50
+ end
51
+
52
+ describe 'GET #show' do
53
+ it 'assigns the requested phase as @phase' do
54
+ phase # To create phase
55
+ get :show, session: valid_session,
56
+ params: { id: phase.to_param }
57
+ expect(assigns(:phase)).to eq(phase)
58
+ end
59
+ end
60
+
61
+ describe 'GET #new' do
62
+ it 'assigns a new phase as @phase' do
63
+ get :new, session: valid_session,
64
+ params: {}
65
+ expect(assigns(:phase)).to be_a_new(Phase)
66
+ end
67
+ end
68
+
69
+ describe 'GET #edit' do
70
+ it 'assigns the requested phase as @phase' do
71
+ phase # To create phase
72
+ get :edit, session: valid_session,
73
+ params: { id: phase.to_param }
74
+ expect(assigns(:phase)).to eq(phase)
75
+ end
76
+ end
77
+
78
+ describe 'POST #create' do
79
+ context 'with valid params' do
80
+ it 'creates a new Phase' do
81
+ expect {
82
+ post :create, session: valid_session,
83
+ params: { phase: valid_parameters }
84
+ }.to change(Phase, :count).by(1)
85
+ end
86
+
87
+ it 'assigns a newly created phase as @phase' do
88
+ post :create, session: valid_session,
89
+ params: { phase: valid_parameters }
90
+ expect(assigns(:phase)).to be_a(Phase)
91
+ expect(assigns(:phase)).to be_persisted
92
+ end
93
+
94
+ it 'redirects to the created phase' do
95
+ post :create, session: valid_session,
96
+ params: { phase: valid_parameters }
97
+ expect(response).to redirect_to(Phase.last)
98
+ end
99
+ end
100
+
101
+ context 'with invalid params' do
102
+ it 'assigns a newly created but unsaved phase as @phase' do
103
+ post :create, session: valid_session,
104
+ params: { phase: invalid_parameters }
105
+ expect(assigns(:phase)).to be_a_new(Phase)
106
+ end
107
+
108
+ it "re-renders the 'new' template" do
109
+ post :create, session: valid_session,
110
+ params: { phase: invalid_parameters }
111
+ expect(response).to render_template('new')
112
+ end
113
+ end
114
+ end
115
+
116
+ describe 'PUT #update' do
117
+ context 'with valid params' do
118
+ let(:new_name) { valid_parameters[:name].succ }
119
+ let(:new_started_at) { valid_parameters[:started_at].succ }
120
+ let(:new_finished_at) { valid_parameters[:finished_at].succ }
121
+ let(:new_parameters) do
122
+ valid_parameters.merge(name: new_name, started_at: new_started_at, finished_at: new_finished_at)
123
+ end
124
+
125
+ it 'updates the requested phase' do
126
+ phase # To create phase
127
+ put :update, session: valid_session,
128
+ params: { id: phase.to_param, phase: new_parameters }
129
+ phase.reload
130
+ expect(phase.name).to eq new_name
131
+ expect(phase.started_at).to eq new_started_at
132
+ expect(phase.finished_at).to eq new_finished_at
133
+ end
134
+
135
+ it 'assigns the requested phase as @phase' do
136
+ phase # To create phase
137
+ put :update, session: valid_session,
138
+ params: { id: phase.to_param, phase: new_parameters }
139
+ expect(assigns(:phase)).to eq(phase)
140
+ end
141
+
142
+ it 'redirects to the phase' do
143
+ phase # To create phase
144
+ put :update, session: valid_session,
145
+ params: { id: phase.to_param, phase: new_parameters }
146
+ expect(response).to redirect_to(phase)
147
+ end
148
+ end
149
+
150
+ context 'with invalid params' do
151
+ it 'assigns the phase as @phase' do
152
+ phase # To create phase
153
+ put :update, session: valid_session,
154
+ params: { id: phase.to_param, phase: invalid_parameters }
155
+ expect(assigns(:phase)).to eq(phase)
156
+ end
157
+
158
+ it "re-renders the 'edit' template" do
159
+ phase # To create phase
160
+ put :update, session: valid_session,
161
+ params: { id: phase.to_param, phase: invalid_parameters }
162
+ expect(response).to render_template('edit')
163
+ end
164
+ end
165
+ end
166
+
167
+ describe 'DELETE #destroy' do
168
+ it 'destroys the requested phase' do
169
+ phase # To create phase
170
+ expect {
171
+ delete :destroy, session: valid_session,
172
+ params: { id: phase.to_param }
173
+ }.to change(Phase, :count).by(-1)
174
+ end
175
+
176
+ it 'redirects to the phases list' do
177
+ phase # To create phase
178
+ delete :destroy, session: valid_session,
179
+ params: { id: phase.to_param }
180
+ expect(response).to redirect_to(phases_url)
181
+ end
182
+ end
183
+ end