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.
- checksums.yaml +4 -4
- data/README.md +46 -29
- data/Rakefile +103 -1
- data/app/assets/config/manifest.js +4 -1
- data/app/assets/javascripts/jinda_bootstrap.js +20 -0
- data/app/assets/stylesheets/_jinda_bootstrap_theme.scss +190 -0
- data/{lib/generators/jinda/templates/app/assets/stylesheets/jinda_jqm.css.scss → app/assets/stylesheets/jinda_bootstrap.css.scss} +12 -10
- data/app/config/routes.rb +38 -28
- data/app/controllers/concerns/jinda_general_concern.rb +86 -87
- data/app/controllers/concerns/jinda_run_concern.rb +184 -184
- data/app/controllers/jinda_controller.rb +23 -22
- data/bin/lint_modified +21 -0
- data/config/routes.rb +41 -22
- data/lib/generators/jinda/config_generator.rb +102 -81
- data/lib/generators/jinda/install_generator.rb +305 -148
- data/lib/generators/jinda/install_generator.rb.bak2 +268 -0
- data/lib/generators/jinda/installer/gems_install.rb +125 -127
- data/lib/generators/jinda/minitest_generator.rb +19 -18
- data/lib/generators/jinda/rspec_generator.rb +15 -14
- data/lib/generators/jinda/templates/DOCKER.md +188 -0
- data/lib/generators/jinda/templates/Dockerfile +15 -5
- data/lib/generators/jinda/templates/README.md +3 -3
- data/lib/generators/jinda/templates/app/assets/config/manifest.js +4 -0
- data/lib/generators/jinda/templates/app/assets/javascripts/application.js +8 -8
- data/lib/generators/jinda/templates/app/channels/application_cable/channel.rb +2 -0
- data/lib/generators/jinda/templates/app/channels/application_cable/connection.rb +2 -0
- data/{test/dummy → lib/generators/jinda/templates}/app/controllers/adminltes_controller.rb +1 -0
- data/lib/generators/jinda/templates/app/controllers/api/v1/notes_controller.rb +80 -78
- data/lib/generators/jinda/templates/app/controllers/jinda_org/admins_controller.rb +4 -2
- data/lib/generators/jinda/templates/app/controllers/jinda_org/application_controller.rb +11 -9
- data/lib/generators/jinda/templates/app/controllers/jinda_org/articles_controller.rb +40 -44
- data/lib/generators/jinda/templates/app/controllers/jinda_org/comments_controller.rb +10 -8
- data/lib/generators/jinda/templates/app/controllers/jinda_org/docs_controller.rb +23 -24
- data/lib/generators/jinda/templates/app/controllers/jinda_org/identities_controller.rb +3 -1
- data/lib/generators/jinda/templates/app/controllers/jinda_org/notes_controller.rb +25 -27
- data/lib/generators/jinda/templates/app/controllers/jinda_org/password_resets_controller.rb +16 -18
- data/lib/generators/jinda/templates/app/controllers/jinda_org/sessions_controller.rb +13 -14
- data/lib/generators/jinda/templates/app/controllers/jinda_org/sitemap_controller.rb +4 -4
- data/lib/generators/jinda/templates/app/controllers/jinda_org/users_controller.rb +14 -14
- data/lib/generators/jinda/templates/app/controllers/mindmap_editor_controller.rb +74 -0
- data/lib/generators/jinda/templates/app/helpers/admins_helper.rb +2 -0
- data/lib/generators/jinda/templates/app/helpers/application_helper.rb +21 -20
- data/lib/generators/jinda/templates/app/helpers/articles_helper.rb +2 -0
- data/lib/generators/jinda/templates/app/helpers/basic_helper.rb +2 -0
- data/lib/generators/jinda/templates/app/helpers/comments_helper.rb +2 -0
- data/lib/generators/jinda/templates/app/helpers/ctrs_helper.rb +2 -0
- data/lib/generators/jinda/templates/app/helpers/devs_helper.rb +2 -0
- data/lib/generators/jinda/templates/app/helpers/mindmap_editor_helper.rb +3 -0
- data/lib/generators/jinda/templates/app/helpers/pictures_helper.rb +2 -0
- data/lib/generators/jinda/templates/app/helpers/sitemap_helper.rb +2 -0
- data/lib/generators/jinda/templates/app/helpers/users_helper.rb +2 -0
- data/lib/generators/jinda/templates/app/jinda/index.mm +276 -298
- data/lib/generators/jinda/templates/app/jinda/template/index.mm +1 -0
- data/lib/generators/jinda/templates/app/mailers/jinda_mailer.rb +5 -3
- data/lib/generators/jinda/templates/app/mailers/note_mailer.rb +6 -4
- data/lib/generators/jinda/templates/app/mailers/user_mailer.rb +5 -5
- data/lib/generators/jinda/templates/app/models/address.rb +10 -8
- data/lib/generators/jinda/templates/app/models/article.rb +8 -6
- data/lib/generators/jinda/templates/app/models/comment.rb +10 -8
- data/lib/generators/jinda/templates/app/models/identity.rb +11 -10
- data/lib/generators/jinda/templates/app/models/jinda/doc.rb +36 -33
- data/lib/generators/jinda/templates/app/models/jinda/jinda_module.rb +15 -0
- data/lib/generators/jinda/templates/app/models/jinda/module.rb +14 -10
- data/lib/generators/jinda/templates/app/models/jinda/notice.rb +15 -11
- data/lib/generators/jinda/templates/app/models/jinda/role.rb +11 -7
- data/lib/generators/jinda/templates/app/models/jinda/runseq.rb +23 -20
- data/lib/generators/jinda/templates/app/models/jinda/service.rb +19 -15
- data/lib/generators/jinda/templates/app/models/jinda/xmain.rb +42 -36
- data/lib/generators/jinda/templates/app/models/note.rb +14 -10
- data/lib/generators/jinda/templates/app/models/param.rb +23 -20
- data/lib/generators/jinda/templates/app/models/person.rb +9 -7
- data/lib/generators/jinda/templates/app/models/user.rb +42 -41
- data/lib/generators/jinda/templates/app/views/articles/show.html.haml +2 -2
- data/lib/generators/jinda/templates/app/views/identities/new.html.haml +13 -0
- data/lib/generators/jinda/templates/app/views/jinda/_static_bootstrap.haml +23 -0
- data/lib/generators/jinda/templates/app/views/jinda/feed.rss.builder +15 -13
- data/lib/generators/jinda/templates/app/views/jinda/index.html.haml +3 -2
- data/lib/generators/jinda/templates/app/views/layouts/application.haml +31 -4
- data/lib/generators/jinda/templates/app/views/layouts/lte/_header.haml +54 -0
- data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_sidebar.haml +1 -1
- data/lib/generators/jinda/templates/app/views/mindmap_editor/edit.html.haml +126 -0
- data/lib/generators/jinda/templates/app/views/mindmap_editor/save.html.haml +2 -0
- data/lib/generators/jinda/templates/app/views/sessions/new.html.haml +13 -0
- data/lib/generators/jinda/templates/bin/lint_modified +21 -0
- data/lib/generators/jinda/templates/config/mongoid.yml +3 -3
- data/lib/generators/jinda/templates/config/mongoid.yml-docker +3 -3
- data/lib/generators/jinda/templates/config/mongoid.yml-localhost +3 -3
- data/lib/generators/jinda/templates/docker-compose-mongodb.yml +13 -0
- data/lib/generators/jinda/templates/docker-compose-web.yml +36 -0
- data/lib/generators/jinda/templates/docker-compose.yml +10 -14
- data/lib/generators/jinda/templates/spec/controllers/api/v1_get_index_spec.rb +15 -14
- data/lib/generators/jinda/templates/spec/controllers/api/v1_get_my_spec.rb +9 -4
- data/lib/generators/jinda/templates/spec/controllers/api/v1_post_spec.rb +4 -3
- data/lib/generators/jinda/templates/spec/controllers/sessions_controller_spec.rb +82 -90
- data/lib/generators/jinda/templates/spec/features/userlogins_spec.rb +12 -15
- data/lib/generators/jinda/templates/spec/mailers/note_spec.rb +5 -8
- data/lib/generators/jinda/templates/spec/mailers/previews/note_preview.rb +3 -5
- data/lib/generators/jinda/templates/spec/models/note_spec.rb +36 -35
- data/lib/generators/jinda/templates/spec/models/user_spec.rb +10 -8
- data/lib/generators/jinda/templates/spec/rails_helper.rb +29 -31
- data/lib/generators/jinda/templates/spec/spec_helper.rb +19 -17
- data/lib/generators/jinda/templates/spec/support/authentication_helper.rb +8 -7
- data/lib/generators/jinda/templates/spec/support/databasecleaner.rb +3 -1
- data/lib/generators/jinda/templates/spec/support/factory_bot.rb +7 -5
- data/lib/generators/jinda/templates/spec/support/omniauth_macros.rb +14 -19
- data/lib/generators/jinda/templates/spec/support/request_spec_helper.rb +3 -1
- data/lib/generators/jinda/templates/spec/views/articles/_article.html.erb_spec.rbx +9 -8
- data/lib/generators/jinda/templates/test/application_system_test_case.rb +3 -1
- data/lib/generators/jinda/templates/test/integration/jinda_routes_test.rb +16 -21
- data/lib/generators/jinda/templates/test/test_helper.rb +7 -3
- data/lib/jinda/date_helpers.rb +50 -41
- data/lib/jinda/gem_helpers.rb +10 -8
- data/lib/jinda/gen_class.rb +14 -12
- data/lib/jinda/gen_controller.rb +9 -8
- data/lib/jinda/gen_freemind.rb +33 -32
- data/lib/jinda/gen_helpers.rb +146 -139
- data/lib/jinda/gen_models.rb +125 -131
- data/lib/jinda/gen_modules.rb +21 -16
- data/lib/jinda/gen_runseq.rb +71 -67
- data/lib/jinda/gen_services.rb +74 -80
- data/lib/jinda/gen_xmain.rb +38 -36
- data/lib/jinda/get_app.rb +31 -29
- data/lib/jinda/helpers.rb +4 -4
- data/lib/jinda/init_vars.rb +41 -36
- data/lib/jinda/mindmap_converter.rb +196 -0
- data/lib/jinda/railtie.rb +10 -2
- data/lib/jinda/rake_views.rb +61 -60
- data/lib/jinda/refresh.rb +67 -61
- data/lib/jinda/themes.rb +80 -60
- data/lib/jinda/version.rb +3 -1
- data/lib/jinda.rb +2 -0
- data/lib/tasks/jinda.rake +25 -22
- data/test/INTEGRATION_TEST_README.md +374 -0
- data/test/LOCAL_DEVELOPMENT.md +345 -0
- data/test/README.md +243 -0
- data/test/TEST_INFRASTRUCTURE.md +412 -0
- data/test/TEST_INSTALLATION_SH_FIXES.md +205 -0
- data/test/UNIT_TESTS_README.md +366 -0
- data/test/api_notes_controller_test.rb +231 -0
- data/test/dummy/DOCKER.md +188 -0
- data/test/dummy/Dockerfile +15 -7
- data/test/dummy/Gemfile +38 -29
- data/test/dummy/Gemfile.lock +671 -292
- data/test/dummy/app/assets/config/manifest.js +4 -0
- data/test/dummy/app/channels/application_cable/channel.rb +2 -0
- data/test/dummy/app/channels/application_cable/connection.rb +2 -0
- data/test/dummy/app/controllers/admins_controller.rb +4 -2
- data/test/dummy/app/controllers/api/v1/notes_controller.rb +80 -78
- data/test/dummy/app/controllers/application_controller.rb +11 -9
- data/test/dummy/app/controllers/articles_controller.rb +40 -44
- data/test/dummy/app/controllers/comments_controller.rb +10 -8
- data/test/dummy/app/controllers/ctrs_controller.rb +2 -0
- data/test/dummy/app/controllers/devs_controller.rb +2 -0
- data/test/dummy/app/controllers/docs_controller.rb +23 -24
- data/test/dummy/app/controllers/identities_controller.rb +3 -1
- data/test/dummy/app/controllers/mindmap_editor_controller.rb +74 -0
- data/test/dummy/app/controllers/notes_controller.rb +25 -27
- data/test/dummy/app/controllers/password_resets_controller.rb +16 -18
- data/test/dummy/app/controllers/sessions_controller.rb +13 -14
- data/test/dummy/app/controllers/sitemap_controller.rb +4 -4
- data/test/dummy/app/controllers/users_controller.rb +14 -14
- data/test/dummy/app/helpers/admins_helper.rb +2 -0
- data/test/dummy/app/helpers/application_helper.rb +21 -20
- data/test/dummy/app/helpers/articles_helper.rb +2 -0
- data/test/dummy/app/helpers/basic_helper.rb +2 -0
- data/test/dummy/app/helpers/comments_helper.rb +2 -0
- data/test/dummy/app/helpers/ctrs_helper.rb +2 -0
- data/test/dummy/app/helpers/devs_helper.rb +2 -0
- data/test/dummy/app/helpers/mindmap_editor_helper.rb +3 -0
- data/test/dummy/app/helpers/pictures_helper.rb +2 -0
- data/test/dummy/app/helpers/sitemap_helper.rb +2 -0
- data/test/dummy/app/helpers/users_helper.rb +2 -0
- data/test/dummy/app/jinda/index.mm +384 -486
- data/test/dummy/app/jinda/template/index.mm +1 -0
- data/test/dummy/app/mailers/application_mailer.rb +2 -2
- data/test/dummy/app/mailers/application_mailer.rb-org +4 -0
- data/test/dummy/app/mailers/jinda_mailer.rb +5 -3
- data/test/dummy/app/mailers/note_mailer.rb +6 -4
- data/test/dummy/app/mailers/user_mailer.rb +5 -5
- data/test/dummy/app/models/address.rb +2 -0
- data/test/dummy/app/models/article.rb +2 -0
- data/test/dummy/app/models/comment.rb +3 -2
- data/test/dummy/app/models/identity.rb +11 -10
- data/test/dummy/app/models/jinda/doc.rb +36 -33
- data/test/dummy/app/models/jinda/jinda_module.rb +15 -0
- data/test/dummy/app/models/jinda/module.rb +14 -10
- data/test/dummy/app/models/jinda/notice.rb +15 -11
- data/test/dummy/app/models/jinda/role.rb +11 -7
- data/test/dummy/app/models/jinda/runseq.rb +23 -20
- data/test/dummy/app/models/jinda/service.rb +19 -15
- data/test/dummy/app/models/jinda/xmain.rb +42 -36
- data/test/dummy/app/models/note.rb +3 -8
- data/test/dummy/app/models/param.rb +23 -20
- data/test/dummy/app/models/person.rb +2 -0
- data/test/dummy/app/models/picture.rb +11 -0
- data/test/dummy/app/models/user.rb +42 -41
- data/test/dummy/app/views/admins/index.haml +21 -0
- data/test/dummy/app/views/api/v1/notes/delete/select_note.html.erb +21 -0
- data/test/dummy/app/views/api/v1/notes/edit/edit_note.html.erb +21 -0
- data/test/dummy/app/views/api/v1/notes/index.haml +21 -0
- data/test/dummy/app/views/api/v1/notes/new/new_note.html.erb +21 -0
- data/test/dummy/app/views/articles/show.html.haml +2 -2
- data/test/dummy/app/views/devs/index.haml +21 -0
- data/test/dummy/app/views/jinda/feed.rss.builder +15 -13
- data/test/dummy/app/views/jinda/index.html.haml +3 -2
- data/test/dummy/app/views/layouts/application.haml +2 -2
- data/test/dummy/app/views/mindmap_editor/edit.html.haml +126 -0
- data/test/dummy/app/views/mindmap_editor/save.html.haml +2 -0
- data/test/dummy/bin/docker-entrypoint +3 -0
- data/test/dummy/bin/lint_modified +21 -0
- data/test/dummy/bin/setup +1 -1
- data/test/dummy/config/application.rb +7 -2
- data/test/dummy/config/boot.rb +2 -1
- data/test/dummy/config/cable.yml +1 -1
- data/test/dummy/config/credentials.yml.enc +1 -1
- data/test/dummy/config/environments/development.rb +7 -1
- data/test/dummy/config/environments/production.rb +30 -26
- data/test/dummy/config/environments/test.rb +12 -8
- data/test/dummy/config/initializers/content_security_policy.rb +2 -2
- data/test/dummy/config/initializers/filter_parameter_logging.rb +3 -3
- data/test/dummy/config/initializers/mindmap_converter.rb +5 -0
- data/test/dummy/config/initializers/mongoid.rb +24 -9
- data/test/dummy/config/initializers/omniauth.rb +5 -0
- data/test/dummy/config/initializers/permissions_policy.rb +11 -9
- data/test/dummy/config/locales/en.yml +11 -13
- data/test/dummy/config/mongoid.yml +172 -53
- data/test/dummy/config/mongoid.yml-docker +3 -3
- data/test/dummy/config/mongoid.yml-localhost +3 -3
- data/test/dummy/config/puma.rb +21 -20
- data/test/dummy/config/routes.rb +7 -1
- data/test/dummy/docker-compose-mongodb.yml +13 -0
- data/test/dummy/docker-compose-web.yml +36 -0
- data/test/dummy/docker-compose.yml +10 -18
- data/test/dummy/log/development.log +5834 -2261
- data/test/dummy/spec/controllers/api/v1_get_index_spec.rb +15 -14
- data/test/dummy/spec/controllers/api/v1_get_my_spec.rb +9 -4
- data/test/dummy/spec/controllers/api/v1_post_spec.rb +4 -3
- data/test/dummy/spec/controllers/sessions_controller_spec.rb +82 -90
- data/test/dummy/spec/factories/pictures.rb +5 -0
- data/test/dummy/spec/features/userlogins_spec.rb +12 -15
- data/test/dummy/spec/mailers/note_spec.rb +5 -8
- data/test/dummy/spec/mailers/previews/note_preview.rb +3 -5
- data/test/dummy/spec/models/note_spec.rb +36 -35
- data/test/dummy/spec/models/picture_spec.rb +5 -0
- data/test/dummy/spec/models/user_spec.rb +10 -8
- data/test/dummy/spec/rails_helper.rb +29 -31
- data/test/dummy/spec/requests/ctrs_spec.rb +7 -0
- data/test/dummy/spec/requests/devs_spec.rb +7 -0
- data/test/dummy/spec/spec_helper.rb +19 -17
- data/test/dummy/spec/support/authentication_helper.rb +8 -7
- data/test/dummy/spec/support/databasecleaner.rb +3 -1
- data/test/dummy/spec/support/factory_bot.rb +7 -5
- data/test/dummy/spec/support/omniauth_macros.rb +14 -19
- data/test/dummy/spec/support/request_spec_helper.rb +3 -1
- data/test/dummy/spec/views/articles/_article.html.erb_spec.rbx +9 -8
- data/test/generated_app_test.rb +261 -0
- data/test/installation_test.rb +368 -0
- data/test/integration_test.rb +398 -0
- data/test/jenkins_stage_test.rb +182 -0
- data/test/note_model_test.rb +224 -0
- data/test/note_validation_integration_test.rb +292 -0
- data/test/run_unit_tests.sh +91 -0
- data/test/test_helper.rb +8 -16
- metadata +188 -60
- data/lib/generators/jinda/templates/app/assets/stylesheets/application.css.scss +0 -15
- data/lib/generators/jinda/templates/app/controllers/jinda_org/password_resets.rb +0 -28
- data/lib/generators/jinda/templates/app/views/layouts/_head.html.erb +0 -10
- data/lib/generators/jinda/templates/app/views/layouts/_meta_tag.html.erb +0 -19
- data/lib/generators/jinda/templates/app/views/layouts/bsb/_footer.haml +0 -7
- data/lib/generators/jinda/templates/app/views/layouts/bsb/_header.haml +0 -147
- data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu.haml +0 -47
- data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu_mm.haml +0 -34
- data/lib/generators/jinda/templates/app/views/layouts/bsb/_sidebar.haml +0 -155
- data/lib/generators/jinda/templates/app/views/layouts/bsb/application.haml-bsb +0 -47
- data/lib/generators/jinda/templates/app/views/layouts/gmail.html.erb +0 -9
- data/lib/generators/jinda/templates/app/views/layouts/jqm/_full.haml +0 -33
- data/lib/generators/jinda/templates/app/views/layouts/jqm/_page.haml +0 -16
- data/lib/generators/jinda/templates/app/views/layouts/jqm/application.haml-jqm +0 -4
- data/lib/generators/jinda/templates/app/views/layouts/mailer.html.erb +0 -13
- data/lib/generators/jinda/templates/app/views/layouts/mailer.html.haml +0 -3
- data/lib/generators/jinda/templates/app/views/layouts/mailer.text.erb +0 -1
- data/lib/generators/jinda/templates/app/views/layouts/mailer.text.haml +0 -1
- data/lib/generators/jinda/templates/app/views/layouts/mobile.html.erb +0 -13
- data/lib/generators/jinda/templates/app/views/layouts/mobilejq.html.erb +0 -31
- data/lib/generators/jinda/templates/app/views/layouts/print.html.erb +0 -22
- data/lib/generators/jinda/templates/app/views/layouts/utf8.html.erb +0 -22
- data/lib/generators/jinda/templates/config/initializers/fix_mongoid_generator.rb-org +0 -14
- data/test/dummy/Guardfile +0 -96
- data/test/dummy/app/controllers/application_controller.rb.bak +0 -2
- data/test/dummy/app/controllers/password_resets.rb +0 -28
- data/test/dummy/app/helpers/application_helper.rb.bak +0 -2
- data/test/dummy/app/views/identities/new-bak.html.haml +0 -32
- data/test/dummy/app/views/layouts/application.haml.bak +0 -4
- data/test/dummy/app/views/layouts/application.html.erb.bak +0 -15
- data/test/dummy/app/views/layouts/lte/_header.haml +0 -111
- data/test/dummy/app/views/layouts/lte/_rightbar.haml +0 -123
- data/test/dummy/app/views/sessions/new-bak.html.haml +0 -22
- data/test/dummy/config/initializers/fix_mongoid_generator.rb-org +0 -14
- data/test/dummy/tmp/development_secret.txt +0 -1
- data/test/integration/navigation_test.rb +0 -7
- data/test/jinda_test.rb +0 -7
- /data/{test/dummy → lib/generators/jinda/templates}/app/assets/stylesheets/application.scss +0 -0
- /data/{test/dummy → lib/generators/jinda/templates}/app/assets/stylesheets/jinda.scss +0 -0
- /data/lib/generators/jinda/templates/app/mailers/{application_mailer.rb → application_mailer.rb-org} +0 -0
- /data/{test/dummy → lib/generators/jinda/templates}/app/views/adminltes/dashboard1.haml +0 -0
- /data/{test/dummy → lib/generators/jinda/templates}/app/views/adminltes/dashboard2.haml +0 -0
- /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_flash.haml +0 -0
- /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_footer.haml +0 -0
- /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_menu.haml +0 -0
- /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_menu_mm.haml +0 -0
- /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 {
|
|
5
|
+
code { Faker::Name.unique.name }
|
|
6
|
+
email { Faker::Internet.email }
|
|
7
|
+
role { 'Admin' }
|
|
6
8
|
end
|
|
7
|
-
factory :note,
|
|
9
|
+
factory :note, class: 'Note' do
|
|
8
10
|
title { Faker::Lorem.sentence[0..29] }
|
|
9
11
|
body { Faker::Lorem.sentence[0..999] }
|
|
10
|
-
user
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
'name' => 'Kulsoft',
|
|
14
|
+
'email' => 'kulsoft.net@gmail.com',
|
|
15
|
+
'nickname' => 'kulsoft'
|
|
14
16
|
},
|
|
15
|
-
'extra' => {'raw_info' =>
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
32
|
-
|
|
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,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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
10
|
+
render
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|