templet_rails 0.1.0 → 0.2.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 +5 -5
- data/MIT-LICENSE +20 -0
- data/README.md +334 -269
- data/Rakefile +21 -7
- data/app/assets/config/templet_rails_manifest.js +2 -0
- data/app/assets/javascripts/templet_rails/application.js +15 -0
- data/app/assets/stylesheets/templet_rails/application.css +15 -0
- data/app/controllers/templet/json_rendering_helpers.rb +12 -0
- data/app/controllers/templet/rendering_helpers.rb +53 -0
- data/app/controllers/templet/viewer_call_string.rb +144 -0
- data/app/controllers/templet/viewer_call_string_class.rb +65 -0
- data/app/controllers/templet/viewer_responders.rb +121 -0
- data/app/controllers/templet_rails/application_controller.rb +5 -0
- data/app/helpers/templet/constants.rb +54 -0
- data/app/helpers/templet/forms/bs_form.rb +73 -0
- data/app/helpers/templet/forms/bs_form_errors.rb +38 -0
- data/app/helpers/templet/forms/bs_form_field.rb +114 -0
- data/app/helpers/templet/forms/bs_form_group.rb +115 -0
- data/app/helpers/templet/layouts/html_rails.rb +36 -0
- data/app/helpers/templet/links.rb +28 -0
- data/app/helpers/templet/links/bs_btn_class.rb +61 -0
- data/app/helpers/templet/links/bs_link_set_base.rb +168 -0
- data/app/helpers/templet/links/bs_link_set_collection.rb +21 -0
- data/app/helpers/templet/links/bs_link_set_navigation.rb +62 -0
- data/app/helpers/templet/links/rest_link_procs.rb +163 -0
- data/app/helpers/templet/links/rest_link_procs_parent.rb +39 -0
- data/app/helpers/templet/links/rest_link_procs_sets.rb +30 -0
- data/app/helpers/templet/links/rest_link_text.rb +102 -0
- data/app/helpers/templet/links/rest_path.rb +90 -0
- data/app/helpers/templet/mixins.rb +9 -0
- data/app/helpers/templet/mixins/bs.rb +11 -0
- data/app/helpers/templet/mixins/bs/grid.rb +53 -0
- data/app/helpers/templet/mixins/bs/lists.rb +77 -0
- data/app/helpers/templet/mixins/field_procs.rb +140 -0
- data/app/helpers/templet/mixins/html_presenters.rb +82 -0
- data/app/helpers/templet/require_all.rb +45 -0
- data/app/helpers/templet/utils/html_search_form.rb +53 -0
- data/app/helpers/templet/utils/link_set_factory.rb +46 -0
- data/app/helpers/templet/utils/link_set_factory_wrapper.rb +53 -0
- data/app/helpers/templet/utils/list_model_parents.rb +27 -0
- data/app/helpers/templet/utils/navbar_form.rb +26 -0
- data/app/helpers/templet/utils/selected_wrapper.rb +40 -0
- data/app/helpers/templet/viewer.rb +11 -0
- data/app/helpers/templet/viewer/meta_model.rb +66 -0
- data/app/helpers/templet/viewer/meta_model_defaults.rb +56 -0
- data/app/helpers/templet/viewer/presenters.rb +44 -0
- data/app/helpers/templet/viewer/rest_actions.rb +24 -0
- data/app/helpers/templet/viewer_base.rb +111 -0
- data/app/helpers/templet/viewer_rest.rb +144 -0
- data/app/helpers/templet_helper.rb +10 -0
- data/app/helpers/templet_rails/application_helper.rb +4 -0
- data/app/jobs/templet_rails/application_job.rb +4 -0
- data/app/mailers/templet_rails/application_mailer.rb +6 -0
- data/app/models/templet_rails/application_record.rb +5 -0
- data/app/views/layouts/templet_rails/application.html.erb +16 -0
- data/config/routes.rb +2 -0
- data/lib/generators/templet/controller/controller_generator.rb +70 -68
- data/lib/generators/templet/core_install/USAGE +14 -0
- data/lib/generators/templet/core_install/core_install_generator.rb +77 -0
- data/lib/generators/templet/core_rspec/USAGE +5 -8
- data/lib/generators/templet/core_rspec/core_rspec_generator.rb +32 -47
- data/lib/generators/templet/destroy/USAGE +1 -1
- data/lib/generators/templet/destroy/destroy_generator.rb +87 -84
- data/lib/generators/templet/install/USAGE +16 -0
- data/lib/generators/templet/install/install_generator.rb +103 -0
- data/lib/generators/templet/routes/routes_generator.rb +43 -41
- data/lib/generators/templet/rspec/rspec_generator.rb +1 -0
- data/lib/generators/templet/scaffold/scaffold_generator.rb +66 -64
- data/lib/generators/templet/shared/core_helpers.rb +10 -0
- data/lib/generators/templet/shared/model_fields.rb +2 -2
- data/lib/generators/templet/templates/core/app/base_viewer.rb +1 -1
- data/lib/generators/templet/templates/core/app/{panel → layouts}/layout_base.rb +3 -3
- data/lib/generators/templet/templates/core/app/{panel → layouts}/layout_header.rb +3 -1
- data/lib/generators/templet/templates/core/app/{panel → layouts}/layout_header_sidebar.rb +2 -1
- data/lib/generators/templet/templates/core/app/{panel/nav.rb → layouts/navbar.rb} +2 -2
- data/lib/generators/templet/templates/core/app/layouts/navbar_args_option.rb +32 -0
- data/lib/generators/templet/templates/core/app/{link_sets/navbar.rb → layouts/navbar_links.rb} +2 -2
- data/lib/generators/templet/templates/core/app/{panel → layouts}/options_config.rb +3 -3
- data/lib/generators/templet/templates/core/app/layouts/panel/flash_messages.rb +35 -0
- data/lib/generators/templet/templates/core/app/layouts/panel/show_parents_option.rb +24 -0
- data/lib/generators/templet/templates/core/app/layouts/panel/sidebar_links_option.rb +26 -0
- data/lib/generators/templet/templates/core/spec/layouts/flash_messages_spec.rb +18 -0
- data/lib/generators/templet/templates/core/spec/layouts/navbar_spec.rb +19 -0
- data/lib/generators/templet/templates/core/spec/support/apis/api_helper.rb +2 -0
- data/lib/generators/templet/templates/core/spec/support/apis/shared_examples_a_json_controller.rb +1 -1
- data/lib/generators/templet/templates/core/spec/support/{viewer → shared}/partial_test_helpers.rb +0 -0
- data/lib/generators/templet/templates/core/templet/viewer_base.rb +3 -3
- data/lib/generators/templet/viewer/viewer_generator.rb +60 -58
- data/lib/tasks/templet_rails_tasks.rake +4 -0
- data/lib/templet_rails.rb +1 -1
- data/lib/templet_rails/engine.rb +5 -0
- data/lib/templet_rails/version.rb +1 -1
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/config/manifest.js +4 -0
- data/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/spec/dummy/app/assets/javascripts/cable.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy/app/channels/application_cable/channel.rb +4 -0
- data/spec/dummy/app/channels/application_cable/connection.rb +4 -0
- data/spec/dummy/app/controllers/answers_controller.rb +86 -0
- data/spec/dummy/app/controllers/application_controller.rb +2 -0
- data/spec/dummy/app/controllers/categories_controller.rb +80 -0
- data/spec/dummy/app/controllers/questions_controller.rb +86 -0
- data/spec/dummy/app/helpers/app.rb +4 -0
- data/spec/dummy/app/helpers/app/answer_viewer.rb +21 -0
- data/spec/dummy/app/helpers/app/base_viewer.rb +7 -0
- data/spec/dummy/app/helpers/app/category_viewer.rb +26 -0
- data/spec/dummy/app/helpers/app/layouts/layout_base.rb +40 -0
- data/spec/dummy/app/helpers/app/layouts/layout_header.rb +24 -0
- data/spec/dummy/app/helpers/app/layouts/layout_header_sidebar.rb +19 -0
- data/spec/dummy/app/helpers/app/layouts/navbar.rb +55 -0
- data/spec/dummy/app/helpers/app/layouts/navbar_args_option.rb +32 -0
- data/spec/dummy/app/helpers/app/layouts/navbar_links.rb +12 -0
- data/spec/dummy/app/helpers/app/layouts/options_config.rb +19 -0
- data/spec/dummy/app/helpers/app/layouts/panel/flash_messages.rb +35 -0
- data/spec/dummy/app/helpers/app/layouts/panel/show_parents_option.rb +24 -0
- data/spec/dummy/app/helpers/app/layouts/panel/sidebar_links_option.rb +26 -0
- data/spec/dummy/app/helpers/app/question_viewer.rb +26 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/jobs/application_job.rb +2 -0
- data/spec/dummy/app/mailers/application_mailer.rb +4 -0
- data/spec/dummy/app/models/answer.rb +12 -0
- data/spec/dummy/app/models/application_record.rb +3 -0
- data/spec/dummy/app/models/category.rb +11 -0
- data/spec/dummy/app/models/question.rb +15 -0
- data/spec/dummy/app/views/layouts/application.html.erb +15 -0
- data/spec/dummy/app/views/layouts/mailer.html.erb +13 -0
- data/spec/dummy/app/views/layouts/mailer.text.erb +1 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/bin/setup +36 -0
- data/spec/dummy/bin/update +31 -0
- data/spec/dummy/bin/yarn +11 -0
- data/spec/dummy/config.ru +5 -0
- data/spec/dummy/config/application.rb +30 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/cable.yml +10 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +61 -0
- data/spec/dummy/config/environments/production.rb +94 -0
- data/spec/dummy/config/environments/test.rb +46 -0
- data/spec/dummy/config/initializers/application_controller_renderer.rb +8 -0
- data/spec/dummy/config/initializers/assets.rb +14 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/content_security_policy.rb +25 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +5 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +33 -0
- data/spec/dummy/config/puma.rb +34 -0
- data/spec/dummy/config/routes.rb +9 -0
- data/spec/dummy/config/spring.rb +6 -0
- data/spec/dummy/config/storage.yml +34 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20190709192619_create_categories.rb +9 -0
- data/spec/dummy/db/migrate/20190709192656_create_questions.rb +12 -0
- data/spec/dummy/db/migrate/20190709192737_create_answers.rb +13 -0
- data/spec/dummy/db/schema.rb +42 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +64 -0
- data/spec/dummy/log/test.log +40792 -0
- data/spec/dummy/package.json +5 -0
- data/spec/dummy/public/404.html +67 -0
- data/spec/dummy/public/422.html +67 -0
- data/spec/dummy/public/500.html +66 -0
- data/{lib/generators/templet/templates/core/controllers/.keep → spec/dummy/public/apple-touch-icon-precomposed.png} +0 -0
- data/spec/dummy/public/apple-touch-icon.png +0 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/spec/apis/answers_controller_spec.rb +17 -0
- data/spec/dummy/spec/apis/categories_controller_spec.rb +13 -0
- data/spec/dummy/spec/apis/questions_controller_spec.rb +15 -0
- data/spec/dummy/spec/helpers/app/answer_viewer_spec.rb +18 -0
- data/spec/dummy/spec/helpers/app/category_viewer_spec.rb +14 -0
- data/spec/dummy/spec/helpers/app/layouts/flash_messages_spec.rb +18 -0
- data/spec/dummy/spec/helpers/app/layouts/navbar_spec.rb +19 -0
- data/spec/dummy/spec/helpers/app/question_viewer_spec.rb +16 -0
- data/spec/dummy/spec/support/apis/api_helper.rb +15 -0
- data/spec/dummy/spec/support/apis/shared_examples_a_json_controller.rb +196 -0
- data/spec/dummy/spec/support/templet/partial_test_helpers.rb +32 -0
- data/spec/dummy/spec/support/templet/shared_examples_a_viewer.rb +105 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-6/-6-48LISBeQVJvpEXNgFstDrCriEFNmvje6XhidzlV4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-D/-DLE9y_1ICajcEaHcprHYBO8vjXpHySH_56FSb0SLOs.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-Y/-YJ1ILDQvu3hOKkF0VR9K_z04e2-EVHglO0MAFS8gpQ.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-_/-_7FgdEon9WttcnvoyQAysmonCHN7FxsrcuDa5OTUJQ.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0u/0u-iWymOJvpggI1uY7Na3322xwcjNY7egB-czjV96m4.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0x/0xArd189AygdGItqWO0_5BfinFQjLZjwyVsAGWqOgKg.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2S/2SfjLWkOp2BGM0OzwsshKpnXI8rlJFOV6ZJsIszRn6k.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/3h/3hFAACevvXtDja9zz3rMK6gA1MD1I7_puWyRRkV7sLk.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4o/4oNwzIrltWrfajciBz7JHd5RT5_XVv04L6NdaBGN794.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7F/7F3o6QQqoI0bDk6-A5qMN8LCZQALddlu23KiRWBxtWk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Af/AfFBDeKpi4wSUc7rcjxfjPbEgV6GOGXTjeZhHrfDX48.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Bf/BfD6ZVgFq-kWDMMVb2EE5ZAKgsgn1VUR9oVxD0hHVMI.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Bo/Bogjbc_D5J-6_m5KEgeXt_GHc-IbUt1_FDWP4PHV0P8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DF/DF3HgsSD9LO1Bz8d3GJi_G6wBExmsnBJ6b1pvZEGE7w.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DO/DO8Gqh32jK2GrO9uIlH7qvDkelVw0VM8CTSOUj6iUEo.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/GC/GCNwk_ABiY0z51bz8iC8tqLLWKhQwxW4-JLNKv-SRe0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Gl/Gls_Zud1kxq7p08FGBfzalbaLMlLBl28bOYebh7Ljrg.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Gm/GmHHk4YNC0G2V_5gQZp0U6mKFPxGSgL7fwWI3_fajrk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Gr/GreB3WHN8MyWMDFGNyqJJcxGblgo-5XepsEHvdJSQGI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/HC/HCDOUd7-S45aJ_PjVAC_Vmjyud3i1aQv4cE3t9_Z3Dw.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Hd/HdvsElcHSt7aKjG9jocgIQJEvBjBbeSZ8HntI1pc38o.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Iv/IvR5RxSTQkxfGWSoy5S2s7wO5u5qwCJ5mNAhqNJtJDY.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/JS/JSYyQZJzLNqpmVR--ZDUW6PY7_HflyFFHDAOLenxlP4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Jx/JxJXzSistcpH4S_9CbGx_wyjVTaE77ZDDfOc4uTfvdM.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/MH/MHCZUSVJq62YPmcVVkfjp2B5uH_nDL7snLl4yqvlSJY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/MY/MY5theanttko1gCnW9vKb0Z1GkJn8Ofk149HwOt0UAM.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Mn/MnGg5XDll2jo-E_CTC1htiNc0hOY6z80_bwGCvpYTXk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Nt/NtYu5CjAvU5ZHxSOn6Q4LPukD3hBE-3vYe30d_uSBzM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Nu/NuIepb7qomZzBDAJMUROsshKo8TJxdmFR4yOe64W58w.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/R7/R7ngeIqpdwSWkbjbxxzh6B-KczkWMcxYMIkj5inxrV8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/S9/S9MhILnM64qd2M9Z92TrNMtw7VUWZxf3H367OO8rlhs.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SI/SIZUy2mtjUm_G1YIulRCovzgkCwV1eoR2NLiYcsR1Ws.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Sl/SlECThrSAExfICiFGVi-zu240BVDaUldaRs4qcj354U.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/St/St6dTA4niiCDLnnArKZV38uZNFf6MbEZ_jHGC-Upft0.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/T6/T6p-BnPmMCmpJdaqrjWmLMsBW8SNJpSW6w-Azc3XGVk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Vs/VsZPCEai1GtOT-vHjxMS8kAP9ASG5i_2O_EP76uI7Qs.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Vv/Vv6dack32HV3tIZ_6F4BF8Mrrnb7wZEG4VlEKumQ6L0.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Wp/WpV6mJwJX9dwIFJGLoJoa-gXNe1-ZHusE9SwvnWysa8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Wy/Wya0wl0Q2nXYb5-bC5Fbo0sDZfKb3415AjtSjld7fQI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/b7/b7j7TIOE1nnqvMku0QePWFrwCkaKkNpxkiWST6PAplo.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ck/ckDOh-FroVE8r1fwUNWmnRconIREuVdmkZEFkaP9KfU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eN/eNQPQP-9gB3xzxJBsG7soV6Ie0YZ3gxIS97PgYtZVT8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gb/gbUMPMF8S0OQVsFHyAjHpHVEg-3iZzTVIQZDmfq-ycE.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/if/ifyb5SlIS8vkACz_6P0uTOGijMB4C5TyFWmrMq3DYIg.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jg/jg-s5YLdnojCtHqzfDTsvcy6UHewDRl1X09qlGyvyag.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ko/koPyQus8Oqrx18bnLj-5nJrKvFf6FDDQbv2qEa7Bl7M.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lG/lGRRazgrFErFx1PkfDlca6r-0MGQR40i0tq0Wgm2FNU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lS/lStvx9Beg2l4s8L-QdTSKuc5_qQPQAZPnIcRI7JkpPE.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lZ/lZIacHrJV5bDohEHsVOXDGIDrUH2h4YvwV9g-MWmh3k.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lq/lqM4-wfprvp5FEBp1pSm88Jwx-Vb2oJab2rjLtUcIyM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/n_/n_xYqQYhwEMQknb3jFQnjlxxBE9TzMNHCdJ-bEyZFIw.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nx/nxTv3sKVUQZADJyM3dPaVmUA78MIsMLD_K279yN_GsI.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ps/psGFyjvQcs8JpIV8BDeCqQfHaLYgIgSAi86n4RrFpFs.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/r1/r1IIabhuPhgB3n8V3ZMRN0SqIsXJ8bH0ABTRzHTG1SU.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vt/vtskp0QTt72oDQNM6mYZ8pCclh2HICHeYZ1QtDvC5xo.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wi/win_v0ZNu-l7AoRx8w3ls1xcy0mUExLBVMCSr5oaJFc.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yo/yoggubxI12fIM1o5TtxUialrUN-LWOfRaV_tqc1HAC4.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zH/zHnHpZP25wEHaF3mI_M9RGH1zeCApf6mwhLB3Lku1zs.cache +3 -0
- data/spec/dummy/tmp/development_secret.txt +1 -0
- data/spec/factories/answers.rb +10 -0
- data/spec/factories/categories.rb +5 -0
- data/spec/factories/questions.rb +8 -0
- data/spec/helpers/templet/forms/bs_form_errors_spec.rb +18 -0
- data/spec/helpers/templet/forms/bs_form_spec.rb +58 -0
- data/spec/helpers/templet/layout/html_rails_spec.rb +64 -0
- data/spec/helpers/templet/links/bs_link_set_collection_spec.rb +79 -0
- data/spec/helpers/templet/links/rest_link_procs_params_spec.rb +68 -0
- data/spec/helpers/templet/links/rest_link_procs_parents_spec.rb +78 -0
- data/spec/helpers/templet/links/rest_link_procs_spec.rb +140 -0
- data/spec/models/answer_spec.rb +9 -0
- data/spec/models/category_spec.rb +9 -0
- data/spec/models/question_spec.rb +9 -0
- data/spec/rails_helper.rb +61 -0
- data/spec/spec_helper.rb +108 -0
- data/spec/support/templet/model_parent_helpers.rb +36 -0
- data/spec/support/templet/partial_test_helpers.rb +32 -0
- data/spec/support/templet/rest_link_procs_assignments.rb +43 -0
- data/spec/support/templet/rest_link_procs_helpers.rb +15 -0
- metadata +470 -38
- data/.gitignore +0 -8
- data/.travis.yml +0 -5
- data/Gemfile +0 -6
- data/LICENSE.txt +0 -21
- data/bin/console +0 -14
- data/bin/setup +0 -8
- data/lib/generators/templet/core/USAGE +0 -23
- data/lib/generators/templet/core/core_generator.rb +0 -128
- data/lib/generators/templet/templates/core/app/panel/flash_messages.rb +0 -33
- data/lib/generators/templet/templates/core/app/panel/nav_args_option.rb +0 -30
- data/lib/generators/templet/templates/core/app/panel/show_parents_option.rb +0 -22
- data/lib/generators/templet/templates/core/app/panel/sidebar_links_option.rb +0 -24
- data/templet_rails.gemspec +0 -36
@@ -0,0 +1,32 @@
|
|
1
|
+
|
2
|
+
require "nokogiri"
|
3
|
+
|
4
|
+
module PartialTestHelpers
|
5
|
+
def renderer
|
6
|
+
Templet::Renderer.new helper
|
7
|
+
end
|
8
|
+
|
9
|
+
def partial_for(klass, *args)
|
10
|
+
klass.new(renderer, *args)
|
11
|
+
end
|
12
|
+
def partial(*args, **options)
|
13
|
+
partial_for(described_class, *args, **options)
|
14
|
+
end
|
15
|
+
|
16
|
+
def render_partial(*args, &block)
|
17
|
+
partial.(*args, &block)
|
18
|
+
end
|
19
|
+
|
20
|
+
def parse(html)
|
21
|
+
Nokogiri::HTML(html)
|
22
|
+
end
|
23
|
+
|
24
|
+
def parse_html(selector, single_return: true,
|
25
|
+
render_args: [],
|
26
|
+
html: render_partial(*render_args))
|
27
|
+
method = single_return ? :at_css : :css
|
28
|
+
|
29
|
+
parse(html).send(method, selector)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
@@ -0,0 +1,105 @@
|
|
1
|
+
|
2
|
+
#require_relative "partial_test_helpers"
|
3
|
+
|
4
|
+
shared_examples 'a viewer' do |actions|
|
5
|
+
include PartialTestHelpers
|
6
|
+
|
7
|
+
let(:scope) { nil }
|
8
|
+
|
9
|
+
let(:controller_name) { nil }
|
10
|
+
|
11
|
+
let(:model) { create model_name, field_name => field_value }
|
12
|
+
|
13
|
+
let(:parent) { model.send parent_name if model.respond_to?(parent_name || '') }
|
14
|
+
|
15
|
+
let(:new_model) { build model_name, field_name => field_value }
|
16
|
+
|
17
|
+
let(:field_values) { %w(First Second Third) }
|
18
|
+
|
19
|
+
let :models do
|
20
|
+
field_values.map {|value| create model_name, field_name => value }
|
21
|
+
end
|
22
|
+
|
23
|
+
let(:parent_name) { }
|
24
|
+
|
25
|
+
let(:grand_parent_name) { }
|
26
|
+
|
27
|
+
let(:field_name) { :name }
|
28
|
+
|
29
|
+
let(:field_value) { "#{model_name} #{field_name}" }
|
30
|
+
|
31
|
+
let(:input_field_tag) { "input" }
|
32
|
+
|
33
|
+
let(:index_selector) { 'tbody tr td:first' }
|
34
|
+
|
35
|
+
let(:field_selector) { "#{input_field_tag}[id=#{model_name}_#{field_name}]" }
|
36
|
+
|
37
|
+
let(:list_selector) { 'dl dd:first' }
|
38
|
+
|
39
|
+
def viewer(model, parent=nil, **opts)
|
40
|
+
if scope or controller_name
|
41
|
+
opts[:controller] = (scope ? "#{scope}/" : '') +
|
42
|
+
(controller_name&.to_s || model_name.to_s.pluralize)
|
43
|
+
end
|
44
|
+
|
45
|
+
opts[:grand_parent] = grand_parent_name if grand_parent_name
|
46
|
+
|
47
|
+
described_class.new helper, model, parent, **opts
|
48
|
+
end
|
49
|
+
|
50
|
+
if not actions or actions.include? :index
|
51
|
+
describe '#index' do
|
52
|
+
it "shows model queries" do
|
53
|
+
html = viewer(model_name, parent, models: models).index
|
54
|
+
|
55
|
+
queries = parse_html(index_selector, html: html, single_return: false)
|
56
|
+
|
57
|
+
expect(queries.map(&:text)).to eq field_values
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
if not actions or actions.include? :show
|
63
|
+
describe '#show' do
|
64
|
+
it 'displays field value' do
|
65
|
+
html = viewer(model, parent).show
|
66
|
+
|
67
|
+
value = parse_html(list_selector, html: html).text
|
68
|
+
|
69
|
+
expect(value).to eq field_value
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
if not actions or actions.include? :new
|
75
|
+
describe '#new' do
|
76
|
+
it 'prompts for field value' do
|
77
|
+
helper.instance_variable_set("@#{model_name}", new_model)
|
78
|
+
|
79
|
+
html = viewer(new_model, parent).new
|
80
|
+
|
81
|
+
selected = parse_html(field_selector, html: html)
|
82
|
+
|
83
|
+
value = selected['value'] || selected.text
|
84
|
+
|
85
|
+
expect(value.strip).to eq field_value
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
if not actions or actions.include? :edit
|
91
|
+
describe '#edit' do
|
92
|
+
it 'prompts for field value' do
|
93
|
+
helper.instance_variable_set("@#{model_name}", model)
|
94
|
+
|
95
|
+
html = viewer(model, parent).edit
|
96
|
+
|
97
|
+
selected = parse_html(field_selector, html: html)
|
98
|
+
|
99
|
+
value = selected['value'] || selected.text
|
100
|
+
|
101
|
+
expect(value.strip).to eq field_value
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-6/-6-48LISBeQVJvpEXNgFstDrCriEFNmvje6XhidzlV4.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"%A��G�{h t�l�m�V���NE���f���
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-D/-DLE9y_1ICajcEaHcprHYBO8vjXpHySH_56FSb0SLOs.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-Y/-YJ1ILDQvu3hOKkF0VR9K_z04e2-EVHglO0MAFS8gpQ.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"%b�t^4y9�,N!�+��j\�U09>��E�ܖ�4
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-_/-_7FgdEon9WttcnvoyQAysmonCHN7FxsrcuDa5OTUJQ.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
I"�/home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actionview-5.2.3/lib/assets/compiled/rails-ujs.js?type=application/javascript&pipeline=self&id=45e7ab1941ee8f1f2d6661a63f7082d533541aafb0d46a7eb17fbab4227beea8:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0u/0u-iWymOJvpggI1uY7Na3322xwcjNY7egB-czjV96m4.cache
ADDED
@@ -0,0 +1,2 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash}-I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"mfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/javascripts/templet_rails/application.js;TTI"$file-digest://app/assets/config;TTI".file-digest://app/assets/config/rails-ujs;TTI"$file-digest://app/assets/images;TTI".file-digest://app/assets/images/rails-ujs;TTI")file-digest://app/assets/javascripts;TTI"3file-digest://app/assets/javascripts/rails-ujs;TTI")file-digest://app/assets/stylesheets;TTI"3file-digest://app/assets/stylesheets/rails-ujs;TTI"Kfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/config;TTI"Ufile-digest:///home/stephen/apps/quora/templet_rails/app/assets/config/rails-ujs;TTI"Kfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/images;TTI"Ufile-digest:///home/stephen/apps/quora/templet_rails/app/assets/images/rails-ujs;TTI"Pfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/javascripts;TTI"Zfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/javascripts/rails-ujs;TTI"Pfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/stylesheets;TTI"Zfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/stylesheets/rails-ujs;TTI"hfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actioncable-5.2.3/lib/assets/compiled;TTI"rfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actioncable-5.2.3/lib/assets/compiled/rails-ujs;TTI"mfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/activestorage-5.2.3/app/assets/javascripts;TTI"wfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/activestorage-5.2.3/app/assets/javascripts/rails-ujs;TTI"gfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actionview-5.2.3/lib/assets/compiled;TTI"qfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actionview-5.2.3/lib/assets/compiled/rails-ujs;TTI"tfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actionview-5.2.3/lib/assets/compiled/rails-ujs.js;TTI"2file-digest://app/assets/config/activestorage;TTI"2file-digest://app/assets/images/activestorage;TTI"7file-digest://app/assets/javascripts/activestorage;TTI"7file-digest://app/assets/stylesheets/activestorage;TTI"Yfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/config/activestorage;TTI"Yfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/images/activestorage;TTI"^file-digest:///home/stephen/apps/quora/templet_rails/app/assets/javascripts/activestorage;TTI"^file-digest:///home/stephen/apps/quora/templet_rails/app/assets/stylesheets/activestorage;TTI"vfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actioncable-5.2.3/lib/assets/compiled/activestorage;TTI"{file-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/activestorage-5.2.3/app/assets/javascripts/activestorage;TTI"~file-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/activestorage-5.2.3/app/assets/javascripts/activestorage.js;TTI"^file-digest:///home/stephen/apps/quora/templet_rails/app/assets/javascripts/templet_rails;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0x/0xArd189AygdGItqWO0_5BfinFQjLZjwyVsAGWqOgKg.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"%��Rm�v�S3.��O�L���ڹc�ƕq�=_j�
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2S/2SfjLWkOp2BGM0OzwsshKpnXI8rlJFOV6ZJsIszRn6k.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"%�bhM�g�X*������C�'��+�qa�u
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/3h/3hFAACevvXtDja9zz3rMK6gA1MD1I7_puWyRRkV7sLk.cache
ADDED
@@ -0,0 +1,2 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash}.I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Lprocessors:type=application/javascript&file_type=application/javascript;TTI"mfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/javascripts/templet_rails/application.js;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"tfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actionview-5.2.3/lib/assets/compiled/rails-ujs.js;TTI"~file-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/activestorage-5.2.3/app/assets/javascripts/activestorage.js;TTI"$file-digest://app/assets/config;TTI".file-digest://app/assets/config/rails-ujs;TTI"$file-digest://app/assets/images;TTI".file-digest://app/assets/images/rails-ujs;TTI")file-digest://app/assets/javascripts;TTI"3file-digest://app/assets/javascripts/rails-ujs;TTI")file-digest://app/assets/stylesheets;TTI"3file-digest://app/assets/stylesheets/rails-ujs;TTI"Kfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/config;TTI"Ufile-digest:///home/stephen/apps/quora/templet_rails/app/assets/config/rails-ujs;TTI"Kfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/images;TTI"Ufile-digest:///home/stephen/apps/quora/templet_rails/app/assets/images/rails-ujs;TTI"Pfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/javascripts;TTI"Zfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/javascripts/rails-ujs;TTI"Pfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/stylesheets;TTI"Zfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/stylesheets/rails-ujs;TTI"hfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actioncable-5.2.3/lib/assets/compiled;TTI"rfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actioncable-5.2.3/lib/assets/compiled/rails-ujs;TTI"mfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/activestorage-5.2.3/app/assets/javascripts;TTI"wfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/activestorage-5.2.3/app/assets/javascripts/rails-ujs;TTI"gfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actionview-5.2.3/lib/assets/compiled;TTI"qfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actionview-5.2.3/lib/assets/compiled/rails-ujs;TTI"2file-digest://app/assets/config/activestorage;TTI"2file-digest://app/assets/images/activestorage;TTI"7file-digest://app/assets/javascripts/activestorage;TTI"7file-digest://app/assets/stylesheets/activestorage;TTI"Yfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/config/activestorage;TTI"Yfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/images/activestorage;TTI"^file-digest:///home/stephen/apps/quora/templet_rails/app/assets/javascripts/activestorage;TTI"^file-digest:///home/stephen/apps/quora/templet_rails/app/assets/stylesheets/activestorage;TTI"vfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actioncable-5.2.3/lib/assets/compiled/activestorage;TTI"{file-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/activestorage-5.2.3/app/assets/javascripts/activestorage;TTI"^file-digest:///home/stephen/apps/quora/templet_rails/app/assets/javascripts/templet_rails;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4o/4oNwzIrltWrfajciBz7JHd5RT5_XVv04L6NdaBGN794.cache
ADDED
@@ -0,0 +1,3 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash}
|
3
|
+
I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"tfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actionview-5.2.3/lib/assets/compiled/rails-ujs.js;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7F/7F3o6QQqoI0bDk6-A5qMN8LCZQALddlu23KiRWBxtWk.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Af/AfFBDeKpi4wSUc7rcjxfjPbEgV6GOGXTjeZhHrfDX48.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Bf/BfD6ZVgFq-kWDMMVb2EE5ZAKgsgn1VUR9oVxD0hHVMI.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Bo/Bogjbc_D5J-6_m5KEgeXt_GHc-IbUt1_FDWP4PHV0P8.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"%��B�����șo�$'�A�d��L���xR�U
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DF/DF3HgsSD9LO1Bz8d3GJi_G6wBExmsnBJ6b1pvZEGE7w.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"%��B�����șo�$'�A�d��L���xR�U
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DO/DO8Gqh32jK2GrO9uIlH7qvDkelVw0VM8CTSOUj6iUEo.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
I"�/home/stephen/apps/quora/templet_rails/app/assets/javascripts/templet_rails/application.js?type=application/javascript&pipeline=self&id=bbbf6781aabb32b031a22de9a65e2256765b9cde12aa708d25d9e8a3c9e51cc3:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/GC/GCNwk_ABiY0z51bz8iC8tqLLWKhQwxW4-JLNKv-SRe0.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=b7103b8aa259ca941bdf6f880b19413c194721f1d2a3ff2a82cb7600d33b5220:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Gl/Gls_Zud1kxq7p08FGBfzalbaLMlLBl28bOYebh7Ljrg.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Gm/GmHHk4YNC0G2V_5gQZp0U6mKFPxGSgL7fwWI3_fajrk.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"%�<������X���̀#+�����,�(o���
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Gr/GreB3WHN8MyWMDFGNyqJJcxGblgo-5XepsEHvdJSQGI.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"%i����O����H�3
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/HC/HCDOUd7-S45aJ_PjVAC_Vmjyud3i1aQv4cE3t9_Z3Dw.cache
ADDED
@@ -0,0 +1,2 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"2file-digest://app/assets/javascripts/cable.js;TTI"$file-digest://app/assets/config;TTI"1file-digest://app/assets/config/action_cable;TTI"$file-digest://app/assets/images;TTI"1file-digest://app/assets/images/action_cable;TTI")file-digest://app/assets/javascripts;TTI"6file-digest://app/assets/javascripts/action_cable;TTI")file-digest://app/assets/stylesheets;TTI"6file-digest://app/assets/stylesheets/action_cable;TTI"Kfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/config;TTI"Xfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/config/action_cable;TTI"Kfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/images;TTI"Xfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/images/action_cable;TTI"Pfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/javascripts;TTI"]file-digest:///home/stephen/apps/quora/templet_rails/app/assets/javascripts/action_cable;TTI"Pfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/stylesheets;TTI"]file-digest:///home/stephen/apps/quora/templet_rails/app/assets/stylesheets/action_cable;TTI"hfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actioncable-5.2.3/lib/assets/compiled;TTI"ufile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actioncable-5.2.3/lib/assets/compiled/action_cable;TTI"xfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actioncable-5.2.3/lib/assets/compiled/action_cable.js;TTI"2file-digest://app/assets/javascripts/channels;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Hd/HdvsElcHSt7aKjG9jocgIQJEvBjBbeSZ8HntI1pc38o.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"%�j�i�-'��O+���m��T���2Q
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Iv/IvR5RxSTQkxfGWSoy5S2s7wO5u5qwCJ5mNAhqNJtJDY.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/JS/JSYyQZJzLNqpmVR--ZDUW6PY7_HflyFFHDAOLenxlP4.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"%�bhM�g�X*������C�'��+�qa�u
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Jx/JxJXzSistcpH4S_9CbGx_wyjVTaE77ZDDfOc4uTfvdM.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/MH/MHCZUSVJq62YPmcVVkfjp2B5uH_nDL7snLl4yqvlSJY.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"%�bhM�g�X*������C�'��+�qa�u
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/MY/MY5theanttko1gCnW9vKb0Z1GkJn8Ofk149HwOt0UAM.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Mn/MnGg5XDll2jo-E_CTC1htiNc0hOY6z80_bwGCvpYTXk.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"%�j�i�-'��O+���m��T���2Q
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Nt/NtYu5CjAvU5ZHxSOn6Q4LPukD3hBE-3vYe30d_uSBzM.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
I"�/home/stephen/apps/quora/templet_rails/app/assets/stylesheets/templet_rails/application.css?type=text/css&pipeline=self&id=897ad744282d7228ba776a7cf0da4005f0722404eada764b551a7ab691173aff:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Nu/NuIepb7qomZzBDAJMUROsshKo8TJxdmFR4yOe64W58w.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"%�d�-�K���`���8Y��3�/Y����a~K
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/R7/R7ngeIqpdwSWkbjbxxzh6B-KczkWMcxYMIkj5inxrV8.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"%��Rm�v�S3.��O�L���ڹc�ƕq�=_j�
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/S9/S9MhILnM64qd2M9Z92TrNMtw7VUWZxf3H367OO8rlhs.cache
ADDED
@@ -0,0 +1,2 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"0processors:type=text/css&file_type=text/css;TTI"nfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/stylesheets/templet_rails/application.css;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"^file-digest:///home/stephen/apps/quora/templet_rails/app/assets/stylesheets/templet_rails;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SI/SIZUy2mtjUm_G1YIulRCovzgkCwV1eoR2NLiYcsR1Ws.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Sl/SlECThrSAExfICiFGVi-zu240BVDaUldaRs4qcj354U.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/St/St6dTA4niiCDLnnArKZV38uZNFf6MbEZ_jHGC-Upft0.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/T6/T6p-BnPmMCmpJdaqrjWmLMsBW8SNJpSW6w-Azc3XGVk.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"%�Rst;XS���VN<1� ̠4%�$�1��N|�
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Vs/VsZPCEai1GtOT-vHjxMS8kAP9ASG5i_2O_EP76uI7Qs.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Vv/Vv6dack32HV3tIZ_6F4BF8Mrrnb7wZEG4VlEKumQ6L0.cache
ADDED
@@ -0,0 +1,2 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"nfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/stylesheets/templet_rails/application.css;TTI"^file-digest:///home/stephen/apps/quora/templet_rails/app/assets/stylesheets/templet_rails;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Wp/WpV6mJwJX9dwIFJGLoJoa-gXNe1-ZHusE9SwvnWysa8.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Wy/Wya0wl0Q2nXYb5-bC5Fbo0sDZfKb3415AjtSjld7fQI.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
I"�/home/stephen/apps/quora/templet_rails/app/assets/javascripts/templet_rails/application.js?type=application/javascript&id=f5dd119f55eb25635ab4456968e9bb9960c13585033575d1ff57ba9bca7fca47:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/b7/b7j7TIOE1nnqvMku0QePWFrwCkaKkNpxkiWST6PAplo.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
I"�/home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actioncable-5.2.3/lib/assets/compiled/action_cable.js?type=application/javascript&pipeline=self&id=e59553ab5218de42ab0a77b11e4b9574de2b048fd4447e596462767f60e6636e:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ck/ckDOh-FroVE8r1fwUNWmnRconIREuVdmkZEFkaP9KfU.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
I"}app/assets/stylesheets/application.css?type=text/css&id=a996612a8efc47b00ce82f65118bde75ea6e00dac3bc7ccfb9d735ca3f626ed8:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eN/eNQPQP-9gB3xzxJBsG7soV6Ie0YZ3gxIS97PgYtZVT8.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gb/gbUMPMF8S0OQVsFHyAjHpHVEg-3iZzTVIQZDmfq-ycE.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
I"�app/assets/javascripts/application.js?type=application/javascript&id=57512993a5ca719c710b1bbd374e12bc4d979bacf4f69d6ce565ad54fc32cfe8:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jg/jg-s5YLdnojCtHqzfDTsvcy6UHewDRl1X09qlGyvyag.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
I"�/home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/activestorage-5.2.3/app/assets/javascripts/activestorage.js?type=application/javascript&pipeline=self&id=6794a72122196ade6161f50abae78ce6af0b7ce8c036e9296179fd42dd0bfbca:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ko/koPyQus8Oqrx18bnLj-5nJrKvFf6FDDQbv2qEa7Bl7M.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lG/lGRRazgrFErFx1PkfDlca6r-0MGQR40i0tq0Wgm2FNU.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
I"�/home/stephen/apps/quora/templet_rails/app/assets/stylesheets/templet_rails/application.css?type=text/css&id=45b9e1b5d543a045b79584a2e14b3f04c69df6d03caaf94b920237575f1cd7a7:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lS/lStvx9Beg2l4s8L-QdTSKuc5_qQPQAZPnIcRI7JkpPE.cache
ADDED
@@ -0,0 +1,2 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash}.I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"8file-digest://app/assets/javascripts/application.js;TTI"$file-digest://app/assets/config;TTI".file-digest://app/assets/config/rails-ujs;TTI"$file-digest://app/assets/images;TTI".file-digest://app/assets/images/rails-ujs;TTI")file-digest://app/assets/javascripts;TTI"3file-digest://app/assets/javascripts/rails-ujs;TTI")file-digest://app/assets/stylesheets;TTI"3file-digest://app/assets/stylesheets/rails-ujs;TTI"Kfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/config;TTI"Ufile-digest:///home/stephen/apps/quora/templet_rails/app/assets/config/rails-ujs;TTI"Kfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/images;TTI"Ufile-digest:///home/stephen/apps/quora/templet_rails/app/assets/images/rails-ujs;TTI"Pfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/javascripts;TTI"Zfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/javascripts/rails-ujs;TTI"Pfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/stylesheets;TTI"Zfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/stylesheets/rails-ujs;TTI"hfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actioncable-5.2.3/lib/assets/compiled;TTI"rfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actioncable-5.2.3/lib/assets/compiled/rails-ujs;TTI"mfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/activestorage-5.2.3/app/assets/javascripts;TTI"wfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/activestorage-5.2.3/app/assets/javascripts/rails-ujs;TTI"gfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actionview-5.2.3/lib/assets/compiled;TTI"qfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actionview-5.2.3/lib/assets/compiled/rails-ujs;TTI"tfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actionview-5.2.3/lib/assets/compiled/rails-ujs.js;TTI"2file-digest://app/assets/config/activestorage;TTI"2file-digest://app/assets/images/activestorage;TTI"7file-digest://app/assets/javascripts/activestorage;TTI"7file-digest://app/assets/stylesheets/activestorage;TTI"Yfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/config/activestorage;TTI"Yfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/images/activestorage;TTI"^file-digest:///home/stephen/apps/quora/templet_rails/app/assets/javascripts/activestorage;TTI"^file-digest:///home/stephen/apps/quora/templet_rails/app/assets/stylesheets/activestorage;TTI"vfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actioncable-5.2.3/lib/assets/compiled/activestorage;TTI"{file-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/activestorage-5.2.3/app/assets/javascripts/activestorage;TTI"~file-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/activestorage-5.2.3/app/assets/javascripts/activestorage.js;TTI"2file-digest://app/assets/javascripts/channels;TTI"2file-digest://app/assets/javascripts/cable.js;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lZ/lZIacHrJV5bDohEHsVOXDGIDrUH2h4YvwV9g-MWmh3k.cache
ADDED
@@ -0,0 +1,3 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash}
|
3
|
+
I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"xfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actioncable-5.2.3/lib/assets/compiled/action_cable.js;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lq/lqM4-wfprvp5FEBp1pSm88Jwx-Vb2oJab2rjLtUcIyM.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"%�<������X���̀#+�����,�(o���
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nx/nxTv3sKVUQZADJyM3dPaVmUA78MIsMLD_K279yN_GsI.cache
ADDED
@@ -0,0 +1,2 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"0processors:type=text/css&file_type=text/css;TTI"9file-digest://app/assets/stylesheets/application.css;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI")file-digest://app/assets/stylesheets;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ps/psGFyjvQcs8JpIV8BDeCqQfHaLYgIgSAi86n4RrFpFs.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
I"�app/assets/javascripts/cable.js?type=application/javascript&pipeline=self&id=87d4ee4b9abca522995c471216dfdf910cb86670141e371aa209cab1a2289b84:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vt/vtskp0QTt72oDQNM6mYZ8pCclh2HICHeYZ1QtDvC5xo.cache
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
I"�app/assets/stylesheets/application.css?type=text/css&pipeline=self&id=719872afc1023d7b04ecfac54aa4edf77f8e8d4fb1f45cb409eb848cd918fae7:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wi/win_v0ZNu-l7AoRx8w3ls1xcy0mUExLBVMCSr5oaJFc.cache
ADDED
@@ -0,0 +1,2 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash}9I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Lprocessors:type=application/javascript&file_type=application/javascript;TTI"8file-digest://app/assets/javascripts/application.js;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"tfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actionview-5.2.3/lib/assets/compiled/rails-ujs.js;TTI"~file-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/activestorage-5.2.3/app/assets/javascripts/activestorage.js;TTI"xfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actioncable-5.2.3/lib/assets/compiled/action_cable.js;TTI"2file-digest://app/assets/javascripts/cable.js;TTI"$file-digest://app/assets/config;TTI"1file-digest://app/assets/config/action_cable;TTI"$file-digest://app/assets/images;TTI"1file-digest://app/assets/images/action_cable;TTI")file-digest://app/assets/javascripts;TTI"6file-digest://app/assets/javascripts/action_cable;TTI")file-digest://app/assets/stylesheets;TTI"6file-digest://app/assets/stylesheets/action_cable;TTI"Kfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/config;TTI"Xfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/config/action_cable;TTI"Kfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/images;TTI"Xfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/images/action_cable;TTI"Pfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/javascripts;TTI"]file-digest:///home/stephen/apps/quora/templet_rails/app/assets/javascripts/action_cable;TTI"Pfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/stylesheets;TTI"]file-digest:///home/stephen/apps/quora/templet_rails/app/assets/stylesheets/action_cable;TTI"hfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actioncable-5.2.3/lib/assets/compiled;TTI"ufile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actioncable-5.2.3/lib/assets/compiled/action_cable;TTI"2file-digest://app/assets/javascripts/channels;TTI".file-digest://app/assets/config/rails-ujs;TTI".file-digest://app/assets/images/rails-ujs;TTI"3file-digest://app/assets/javascripts/rails-ujs;TTI"3file-digest://app/assets/stylesheets/rails-ujs;TTI"Ufile-digest:///home/stephen/apps/quora/templet_rails/app/assets/config/rails-ujs;TTI"Ufile-digest:///home/stephen/apps/quora/templet_rails/app/assets/images/rails-ujs;TTI"Zfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/javascripts/rails-ujs;TTI"Zfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/stylesheets/rails-ujs;TTI"rfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actioncable-5.2.3/lib/assets/compiled/rails-ujs;TTI"mfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/activestorage-5.2.3/app/assets/javascripts;TTI"wfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/activestorage-5.2.3/app/assets/javascripts/rails-ujs;TTI"gfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actionview-5.2.3/lib/assets/compiled;TTI"qfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actionview-5.2.3/lib/assets/compiled/rails-ujs;TTI"2file-digest://app/assets/config/activestorage;TTI"2file-digest://app/assets/images/activestorage;TTI"7file-digest://app/assets/javascripts/activestorage;TTI"7file-digest://app/assets/stylesheets/activestorage;TTI"Yfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/config/activestorage;TTI"Yfile-digest:///home/stephen/apps/quora/templet_rails/app/assets/images/activestorage;TTI"^file-digest:///home/stephen/apps/quora/templet_rails/app/assets/javascripts/activestorage;TTI"^file-digest:///home/stephen/apps/quora/templet_rails/app/assets/stylesheets/activestorage;TTI"vfile-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/actioncable-5.2.3/lib/assets/compiled/activestorage;TTI"{file-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/activestorage-5.2.3/app/assets/javascripts/activestorage;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yo/yoggubxI12fIM1o5TtxUialrUN-LWOfRaV_tqc1HAC4.cache
ADDED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zH/zHnHpZP25wEHaF3mI_M9RGH1zeCApf6mwhLB3Lku1zs.cache
ADDED
@@ -0,0 +1,3 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash}
|
3
|
+
I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"~file-digest:///home/stephen/.rvm/gems/ruby-2.6.0@templet/gems/activestorage-5.2.3/app/assets/javascripts/activestorage.js;TTF
|
@@ -0,0 +1 @@
|
|
1
|
+
2f4ac0d62a3045a4c36b5625c326f23c4f7c03805c8739e7d138c74c7d125344ac882e81924b738dca4acc92efe43f945c21d6173af178280124074e1003216b
|
@@ -0,0 +1,18 @@
|
|
1
|
+
|
2
|
+
require "rails_helper"
|
3
|
+
|
4
|
+
require 'templet/forms/bs_form_errors'
|
5
|
+
|
6
|
+
RSpec.describe Templet::Forms::BsFormErrors, type: :helper do
|
7
|
+
include PartialTestHelpers
|
8
|
+
|
9
|
+
let(:model) { build(:category, name: '').tap {|model| model.valid? } }
|
10
|
+
|
11
|
+
it "shows error message" do
|
12
|
+
selector = 'div[id=error_expl] ul li:first'
|
13
|
+
|
14
|
+
message = parse_html(selector, render_args: [model]).text
|
15
|
+
|
16
|
+
expect(message).to match %r(Name.+blank)
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
|
2
|
+
require "rails_helper"
|
3
|
+
|
4
|
+
require 'templet/forms/bs_form'
|
5
|
+
|
6
|
+
RSpec.describe Templet::Forms::BsForm, type: :helper do
|
7
|
+
include PartialTestHelpers
|
8
|
+
|
9
|
+
include ModelParentHelpers
|
10
|
+
|
11
|
+
def rest_path(model, parent=nil, **options)
|
12
|
+
Templet::Links::RestPath.new model, parent, **options.merge(scope: scope)
|
13
|
+
end
|
14
|
+
|
15
|
+
def parse_form_html(selector, model)
|
16
|
+
path = rest_path(model, parent)
|
17
|
+
|
18
|
+
html = render_partial(url: path) {}
|
19
|
+
|
20
|
+
parse_html(selector, html: html)
|
21
|
+
end
|
22
|
+
|
23
|
+
def expect_action(url_matcher, model=model())
|
24
|
+
selector = 'form[role=form]'
|
25
|
+
|
26
|
+
action = parse_form_html(selector, model)['action']
|
27
|
+
|
28
|
+
expect(action).to match url_matcher
|
29
|
+
end
|
30
|
+
|
31
|
+
def expect_method(http_method, model=model())
|
32
|
+
selector = 'input[name=_method]'
|
33
|
+
|
34
|
+
method_value = parse_form_html(selector, model)['value']
|
35
|
+
|
36
|
+
expect(method_value).to eq http_method
|
37
|
+
end
|
38
|
+
|
39
|
+
describe 'form action' do
|
40
|
+
it "has new model url" do
|
41
|
+
expect_action path_re, new_model
|
42
|
+
end
|
43
|
+
|
44
|
+
it "has persisted model url" do
|
45
|
+
expect_action path_re(suffix: '/\d+')
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe 'form method' do
|
50
|
+
it "is POST for new model" do
|
51
|
+
expect_method 'post', new_model
|
52
|
+
end
|
53
|
+
|
54
|
+
it "is PATCH for persisted model" do
|
55
|
+
expect_method 'patch'
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|