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
|
@@ -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)
|