jinda 0.7.7.4 → 1.0.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 (311) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +46 -29
  3. data/Rakefile +103 -1
  4. data/app/assets/config/manifest.js +4 -1
  5. data/app/assets/javascripts/jinda_bootstrap.js +20 -0
  6. data/app/assets/stylesheets/_jinda_bootstrap_theme.scss +190 -0
  7. data/{lib/generators/jinda/templates/app/assets/stylesheets/jinda_jqm.css.scss → app/assets/stylesheets/jinda_bootstrap.css.scss} +12 -10
  8. data/app/config/routes.rb +38 -28
  9. data/app/controllers/concerns/jinda_general_concern.rb +86 -87
  10. data/app/controllers/concerns/jinda_run_concern.rb +184 -184
  11. data/app/controllers/jinda_controller.rb +23 -22
  12. data/bin/lint_modified +21 -0
  13. data/config/routes.rb +41 -22
  14. data/lib/generators/jinda/config_generator.rb +102 -81
  15. data/lib/generators/jinda/install_generator.rb +305 -148
  16. data/lib/generators/jinda/install_generator.rb.bak2 +268 -0
  17. data/lib/generators/jinda/installer/gems_install.rb +125 -127
  18. data/lib/generators/jinda/minitest_generator.rb +19 -18
  19. data/lib/generators/jinda/rspec_generator.rb +15 -14
  20. data/lib/generators/jinda/templates/DOCKER.md +188 -0
  21. data/lib/generators/jinda/templates/Dockerfile +15 -5
  22. data/lib/generators/jinda/templates/README.md +3 -3
  23. data/lib/generators/jinda/templates/app/assets/config/manifest.js +4 -0
  24. data/lib/generators/jinda/templates/app/assets/javascripts/application.js +8 -8
  25. data/lib/generators/jinda/templates/app/channels/application_cable/channel.rb +2 -0
  26. data/lib/generators/jinda/templates/app/channels/application_cable/connection.rb +2 -0
  27. data/{test/dummy → lib/generators/jinda/templates}/app/controllers/adminltes_controller.rb +1 -0
  28. data/lib/generators/jinda/templates/app/controllers/api/v1/notes_controller.rb +80 -78
  29. data/lib/generators/jinda/templates/app/controllers/jinda_org/admins_controller.rb +4 -2
  30. data/lib/generators/jinda/templates/app/controllers/jinda_org/application_controller.rb +11 -9
  31. data/lib/generators/jinda/templates/app/controllers/jinda_org/articles_controller.rb +40 -44
  32. data/lib/generators/jinda/templates/app/controllers/jinda_org/comments_controller.rb +10 -8
  33. data/lib/generators/jinda/templates/app/controllers/jinda_org/docs_controller.rb +23 -24
  34. data/lib/generators/jinda/templates/app/controllers/jinda_org/identities_controller.rb +3 -1
  35. data/lib/generators/jinda/templates/app/controllers/jinda_org/notes_controller.rb +25 -27
  36. data/lib/generators/jinda/templates/app/controllers/jinda_org/password_resets_controller.rb +16 -18
  37. data/lib/generators/jinda/templates/app/controllers/jinda_org/sessions_controller.rb +13 -14
  38. data/lib/generators/jinda/templates/app/controllers/jinda_org/sitemap_controller.rb +4 -4
  39. data/lib/generators/jinda/templates/app/controllers/jinda_org/users_controller.rb +14 -14
  40. data/lib/generators/jinda/templates/app/controllers/mindmap_editor_controller.rb +74 -0
  41. data/lib/generators/jinda/templates/app/helpers/admins_helper.rb +2 -0
  42. data/lib/generators/jinda/templates/app/helpers/application_helper.rb +21 -20
  43. data/lib/generators/jinda/templates/app/helpers/articles_helper.rb +2 -0
  44. data/lib/generators/jinda/templates/app/helpers/basic_helper.rb +2 -0
  45. data/lib/generators/jinda/templates/app/helpers/comments_helper.rb +2 -0
  46. data/lib/generators/jinda/templates/app/helpers/ctrs_helper.rb +2 -0
  47. data/lib/generators/jinda/templates/app/helpers/devs_helper.rb +2 -0
  48. data/lib/generators/jinda/templates/app/helpers/mindmap_editor_helper.rb +3 -0
  49. data/lib/generators/jinda/templates/app/helpers/pictures_helper.rb +2 -0
  50. data/lib/generators/jinda/templates/app/helpers/sitemap_helper.rb +2 -0
  51. data/lib/generators/jinda/templates/app/helpers/users_helper.rb +2 -0
  52. data/lib/generators/jinda/templates/app/jinda/index.mm +276 -298
  53. data/lib/generators/jinda/templates/app/jinda/template/index.mm +1 -0
  54. data/lib/generators/jinda/templates/app/mailers/jinda_mailer.rb +5 -3
  55. data/lib/generators/jinda/templates/app/mailers/note_mailer.rb +6 -4
  56. data/lib/generators/jinda/templates/app/mailers/user_mailer.rb +5 -5
  57. data/lib/generators/jinda/templates/app/models/address.rb +10 -8
  58. data/lib/generators/jinda/templates/app/models/article.rb +8 -6
  59. data/lib/generators/jinda/templates/app/models/comment.rb +10 -8
  60. data/lib/generators/jinda/templates/app/models/identity.rb +11 -10
  61. data/lib/generators/jinda/templates/app/models/jinda/doc.rb +36 -33
  62. data/lib/generators/jinda/templates/app/models/jinda/jinda_module.rb +15 -0
  63. data/lib/generators/jinda/templates/app/models/jinda/module.rb +14 -10
  64. data/lib/generators/jinda/templates/app/models/jinda/notice.rb +15 -11
  65. data/lib/generators/jinda/templates/app/models/jinda/role.rb +11 -7
  66. data/lib/generators/jinda/templates/app/models/jinda/runseq.rb +23 -20
  67. data/lib/generators/jinda/templates/app/models/jinda/service.rb +19 -15
  68. data/lib/generators/jinda/templates/app/models/jinda/xmain.rb +42 -36
  69. data/lib/generators/jinda/templates/app/models/note.rb +14 -10
  70. data/lib/generators/jinda/templates/app/models/param.rb +23 -20
  71. data/lib/generators/jinda/templates/app/models/person.rb +9 -7
  72. data/lib/generators/jinda/templates/app/models/user.rb +42 -41
  73. data/lib/generators/jinda/templates/app/views/articles/show.html.haml +2 -2
  74. data/lib/generators/jinda/templates/app/views/identities/new.html.haml +13 -0
  75. data/lib/generators/jinda/templates/app/views/jinda/_static_bootstrap.haml +23 -0
  76. data/lib/generators/jinda/templates/app/views/jinda/feed.rss.builder +15 -13
  77. data/lib/generators/jinda/templates/app/views/jinda/index.html.haml +3 -2
  78. data/lib/generators/jinda/templates/app/views/layouts/application.haml +31 -4
  79. data/lib/generators/jinda/templates/app/views/layouts/lte/_header.haml +54 -0
  80. data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_sidebar.haml +1 -1
  81. data/lib/generators/jinda/templates/app/views/mindmap_editor/edit.html.haml +126 -0
  82. data/lib/generators/jinda/templates/app/views/mindmap_editor/save.html.haml +2 -0
  83. data/lib/generators/jinda/templates/app/views/sessions/new.html.haml +13 -0
  84. data/lib/generators/jinda/templates/bin/lint_modified +21 -0
  85. data/lib/generators/jinda/templates/config/mongoid.yml +3 -3
  86. data/lib/generators/jinda/templates/config/mongoid.yml-docker +3 -3
  87. data/lib/generators/jinda/templates/config/mongoid.yml-localhost +3 -3
  88. data/lib/generators/jinda/templates/docker-compose-mongodb.yml +13 -0
  89. data/lib/generators/jinda/templates/docker-compose-web.yml +36 -0
  90. data/lib/generators/jinda/templates/docker-compose.yml +10 -14
  91. data/lib/generators/jinda/templates/spec/controllers/api/v1_get_index_spec.rb +15 -14
  92. data/lib/generators/jinda/templates/spec/controllers/api/v1_get_my_spec.rb +9 -4
  93. data/lib/generators/jinda/templates/spec/controllers/api/v1_post_spec.rb +4 -3
  94. data/lib/generators/jinda/templates/spec/controllers/sessions_controller_spec.rb +82 -90
  95. data/lib/generators/jinda/templates/spec/features/userlogins_spec.rb +12 -15
  96. data/lib/generators/jinda/templates/spec/mailers/note_spec.rb +5 -8
  97. data/lib/generators/jinda/templates/spec/mailers/previews/note_preview.rb +3 -5
  98. data/lib/generators/jinda/templates/spec/models/note_spec.rb +36 -35
  99. data/lib/generators/jinda/templates/spec/models/user_spec.rb +10 -8
  100. data/lib/generators/jinda/templates/spec/rails_helper.rb +29 -31
  101. data/lib/generators/jinda/templates/spec/spec_helper.rb +19 -17
  102. data/lib/generators/jinda/templates/spec/support/authentication_helper.rb +8 -7
  103. data/lib/generators/jinda/templates/spec/support/databasecleaner.rb +3 -1
  104. data/lib/generators/jinda/templates/spec/support/factory_bot.rb +7 -5
  105. data/lib/generators/jinda/templates/spec/support/omniauth_macros.rb +14 -19
  106. data/lib/generators/jinda/templates/spec/support/request_spec_helper.rb +3 -1
  107. data/lib/generators/jinda/templates/spec/views/articles/_article.html.erb_spec.rbx +9 -8
  108. data/lib/generators/jinda/templates/test/application_system_test_case.rb +3 -1
  109. data/lib/generators/jinda/templates/test/integration/jinda_routes_test.rb +16 -21
  110. data/lib/generators/jinda/templates/test/test_helper.rb +7 -3
  111. data/lib/jinda/date_helpers.rb +50 -41
  112. data/lib/jinda/gem_helpers.rb +10 -8
  113. data/lib/jinda/gen_class.rb +14 -12
  114. data/lib/jinda/gen_controller.rb +9 -8
  115. data/lib/jinda/gen_freemind.rb +33 -32
  116. data/lib/jinda/gen_helpers.rb +146 -139
  117. data/lib/jinda/gen_models.rb +125 -131
  118. data/lib/jinda/gen_modules.rb +21 -16
  119. data/lib/jinda/gen_runseq.rb +71 -67
  120. data/lib/jinda/gen_services.rb +74 -80
  121. data/lib/jinda/gen_xmain.rb +38 -36
  122. data/lib/jinda/get_app.rb +31 -29
  123. data/lib/jinda/helpers.rb +4 -4
  124. data/lib/jinda/init_vars.rb +41 -36
  125. data/lib/jinda/mindmap_converter.rb +196 -0
  126. data/lib/jinda/railtie.rb +10 -2
  127. data/lib/jinda/rake_views.rb +61 -60
  128. data/lib/jinda/refresh.rb +67 -61
  129. data/lib/jinda/themes.rb +80 -60
  130. data/lib/jinda/version.rb +3 -1
  131. data/lib/jinda.rb +2 -0
  132. data/lib/tasks/jinda.rake +25 -22
  133. data/test/INTEGRATION_TEST_README.md +374 -0
  134. data/test/LOCAL_DEVELOPMENT.md +345 -0
  135. data/test/README.md +243 -0
  136. data/test/TEST_INFRASTRUCTURE.md +412 -0
  137. data/test/TEST_INSTALLATION_SH_FIXES.md +205 -0
  138. data/test/UNIT_TESTS_README.md +366 -0
  139. data/test/api_notes_controller_test.rb +231 -0
  140. data/test/dummy/DOCKER.md +188 -0
  141. data/test/dummy/Dockerfile +15 -7
  142. data/test/dummy/Gemfile +38 -29
  143. data/test/dummy/Gemfile.lock +671 -292
  144. data/test/dummy/app/assets/config/manifest.js +4 -0
  145. data/test/dummy/app/channels/application_cable/channel.rb +2 -0
  146. data/test/dummy/app/channels/application_cable/connection.rb +2 -0
  147. data/test/dummy/app/controllers/admins_controller.rb +4 -2
  148. data/test/dummy/app/controllers/api/v1/notes_controller.rb +80 -78
  149. data/test/dummy/app/controllers/application_controller.rb +11 -9
  150. data/test/dummy/app/controllers/articles_controller.rb +40 -44
  151. data/test/dummy/app/controllers/comments_controller.rb +10 -8
  152. data/test/dummy/app/controllers/ctrs_controller.rb +2 -0
  153. data/test/dummy/app/controllers/devs_controller.rb +2 -0
  154. data/test/dummy/app/controllers/docs_controller.rb +23 -24
  155. data/test/dummy/app/controllers/identities_controller.rb +3 -1
  156. data/test/dummy/app/controllers/mindmap_editor_controller.rb +74 -0
  157. data/test/dummy/app/controllers/notes_controller.rb +25 -27
  158. data/test/dummy/app/controllers/password_resets_controller.rb +16 -18
  159. data/test/dummy/app/controllers/sessions_controller.rb +13 -14
  160. data/test/dummy/app/controllers/sitemap_controller.rb +4 -4
  161. data/test/dummy/app/controllers/users_controller.rb +14 -14
  162. data/test/dummy/app/helpers/admins_helper.rb +2 -0
  163. data/test/dummy/app/helpers/application_helper.rb +21 -20
  164. data/test/dummy/app/helpers/articles_helper.rb +2 -0
  165. data/test/dummy/app/helpers/basic_helper.rb +2 -0
  166. data/test/dummy/app/helpers/comments_helper.rb +2 -0
  167. data/test/dummy/app/helpers/ctrs_helper.rb +2 -0
  168. data/test/dummy/app/helpers/devs_helper.rb +2 -0
  169. data/test/dummy/app/helpers/mindmap_editor_helper.rb +3 -0
  170. data/test/dummy/app/helpers/pictures_helper.rb +2 -0
  171. data/test/dummy/app/helpers/sitemap_helper.rb +2 -0
  172. data/test/dummy/app/helpers/users_helper.rb +2 -0
  173. data/test/dummy/app/jinda/index.mm +384 -486
  174. data/test/dummy/app/jinda/template/index.mm +1 -0
  175. data/test/dummy/app/mailers/application_mailer.rb +2 -2
  176. data/test/dummy/app/mailers/application_mailer.rb-org +4 -0
  177. data/test/dummy/app/mailers/jinda_mailer.rb +5 -3
  178. data/test/dummy/app/mailers/note_mailer.rb +6 -4
  179. data/test/dummy/app/mailers/user_mailer.rb +5 -5
  180. data/test/dummy/app/models/address.rb +2 -0
  181. data/test/dummy/app/models/article.rb +2 -0
  182. data/test/dummy/app/models/comment.rb +3 -2
  183. data/test/dummy/app/models/identity.rb +11 -10
  184. data/test/dummy/app/models/jinda/doc.rb +36 -33
  185. data/test/dummy/app/models/jinda/jinda_module.rb +15 -0
  186. data/test/dummy/app/models/jinda/module.rb +14 -10
  187. data/test/dummy/app/models/jinda/notice.rb +15 -11
  188. data/test/dummy/app/models/jinda/role.rb +11 -7
  189. data/test/dummy/app/models/jinda/runseq.rb +23 -20
  190. data/test/dummy/app/models/jinda/service.rb +19 -15
  191. data/test/dummy/app/models/jinda/xmain.rb +42 -36
  192. data/test/dummy/app/models/note.rb +3 -8
  193. data/test/dummy/app/models/param.rb +23 -20
  194. data/test/dummy/app/models/person.rb +2 -0
  195. data/test/dummy/app/models/picture.rb +11 -0
  196. data/test/dummy/app/models/user.rb +42 -41
  197. data/test/dummy/app/views/admins/index.haml +21 -0
  198. data/test/dummy/app/views/api/v1/notes/delete/select_note.html.erb +21 -0
  199. data/test/dummy/app/views/api/v1/notes/edit/edit_note.html.erb +21 -0
  200. data/test/dummy/app/views/api/v1/notes/index.haml +21 -0
  201. data/test/dummy/app/views/api/v1/notes/new/new_note.html.erb +21 -0
  202. data/test/dummy/app/views/articles/show.html.haml +2 -2
  203. data/test/dummy/app/views/devs/index.haml +21 -0
  204. data/test/dummy/app/views/jinda/feed.rss.builder +15 -13
  205. data/test/dummy/app/views/jinda/index.html.haml +3 -2
  206. data/test/dummy/app/views/layouts/application.haml +2 -2
  207. data/test/dummy/app/views/mindmap_editor/edit.html.haml +126 -0
  208. data/test/dummy/app/views/mindmap_editor/save.html.haml +2 -0
  209. data/test/dummy/bin/docker-entrypoint +3 -0
  210. data/test/dummy/bin/lint_modified +21 -0
  211. data/test/dummy/bin/setup +1 -1
  212. data/test/dummy/config/application.rb +7 -2
  213. data/test/dummy/config/boot.rb +2 -1
  214. data/test/dummy/config/cable.yml +1 -1
  215. data/test/dummy/config/credentials.yml.enc +1 -1
  216. data/test/dummy/config/environments/development.rb +7 -1
  217. data/test/dummy/config/environments/production.rb +30 -26
  218. data/test/dummy/config/environments/test.rb +12 -8
  219. data/test/dummy/config/initializers/content_security_policy.rb +2 -2
  220. data/test/dummy/config/initializers/filter_parameter_logging.rb +3 -3
  221. data/test/dummy/config/initializers/mindmap_converter.rb +5 -0
  222. data/test/dummy/config/initializers/mongoid.rb +24 -9
  223. data/test/dummy/config/initializers/omniauth.rb +5 -0
  224. data/test/dummy/config/initializers/permissions_policy.rb +11 -9
  225. data/test/dummy/config/locales/en.yml +11 -13
  226. data/test/dummy/config/mongoid.yml +172 -53
  227. data/test/dummy/config/mongoid.yml-docker +3 -3
  228. data/test/dummy/config/mongoid.yml-localhost +3 -3
  229. data/test/dummy/config/puma.rb +21 -20
  230. data/test/dummy/config/routes.rb +7 -1
  231. data/test/dummy/docker-compose-mongodb.yml +13 -0
  232. data/test/dummy/docker-compose-web.yml +36 -0
  233. data/test/dummy/docker-compose.yml +10 -18
  234. data/test/dummy/log/development.log +5834 -2261
  235. data/test/dummy/spec/controllers/api/v1_get_index_spec.rb +15 -14
  236. data/test/dummy/spec/controllers/api/v1_get_my_spec.rb +9 -4
  237. data/test/dummy/spec/controllers/api/v1_post_spec.rb +4 -3
  238. data/test/dummy/spec/controllers/sessions_controller_spec.rb +82 -90
  239. data/test/dummy/spec/factories/pictures.rb +5 -0
  240. data/test/dummy/spec/features/userlogins_spec.rb +12 -15
  241. data/test/dummy/spec/mailers/note_spec.rb +5 -8
  242. data/test/dummy/spec/mailers/previews/note_preview.rb +3 -5
  243. data/test/dummy/spec/models/note_spec.rb +36 -35
  244. data/test/dummy/spec/models/picture_spec.rb +5 -0
  245. data/test/dummy/spec/models/user_spec.rb +10 -8
  246. data/test/dummy/spec/rails_helper.rb +29 -31
  247. data/test/dummy/spec/requests/ctrs_spec.rb +7 -0
  248. data/test/dummy/spec/requests/devs_spec.rb +7 -0
  249. data/test/dummy/spec/spec_helper.rb +19 -17
  250. data/test/dummy/spec/support/authentication_helper.rb +8 -7
  251. data/test/dummy/spec/support/databasecleaner.rb +3 -1
  252. data/test/dummy/spec/support/factory_bot.rb +7 -5
  253. data/test/dummy/spec/support/omniauth_macros.rb +14 -19
  254. data/test/dummy/spec/support/request_spec_helper.rb +3 -1
  255. data/test/dummy/spec/views/articles/_article.html.erb_spec.rbx +9 -8
  256. data/test/generated_app_test.rb +261 -0
  257. data/test/installation_test.rb +368 -0
  258. data/test/integration_test.rb +398 -0
  259. data/test/jenkins_stage_test.rb +182 -0
  260. data/test/note_model_test.rb +224 -0
  261. data/test/note_validation_integration_test.rb +292 -0
  262. data/test/run_unit_tests.sh +91 -0
  263. data/test/test_helper.rb +8 -16
  264. metadata +188 -60
  265. data/lib/generators/jinda/templates/app/assets/stylesheets/application.css.scss +0 -15
  266. data/lib/generators/jinda/templates/app/controllers/jinda_org/password_resets.rb +0 -28
  267. data/lib/generators/jinda/templates/app/views/layouts/_head.html.erb +0 -10
  268. data/lib/generators/jinda/templates/app/views/layouts/_meta_tag.html.erb +0 -19
  269. data/lib/generators/jinda/templates/app/views/layouts/bsb/_footer.haml +0 -7
  270. data/lib/generators/jinda/templates/app/views/layouts/bsb/_header.haml +0 -147
  271. data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu.haml +0 -47
  272. data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu_mm.haml +0 -34
  273. data/lib/generators/jinda/templates/app/views/layouts/bsb/_sidebar.haml +0 -155
  274. data/lib/generators/jinda/templates/app/views/layouts/bsb/application.haml-bsb +0 -47
  275. data/lib/generators/jinda/templates/app/views/layouts/gmail.html.erb +0 -9
  276. data/lib/generators/jinda/templates/app/views/layouts/jqm/_full.haml +0 -33
  277. data/lib/generators/jinda/templates/app/views/layouts/jqm/_page.haml +0 -16
  278. data/lib/generators/jinda/templates/app/views/layouts/jqm/application.haml-jqm +0 -4
  279. data/lib/generators/jinda/templates/app/views/layouts/mailer.html.erb +0 -13
  280. data/lib/generators/jinda/templates/app/views/layouts/mailer.html.haml +0 -3
  281. data/lib/generators/jinda/templates/app/views/layouts/mailer.text.erb +0 -1
  282. data/lib/generators/jinda/templates/app/views/layouts/mailer.text.haml +0 -1
  283. data/lib/generators/jinda/templates/app/views/layouts/mobile.html.erb +0 -13
  284. data/lib/generators/jinda/templates/app/views/layouts/mobilejq.html.erb +0 -31
  285. data/lib/generators/jinda/templates/app/views/layouts/print.html.erb +0 -22
  286. data/lib/generators/jinda/templates/app/views/layouts/utf8.html.erb +0 -22
  287. data/lib/generators/jinda/templates/config/initializers/fix_mongoid_generator.rb-org +0 -14
  288. data/test/dummy/Guardfile +0 -96
  289. data/test/dummy/app/controllers/application_controller.rb.bak +0 -2
  290. data/test/dummy/app/controllers/password_resets.rb +0 -28
  291. data/test/dummy/app/helpers/application_helper.rb.bak +0 -2
  292. data/test/dummy/app/views/identities/new-bak.html.haml +0 -32
  293. data/test/dummy/app/views/layouts/application.haml.bak +0 -4
  294. data/test/dummy/app/views/layouts/application.html.erb.bak +0 -15
  295. data/test/dummy/app/views/layouts/lte/_header.haml +0 -111
  296. data/test/dummy/app/views/layouts/lte/_rightbar.haml +0 -123
  297. data/test/dummy/app/views/sessions/new-bak.html.haml +0 -22
  298. data/test/dummy/config/initializers/fix_mongoid_generator.rb-org +0 -14
  299. data/test/dummy/tmp/development_secret.txt +0 -1
  300. data/test/integration/navigation_test.rb +0 -7
  301. data/test/jinda_test.rb +0 -7
  302. /data/{test/dummy → lib/generators/jinda/templates}/app/assets/stylesheets/application.scss +0 -0
  303. /data/{test/dummy → lib/generators/jinda/templates}/app/assets/stylesheets/jinda.scss +0 -0
  304. /data/lib/generators/jinda/templates/app/mailers/{application_mailer.rb → application_mailer.rb-org} +0 -0
  305. /data/{test/dummy → lib/generators/jinda/templates}/app/views/adminltes/dashboard1.haml +0 -0
  306. /data/{test/dummy → lib/generators/jinda/templates}/app/views/adminltes/dashboard2.haml +0 -0
  307. /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_flash.haml +0 -0
  308. /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_footer.haml +0 -0
  309. /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_menu.haml +0 -0
  310. /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_menu_mm.haml +0 -0
  311. /data/lib/generators/jinda/templates/app/views/layouts/{bsb → lte}/_rightbar.haml +0 -0
@@ -0,0 +1,345 @@
1
+ # Local Development Testing Guide
2
+
3
+ This guide explains how to run tests locally during Jinda gem development, matching the CI workflow.
4
+
5
+ ## Quick Start
6
+
7
+ ```bash
8
+ # Run all tests (recommended before push)
9
+ bundle exec rake
10
+
11
+ # Or step by step:
12
+ bundle exec rake test:unit # Fast (2 seconds)
13
+ bundle exec rake test:installation # Slow (2-3 minutes)
14
+ bundle exec rake test:integration # Slow (2-3 minutes)
15
+ ```
16
+
17
+ ## Test Structure
18
+
19
+ ### 1. Unit Tests (Fast - No App Generation)
20
+ **Location**: `test/*_test.rb` (excluding integration_test.rb)
21
+ **Purpose**: Static analysis of templates, controllers, models
22
+ **Runtime**: ~2 seconds
23
+
24
+ ```bash
25
+ bundle exec rake test:unit
26
+ ```
27
+
28
+ **Files tested**:
29
+ - `test/jenkins_stage_test.rb` - Verify Jenkinsfile structure
30
+ - `test/note_model_test.rb` - Verify Note model templates
31
+ - `test/api_notes_controller_test.rb` - Verify API controller templates
32
+ - `test/note_validation_integration_test.rb` - Verify validation logic
33
+
34
+ ### 2. Installation Tests (Slow - Generates Test App)
35
+ **Location**: `test/installation_test.rb`
36
+ **Purpose**: Tests full installation flow, generates app in `tmp/jinda_tests/`
37
+ **Runtime**: ~2-3 minutes
38
+
39
+ ```bash
40
+ bundle exec rake test:installation
41
+ ```
42
+
43
+ ### 3. Integration Tests (Slow - Uses Generated App)
44
+ **Location**: `test/integration_test.rb`
45
+ **Purpose**: Tests login, HTTP endpoints in generated app
46
+ **Runtime**: ~2-3 minutes
47
+
48
+ ```bash
49
+ bundle exec rake test:integration
50
+ ```
51
+
52
+ ### 4. Generated App Tests (Manual - Uses test/dummy)
53
+ **Location**: `test/dummy/` (when manually created)
54
+ **Purpose**: Test the actual generated application with its own test suite
55
+
56
+ ```bash
57
+ # This only works if test/dummy exists
58
+ bundle exec rake test:generated_app
59
+ ```
60
+
61
+ ## Working with test/dummy
62
+
63
+ The `test/dummy` directory is **NOT** committed to git. It's for local development testing.
64
+
65
+ ### Creating test/dummy
66
+
67
+ ```bash
68
+ cd test
69
+ rm -rf dummy # Clean any old version
70
+
71
+ # Create new Rails app
72
+ rails new dummy -BOTJ
73
+
74
+ cd dummy
75
+
76
+ # Add Jinda gem (local path)
77
+ echo "gem 'jinda', path: '../../'" >> Gemfile
78
+
79
+ # Install
80
+ bundle install
81
+ rails g jinda:install
82
+ bundle install
83
+ rails g jinda:config
84
+ bundle install
85
+
86
+ # Configure MongoDB
87
+ # Edit config/mongoid.yml to use your MongoDB port
88
+
89
+ # Seed
90
+ rails jinda:seed
91
+
92
+ # Test
93
+ rails s
94
+ ```
95
+
96
+ ### Running tests in test/dummy
97
+
98
+ ```bash
99
+ cd test/dummy
100
+
101
+ # If it has Minitest
102
+ bundle exec rake test
103
+
104
+ # If it has RSpec
105
+ bundle exec rspec
106
+
107
+ # Or use the Rake task from gem root
108
+ cd ../..
109
+ bundle exec rake test:generated_app
110
+ ```
111
+
112
+ ## Local Development Workflow
113
+
114
+ ### Typical Development Cycle
115
+
116
+ ```bash
117
+ # 1. Make changes to gem code (e.g., templates, generators)
118
+
119
+ # 2. Run fast unit tests
120
+ bundle exec rake test:unit
121
+
122
+ # 3. If unit tests pass, regenerate test/dummy
123
+ cd test
124
+ rm -rf dummy
125
+ rails new dummy -BOTJ
126
+ cd dummy
127
+ echo "gem 'jinda', path: '../../'" >> Gemfile
128
+ bundle install
129
+ rails g jinda:install
130
+ bundle install
131
+ rails g jinda:config
132
+ bundle install
133
+ cd ../..
134
+
135
+ # 4. Run tests in dummy app
136
+ cd test/dummy
137
+ rails s # Manual testing
138
+ bundle exec rake test # Automated tests
139
+ cd ../..
140
+
141
+ # 5. If all looks good, run full test suite
142
+ bundle exec rake test:all
143
+
144
+ # 6. Push to GitHub (CI will run same tests)
145
+ git push
146
+ ```
147
+
148
+ ### Quick Development Cycle (Without test/dummy)
149
+
150
+ ```bash
151
+ # For quick iterations on templates:
152
+ bundle exec rake test:unit # Fast feedback
153
+
154
+ # When ready for full validation:
155
+ bundle exec rake test:installation
156
+ bundle exec rake test:integration
157
+ ```
158
+
159
+ ## Rake Tasks Reference
160
+
161
+ ### Available Tasks
162
+
163
+ ```bash
164
+ # View all test tasks
165
+ bundle exec rake -T test
166
+
167
+ # Common tasks:
168
+ rake test # Run unit + installation tests (default)
169
+ rake test:unit # Run unit tests only (fast)
170
+ rake test:installation # Run installation tests
171
+ rake test:integration # Run integration tests
172
+ rake test:generated_app # Run tests in test/dummy (if exists)
173
+ rake test:gem # Run gem-level tests (unit + installation)
174
+ rake test:all # Run all tests (unit + installation + integration)
175
+ rake test_all # Alias for test:all
176
+ ```
177
+
178
+ ### CI-Equivalent Commands
179
+
180
+ To match what CI runs:
181
+
182
+ ```bash
183
+ # CI runs these in parallel:
184
+ bundle exec rake rubocop # Code style
185
+ bundle exec rake test:unit # Fast tests
186
+
187
+ # Then sequentially:
188
+ bundle exec rake test:installation
189
+ bundle exec rake test:integration
190
+ ```
191
+
192
+ ## Environment Variables
193
+
194
+ ### MongoDB Configuration
195
+ ```bash
196
+ # Use custom MongoDB port
197
+ MONGODB_PORT=27888 bundle exec rake test:installation
198
+
199
+ # Skip cleanup (for debugging)
200
+ SKIP_CLEANUP=true bundle exec rake test:installation
201
+ ```
202
+
203
+ ### Test App Location
204
+ ```bash
205
+ # Use custom test directory
206
+ TEST_DIR=/tmp/my_tests bundle exec rake test:installation
207
+ ```
208
+
209
+ ### Keep Test Artifacts
210
+ ```bash
211
+ # Keep generated app after tests
212
+ SKIP_CLEANUP=true bundle exec rake test:installation
213
+
214
+ # App will be at: tmp/jinda_tests/jinda_test_*
215
+ ```
216
+
217
+ ## Prerequisites
218
+
219
+ ### Required Software
220
+ - Ruby 3.3.x
221
+ - Rails 7.0+
222
+ - MongoDB (Docker or local)
223
+ - Bundler
224
+
225
+ ### Start MongoDB
226
+ ```bash
227
+ # Using Docker (recommended)
228
+ docker run -d --name jinda_test_mongo -p 27017:27017 mongo
229
+
230
+ # Verify
231
+ docker ps | grep mongo
232
+ ```
233
+
234
+ ### Install Dependencies
235
+ ```bash
236
+ bundle install
237
+ gem install minitest-reporters # Better test output
238
+ ```
239
+
240
+ ## Troubleshooting
241
+
242
+ ### MongoDB Connection Failed
243
+ ```bash
244
+ # Check if MongoDB is running
245
+ docker ps | grep mongo
246
+
247
+ # Start if needed
248
+ docker run -d -p 27017:27017 mongo
249
+ ```
250
+
251
+ ### Port Already in Use
252
+ ```bash
253
+ # Find process
254
+ lsof -i :3000
255
+
256
+ # Kill it
257
+ kill -9 <PID>
258
+ ```
259
+
260
+ ### test/dummy Issues
261
+ ```bash
262
+ # Clean and recreate
263
+ cd test
264
+ rm -rf dummy
265
+ # Then follow "Creating test/dummy" steps above
266
+ ```
267
+
268
+ ### Bundle Install Failures
269
+ ```bash
270
+ # Clean bundle cache
271
+ bundle clean --force
272
+ rm Gemfile.lock
273
+ bundle install
274
+ ```
275
+
276
+ ### Test Artifacts Remain
277
+ ```bash
278
+ # Clean up
279
+ rm -rf tmp/jinda_tests
280
+ rm -rf test/dummy
281
+ ```
282
+
283
+ ## Syncing test/dummy Changes Back to Templates
284
+
285
+ When you make changes in `test/dummy` that should be in the gem templates:
286
+
287
+ ```bash
288
+ # 1. Find the file in test/dummy
289
+ # Example: test/dummy/app/models/note.rb
290
+
291
+ # 2. Copy to template location
292
+ cp test/dummy/app/models/note.rb \
293
+ lib/generators/jinda/templates/app/models/note.rb
294
+
295
+ # 3. Verify with unit tests
296
+ bundle exec rake test:unit
297
+
298
+ # 4. Verify by regenerating dummy
299
+ cd test
300
+ rm -rf dummy
301
+ # ... recreate dummy ...
302
+ # ... verify it still works ...
303
+ ```
304
+
305
+ **Future Enhancement**: We'll add a rake task to automate this sync.
306
+
307
+ ## CI vs Local Differences
308
+
309
+ | Aspect | Local | CI |
310
+ |--------|-------|-----|
311
+ | test/dummy | Manually created, not in git | Not used |
312
+ | Test apps | `tmp/jinda_tests/` or custom | `$WORKSPACE/tmp/jinda_tests/` |
313
+ | MongoDB | Docker on localhost | Docker container in CI |
314
+ | Cleanup | Optional (SKIP_CLEANUP) | Always cleanup |
315
+ | Parallel tests | Sequential by default | Parallel stages |
316
+
317
+ ## Best Practices
318
+
319
+ ### Before Committing
320
+ 1. Run `bundle exec rake test:unit` (fast check)
321
+ 2. Run `bundle exec rake test:installation` (full check)
322
+ 3. Manually test in `test/dummy` if you changed generators
323
+
324
+ ### During Development
325
+ 1. Keep `test/dummy` up to date with your changes
326
+ 2. Run unit tests frequently (they're fast)
327
+ 3. Run installation tests before pushing
328
+
329
+ ### Before Release
330
+ 1. Run full test suite: `bundle exec rake test:all`
331
+ 2. Test in fresh `test/dummy`
332
+ 3. Verify CI passes
333
+
334
+ ## Related Documentation
335
+
336
+ - `test/UNIT_TESTS_README.md` - Unit test details
337
+ - `ci/Jenkinsfile.simple` - CI configuration
338
+ - `Rakefile` - Test task definitions
339
+ - `README.md` - Gem installation guide
340
+
341
+ ---
342
+
343
+ **Last Updated**: 2026-01-04
344
+ **Ruby Version**: 3.3.x
345
+ **Rails Version**: 7.0+
data/test/README.md ADDED
@@ -0,0 +1,243 @@
1
+ # Jinda Gem Test Suite
2
+
3
+ This directory contains the Minitest-based test suite for the Jinda gem installation and functionality.
4
+
5
+ ## Overview
6
+
7
+ The test suite validates the complete Jinda gem installation process, ensuring:
8
+ - All installation steps work correctly
9
+ - The Rails application starts successfully
10
+ - The dashboard is accessible on localhost:3000
11
+ - All required files are created
12
+
13
+ ## Test Files
14
+
15
+ - `installation_test.rb` - Complete installation workflow test
16
+ - `test_helper.rb` - Test configuration and reporters
17
+
18
+ ## Running Tests Locally
19
+
20
+ ### Prerequisites
21
+
22
+ Ensure you have:
23
+ - Ruby 3.3.0+ (as specified in `jinda.gemspec`)
24
+ - Rails 7.1.0+ (as specified in `jinda.gemspec`)
25
+ - MongoDB running (Docker or local)
26
+
27
+ ### Start MongoDB
28
+
29
+ ```bash
30
+ # Using Docker
31
+ docker run -d --name jinda_test_mongodb -p 27888:27017 mongo:latest
32
+
33
+ # Or use existing container
34
+ docker start jindaapp-mongodb-1
35
+ ```
36
+
37
+ ### Run All Tests
38
+
39
+ ```bash
40
+ cd ~/mygem/jinda
41
+ ruby test/installation_test.rb
42
+ ```
43
+
44
+ Or using Rake:
45
+
46
+ ```bash
47
+ rake test
48
+ ```
49
+
50
+ ### Run with Custom MongoDB Port
51
+
52
+ ```bash
53
+ MONGODB_PORT=27017 ruby test/installation_test.rb
54
+ ```
55
+
56
+ ### Keep Test App for Debugging
57
+
58
+ ```bash
59
+ SKIP_CLEANUP=true ruby test/installation_test.rb
60
+ ```
61
+
62
+ The test app will be preserved at: `~/tmp/jinda_tests/jinda_test_<timestamp>`
63
+
64
+ ### Run Specific Test
65
+
66
+ ```bash
67
+ ruby test/installation_test.rb --name test_05_jinda_install_generator
68
+ ```
69
+
70
+ ## Test Execution Order
71
+
72
+ Tests run sequentially and build on each other:
73
+
74
+ 1. **test_01_prerequisites** - Checks Ruby, Rails, MongoDB
75
+ 2. **test_02_create_rails_app** - Creates new Rails app
76
+ 3. **test_03_add_jinda_to_gemfile** - Adds Jinda gem
77
+ 4. **test_04_bundle_install_initial** - Initial bundle install
78
+ 5. **test_05_jinda_install_generator** - Runs `rails g jinda:install`
79
+ 6. **test_06_bundle_install_post_generator** - Bundle after generator
80
+ 7. **test_07_jinda_config_generator** - Runs `rails g jinda:config`
81
+ 8. **test_08_update_mongodb_config** - Updates MongoDB port
82
+ 9. **test_09_jinda_seed** - Runs `rails jinda:seed`
83
+ 10. **test_10_rails_environment_loads** - Tests Rails initialization
84
+ 11. **test_11_rails_server_starts_and_responds** - Tests server & HTTP
85
+ 12. **test_12_verify_installation_files** - Verifies all files exist
86
+
87
+ If any test fails, subsequent tests are skipped.
88
+
89
+ ## GitHub CI Integration
90
+
91
+ The test suite runs automatically on GitHub Actions when you push to:
92
+ - `main` branch
93
+ - `develop` branch
94
+ - Any `jinda-*` branch (e.g., `jinda-0.9.0`)
95
+
96
+ ### CI Configuration
97
+
98
+ The CI workflow (`.github/workflows/ci.yml`):
99
+ - Automatically reads Ruby and Rails versions from `jinda.gemspec`
100
+ - Sets up MongoDB service
101
+ - Runs all tests
102
+ - Uploads test artifacts on failure
103
+
104
+ ### No Hardcoded Versions
105
+
106
+ The CI dynamically reads versions from your gemspec:
107
+ ```yaml
108
+ - name: Read Ruby version from gemspec
109
+ run: grep 'required_ruby_version' jinda.gemspec | grep -oE '[0-9]+\.[0-9]+\.[0-9]+'
110
+
111
+ - name: Read Rails version from gemspec
112
+ run: grep "add_runtime_dependency 'rails'" jinda.gemspec | grep -oE '[0-9]+\.[0-9]+\.[0-9]+'
113
+ ```
114
+
115
+ This means when you update versions in `jinda.gemspec`, CI automatically uses them.
116
+
117
+ ## Test Output
118
+
119
+ ### Successful Run
120
+ ```
121
+ Run options: --seed 12345
122
+
123
+ # Running:
124
+
125
+ JindaInstallationTest
126
+ test_01_prerequisites PASS (0.15s)
127
+ test_02_create_rails_app PASS (12.34s)
128
+ test_03_add_jinda_to_gemfile PASS (0.02s)
129
+ test_04_bundle_install_initial PASS (25.67s)
130
+ test_05_jinda_install_generator PASS (8.90s)
131
+ test_06_bundle_install_post_generator PASS (15.23s)
132
+ test_07_jinda_config_generator PASS (3.45s)
133
+ test_08_update_mongodb_config PASS (0.01s)
134
+ test_09_jinda_seed PASS (2.34s)
135
+ test_10_rails_environment_loads PASS (5.67s)
136
+ test_11_rails_server_starts_and_responds PASS (12.89s)
137
+ test_12_verify_installation_files PASS (0.05s)
138
+
139
+ Finished in 86.72s
140
+ 12 tests, 23 assertions, 0 failures, 0 errors, 0 skips
141
+ ```
142
+
143
+ ### With Skipped Tests (MongoDB not running)
144
+ ```
145
+ JindaInstallationTest
146
+ test_01_prerequisites SKIP
147
+ MongoDB container not running - start with: docker run -d -p 27888:27017 mongo
148
+ ```
149
+
150
+ ## Troubleshooting
151
+
152
+ ### Test Hangs on Server Start
153
+ If test_11 hangs:
154
+ 1. Check if port 3000 is already in use: `lsof -i :3000`
155
+ 2. Kill any processes on that port
156
+ 3. Run with `SKIP_CLEANUP=true` to debug
157
+
158
+ ### Bundle Install Fails
159
+ Check that `~/mygem/jinda` path exists and contains valid gem code.
160
+
161
+ ### MongoDB Connection Errors
162
+ 1. Verify MongoDB is running: `docker ps | grep mongo`
163
+ 2. Check port is correct: `MONGODB_PORT=27888`
164
+ 3. Test connection: `mongosh --host localhost --port 27888`
165
+
166
+ ### Permission Errors
167
+ Ensure `~/tmp/jinda_tests` is writable:
168
+ ```bash
169
+ mkdir -p ~/tmp/jinda_tests
170
+ chmod 755 ~/tmp/jinda_tests
171
+ ```
172
+
173
+ ## Development Workflow
174
+
175
+ ### After Making Changes
176
+
177
+ Run tests after modifying:
178
+ - `lib/generators/jinda/install_generator.rb`
179
+ - `lib/generators/jinda/config_generator.rb`
180
+ - `jinda.gemspec` dependencies
181
+ - Dashboard views
182
+ - Core gem functionality
183
+
184
+ ### Quick Test Cycle
185
+
186
+ ```bash
187
+ # Make changes to gem
188
+ vim lib/generators/jinda/install_generator.rb
189
+
190
+ # Run tests
191
+ ruby test/installation_test.rb
192
+
193
+ # If test fails, preserve app for debugging
194
+ SKIP_CLEANUP=true ruby test/installation_test.rb
195
+
196
+ # Manually inspect test app
197
+ cd ~/tmp/jinda_tests/jinda_test_XXXXX
198
+ ```
199
+
200
+ ### Before Pushing to GitHub
201
+
202
+ ```bash
203
+ # Run full test suite
204
+ rake test
205
+
206
+ # If all pass, push to GitHub
207
+ git push origin jinda-0.9.0
208
+ ```
209
+
210
+ GitHub Actions will automatically run the same tests in CI.
211
+
212
+ ## Adding New Tests
213
+
214
+ To add a new test:
215
+
216
+ 1. Add test method to `installation_test.rb`:
217
+ ```ruby
218
+ def test_13_my_new_test
219
+ skip unless File.directory?(@test_app_path)
220
+
221
+ # Your test logic here
222
+ assert something, "Error message"
223
+ end
224
+ ```
225
+
226
+ 2. Follow naming convention: `test_##_descriptive_name`
227
+ 3. Use `skip unless File.directory?(@test_app_path)` to chain tests
228
+ 4. Run locally to verify
229
+ 5. Push to GitHub to run in CI
230
+
231
+ ## Environment Variables
232
+
233
+ - `MONGODB_PORT` - MongoDB port (default: 27888)
234
+ - `SKIP_CLEANUP` - Keep test app after run (default: false)
235
+
236
+ ## Future Enhancements
237
+
238
+ - [ ] Test theme installation (adminlte, adminbsb)
239
+ - [ ] Test Freemind integration
240
+ - [ ] Test user authentication flows
241
+ - [ ] Test API endpoints
242
+ - [ ] Performance benchmarks
243
+ - [ ] Multi-version testing (Ruby 3.3.x matrix)