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
@@ -1,12 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  FactoryBot.define do
2
4
  factory :user, class: 'User' do
3
- code {Faker::Name.unique.name}
4
- email {Faker::Internet.email}
5
- role {"Admin"}
5
+ code { Faker::Name.unique.name }
6
+ email { Faker::Internet.email }
7
+ role { 'Admin' }
6
8
  end
7
- factory :note, class: 'Note' do
9
+ factory :note, class: 'Note' do
8
10
  title { Faker::Lorem.sentence[0..29] }
9
11
  body { Faker::Lorem.sentence[0..999] }
10
- user { User.first }
12
+ association :user
11
13
  end
12
14
  end
@@ -1,23 +1,22 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # in spec/support/omniauth_macro.rb
2
4
  module OmniauthMacros
3
- require 'omniauth'
4
- #To enable all request to OmniAuth short circuited to use below mock authentication hash the /auth/provider will redirect immediately to /auth/provider/call back
5
+ require 'omniauth'
6
+ # To enable all request to OmniAuth short circuited to use below mock authentication hash the /auth/provider will redirect immediately to /auth/provider/call back
5
7
  # https://github.com/omniauth/omniauth/wiki/Integration-Testing
6
8
  OmniAuth.config.test_mode = true
7
9
 
8
10
  omniauth_hash = { 'provider' => 'google_oauth2',
9
11
  'uid' => '105362273761620533373',
10
12
  'info' => {
11
- 'name' => 'Kulsoft',
12
- 'email' => 'kulsoft.net@gmail.com',
13
- 'nickname' => 'kulsoft'
13
+ 'name' => 'Kulsoft',
14
+ 'email' => 'kulsoft.net@gmail.com',
15
+ 'nickname' => 'kulsoft'
14
16
  },
15
- 'extra' => {'raw_info' =>
16
- { 'location' => 'San Francisco',
17
- 'gravatar_id' => '123456789'
18
- }
19
- }
20
- }
17
+ 'extra' => { 'raw_info' =>
18
+ { 'location' => 'San Francisco',
19
+ 'gravatar_id' => '123456789' } } }
21
20
  OmniAuth.config.add_mock(:google_oauth2, omniauth_hash)
22
21
 
23
22
  omniauth_hash = { 'provider' => 'facebook',
@@ -26,13 +25,9 @@ require 'omniauth'
26
25
  'name' => 'Peter Colling',
27
26
  'email' => '1.0@kul.asia',
28
27
  'nickname' => 'Peter C'
29
- },
30
- 'extra' => {'raw_info' =>
31
- {'location' => 'LA',
32
- 'gravatar_id' => '13'
33
- }
34
- }
35
- }
28
+ },
29
+ 'extra' => { 'raw_info' =>
30
+ { 'location' => 'LA',
31
+ 'gravatar_id' => '13' } } }
36
32
  OmniAuth.config.add_mock(:facebook, omniauth_hash)
37
33
  end
38
-
@@ -1,4 +1,6 @@
1
- #request_spec_helper.rb
1
+ # frozen_string_literal: true
2
+
3
+ # request_spec_helper.rb
2
4
 
3
5
  module RequestSpecHelper
4
6
  # Parse JSON response to ruby hash
@@ -1,14 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  let login_as_admin
2
4
 
3
5
  describe 'articles/_article.html.erb' do
4
- context 'when the article has a url' do
5
- it 'display the url' do
6
- assign(:article, Article.build(:article, url: 'http://localhost:3000/jinda/init?s=articles:new_article'))
6
+ context 'when the article has a url' do
7
+ it 'display the url' do
8
+ assign(:article, Article.build(:article, url: 'http://localhost:3000/jinda/init?s=articles:new_article'))
7
9
 
8
- render
10
+ render
9
11
 
10
- expect(rendered).to have_link 'Article', href: 'http://localhost:3000/jinda/init?s=articles:new_article'
11
- end
12
- end
12
+ expect(rendered).to have_link 'Article', href: 'http://localhost:3000/jinda/init?s=articles:new_article'
13
+ end
14
+ end
13
15
  end
14
-
@@ -0,0 +1,261 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'minitest/autorun'
4
+ require 'fileutils'
5
+ require 'open3'
6
+ require 'timeout'
7
+
8
+ # Test suite for generated Jinda application functionality
9
+ #
10
+ # This test verifies that generated Jinda applications:
11
+ # - Correctly install dependencies
12
+ # - Can start a Rails server
13
+ # - Have proper file structure
14
+ #
15
+ # Usage:
16
+ # ruby test/generated_app_test.rb
17
+ #
18
+ # rubocop:disable Style/ClassVars
19
+ class GeneratedAppTest < Minitest::Test
20
+ i_suck_and_my_tests_are_order_dependent!
21
+
22
+ def self.test_order
23
+ :alpha
24
+ end
25
+
26
+ JINDA_GEM_PATH = File.expand_path('..', __dir__)
27
+ TEST_DIR = File.join(Dir.tmpdir, 'jinda_generated_app_test')
28
+ MONGODB_PORT = ENV.fetch('MONGODB_PORT', '27017')
29
+ TEST_APP_NAME = "test_app_#{Time.now.to_i}".freeze
30
+
31
+ @@test_app_path = nil
32
+ @@app_created = false
33
+
34
+ def setup
35
+ @@test_app_path ||= File.join(TEST_DIR, TEST_APP_NAME)
36
+ @test_app_path = @@test_app_path
37
+ FileUtils.mkdir_p(TEST_DIR)
38
+ end
39
+
40
+ Minitest.after_run do
41
+ FileUtils.rm_rf(@@test_app_path) if @@test_app_path && File.exist?(@@test_app_path)
42
+ end
43
+
44
+ def test_01_create_test_rails_app
45
+ Dir.chdir(TEST_DIR) do
46
+ _, stderr, status = Open3.capture3(
47
+ 'rails', 'new', TEST_APP_NAME,
48
+ '--skip-test', '--skip-bundle', '--skip-active-record'
49
+ )
50
+
51
+ assert_predicate status, :success?, "Rails app creation failed: #{stderr}"
52
+ assert File.directory?(@test_app_path), 'App directory not created'
53
+ @@app_created = true
54
+ end
55
+ end
56
+
57
+ def test_02_add_jinda_to_gemfile
58
+ skip 'App not created' unless @@app_created
59
+
60
+ gemfile_path = File.join(@test_app_path, 'Gemfile')
61
+ File.open(gemfile_path, 'a') do |f|
62
+ f.puts "gem 'jinda', path: '#{JINDA_GEM_PATH}'"
63
+ end
64
+
65
+ content = File.read(gemfile_path)
66
+ assert_includes content, "gem 'jinda'", 'Jinda not added to Gemfile'
67
+ end
68
+
69
+ def test_03_bundle_install_succeeds
70
+ skip 'App not created' unless @@app_created
71
+
72
+ Dir.chdir(@test_app_path) do
73
+ stdout, stderr, status = Open3.capture3('bundle install')
74
+
75
+ assert_predicate status, :success?, "Bundle install failed: #{stderr}\n#{stdout}"
76
+
77
+ # Verify jinda gem is installed
78
+ stdout, = Open3.capture3('bundle show jinda')
79
+ assert_includes stdout, 'jinda', 'Jinda gem not found in bundle'
80
+ end
81
+ end
82
+
83
+ def test_04_jinda_install_generator_runs
84
+ skip 'App not created' unless @@app_created
85
+
86
+ Dir.chdir(@test_app_path) do
87
+ _, stderr, status = Open3.capture3('rails generate jinda:install')
88
+
89
+ assert_predicate status, :success?, "jinda:install failed: #{stderr}"
90
+ end
91
+ end
92
+
93
+ def test_05_generated_app_has_required_dependencies
94
+ skip 'App not created' unless @@app_created
95
+
96
+ gemfile_path = File.join(@test_app_path, 'Gemfile')
97
+ content = File.read(gemfile_path)
98
+
99
+ # Check for critical dependencies added by Jinda
100
+ assert_includes content, 'mongoid', 'Should include mongoid'
101
+ assert_includes content, 'omniauth', 'Should include omniauth'
102
+ end
103
+
104
+ def test_06_bundle_install_post_generator
105
+ skip 'App not created' unless @@app_created
106
+
107
+ Dir.chdir(@test_app_path) do
108
+ _, stderr, status = Open3.capture3('bundle install')
109
+
110
+ assert_predicate status, :success?,
111
+ "Post-generator bundle install failed: #{stderr}"
112
+ end
113
+ end
114
+
115
+ def test_07_jinda_config_generator_runs
116
+ skip 'App not created' unless @@app_created
117
+
118
+ Dir.chdir(@test_app_path) do
119
+ _, stderr, status = Open3.capture3('rails generate jinda:config')
120
+
121
+ assert_predicate status, :success?, "jinda:config failed: #{stderr}"
122
+
123
+ # Verify config files created
124
+ assert_path_exists 'config/mongoid.yml'
125
+ assert_path_exists 'config/initializers/omniauth.rb'
126
+ assert_path_exists 'config/initializers/jinda.rb'
127
+ end
128
+ end
129
+
130
+ def test_08_bundle_install_post_config
131
+ skip 'App not created' unless @@app_created
132
+
133
+ Dir.chdir(@test_app_path) do
134
+ _, stderr, status = Open3.capture3('bundle install')
135
+
136
+ assert_predicate status, :success?,
137
+ "Final bundle install failed: #{stderr}"
138
+ end
139
+ end
140
+
141
+ def test_09_configure_mongodb
142
+ skip 'App not created' unless @@app_created
143
+
144
+ mongoid_config = File.join(@test_app_path, 'config/mongoid.yml')
145
+ content = File.read(mongoid_config)
146
+ updated = content.gsub('localhost:27017', "localhost:#{MONGODB_PORT}")
147
+ File.write(mongoid_config, updated)
148
+
149
+ assert_includes File.read(mongoid_config), "localhost:#{MONGODB_PORT}"
150
+ end
151
+
152
+ def test_10_rails_environment_loads
153
+ skip 'App not created' unless @@app_created
154
+
155
+ Dir.chdir(@test_app_path) do
156
+ stdout, stderr, status = Open3.capture3(
157
+ 'bundle', 'exec', 'rails', 'runner',
158
+ 'puts "Rails environment: #{Rails.env}"'
159
+ )
160
+
161
+ assert_predicate status, :success?, "Rails environment failed: #{stderr}"
162
+ assert_includes stdout, 'Rails environment:',
163
+ 'Rails should load successfully'
164
+ end
165
+ end
166
+
167
+ def test_11_rails_server_can_start
168
+ skip 'App not created' unless @@app_created
169
+
170
+ Dir.chdir(@test_app_path) do
171
+ # Start server in daemon mode
172
+ pid = spawn('bundle exec rails server -p 3002 -d',
173
+ out: '/dev/null', err: '/dev/null')
174
+ Process.detach(pid)
175
+
176
+ # Wait for server to start
177
+ server_started = false
178
+ Timeout.timeout(30) do
179
+ loop do
180
+ stdout, = Open3.capture3('lsof -i :3002')
181
+ if stdout.include?('ruby')
182
+ server_started = true
183
+ break
184
+ end
185
+ sleep 1
186
+ end
187
+ end
188
+
189
+ assert server_started, 'Rails server should start within 30 seconds'
190
+
191
+ # Clean up
192
+ if File.exist?('tmp/pids/server.pid')
193
+ server_pid = File.read('tmp/pids/server.pid').strip
194
+ Process.kill('TERM', server_pid.to_i) rescue nil
195
+ File.delete('tmp/pids/server.pid')
196
+ end
197
+ end
198
+ rescue Timeout::Error
199
+ flunk 'Server failed to start within timeout'
200
+ end
201
+
202
+ def test_12_verify_generated_structure
203
+ skip 'App not created' unless @@app_created
204
+
205
+ required_files = [
206
+ 'app/controllers/admins_controller.rb',
207
+ 'app/controllers/users_controller.rb',
208
+ 'app/models/user.rb',
209
+ 'app/views/jinda/index.html.haml',
210
+ 'config/routes.rb'
211
+ ]
212
+
213
+ required_files.each do |file|
214
+ path = File.join(@test_app_path, file)
215
+ assert_path_exists path, "Required file missing: #{file}"
216
+ end
217
+ end
218
+
219
+ def test_13_verify_dependencies_installed
220
+ skip 'App not created' unless @@app_created
221
+
222
+ Dir.chdir(@test_app_path) do
223
+ # Check key gems are available
224
+ %w[mongoid omniauth jinda].each do |gem_name|
225
+ stdout, = Open3.capture3("bundle show #{gem_name}")
226
+ assert_includes stdout, gem_name, "Gem #{gem_name} should be installed"
227
+ end
228
+ end
229
+ end
230
+
231
+ def test_14_bundle_audit_passes
232
+ skip 'App not created' unless @@app_created
233
+ skip 'bundler-audit not installed' unless system('which bundle-audit > /dev/null 2>&1')
234
+
235
+ Dir.chdir(@test_app_path) do
236
+ # Run bundle audit if available (security check)
237
+ stdout, = Open3.capture3('bundle audit check 2>&1')
238
+
239
+ # Should not have critical vulnerabilities
240
+ refute_includes stdout, 'Critical Vulnerabilities',
241
+ 'Should not have critical vulnerabilities'
242
+ end
243
+ end
244
+
245
+ def test_15_assets_precompile_works
246
+ skip 'App not created' unless @@app_created
247
+
248
+ Dir.chdir(@test_app_path) do
249
+ stdout, stderr, status = Open3.capture3(
250
+ { 'RAILS_ENV' => 'production' },
251
+ 'bundle', 'exec', 'rails', 'assets:precompile'
252
+ )
253
+
254
+ # Assets should compile without errors
255
+ assert_predicate status, :success?,
256
+ "Assets precompile failed: #{stderr}\n#{stdout}"
257
+ assert_path_exists 'public/assets', 'Assets directory should be created'
258
+ end
259
+ end
260
+ end
261
+ # rubocop:enable Style/ClassVars