cucumber-rails 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (189) hide show
  1. checksums.yaml +4 -4
  2. data/Appraisals +9 -18
  3. data/CHANGELOG.md +14 -4
  4. data/CONTRIBUTING.md +14 -2
  5. data/LICENSE +1 -1
  6. data/README.md +2 -12
  7. data/Rakefile +4 -4
  8. data/bin/install_geckodriver.sh +1 -1
  9. data/cucumber-rails.gemspec +13 -11
  10. data/dev_tasks/yard.rake +1 -1
  11. data/dev_tasks/yard/default/layout/html/setup.rb +1 -1
  12. data/features/capybara_javascript_drivers.feature +56 -6
  13. data/features/database_cleaner.feature +88 -1
  14. data/features/step_definitions/cucumber_rails_steps.rb +11 -0
  15. data/features/support/cucumber_rails_helper.rb +1 -0
  16. data/features/support/env.rb +1 -1
  17. data/gemfiles/rails_5_0.gemfile +3 -3
  18. data/gemfiles/rails_5_1.gemfile +3 -3
  19. data/gemfiles/rails_5_2.gemfile +2 -3
  20. data/gemfiles/rails_6_0.gemfile +1 -2
  21. data/lib/cucumber/rails.rb +7 -3
  22. data/lib/cucumber/rails/database.rb +6 -60
  23. data/lib/cucumber/rails/database/deletion_strategy.rb +11 -0
  24. data/lib/cucumber/rails/database/shared_connection_strategy.rb +25 -0
  25. data/lib/cucumber/rails/database/strategy.rb +31 -0
  26. data/lib/cucumber/rails/database/truncation_strategy.rb +11 -0
  27. data/lib/cucumber/rails/hooks/active_record.rb +16 -14
  28. data/lib/cucumber/rails/hooks/database_cleaner.rb +9 -3
  29. data/lib/cucumber/rails/hooks/mail.rb +4 -2
  30. data/spec/cucumber/rails/database_spec.rb +4 -0
  31. data/spec/examples.txt +19 -0
  32. data/tmp/aruba/test_app/Gemfile +62 -0
  33. data/tmp/aruba/test_app/Gemfile.lock +249 -0
  34. data/tmp/aruba/test_app/README.md +24 -0
  35. data/tmp/aruba/test_app/Rakefile +6 -0
  36. data/tmp/aruba/test_app/app/assets/config/manifest.js +3 -0
  37. data/tmp/aruba/test_app/app/assets/javascripts/application.js +16 -0
  38. data/tmp/aruba/test_app/app/assets/javascripts/appointments.coffee +3 -0
  39. data/tmp/aruba/test_app/app/assets/javascripts/cable.js +13 -0
  40. data/tmp/aruba/test_app/app/assets/stylesheets/application.css +15 -0
  41. data/tmp/aruba/test_app/app/assets/stylesheets/appointments.scss +3 -0
  42. data/tmp/aruba/test_app/app/assets/stylesheets/scaffolds.scss +84 -0
  43. data/tmp/aruba/test_app/app/channels/application_cable/channel.rb +4 -0
  44. data/tmp/aruba/test_app/app/channels/application_cable/connection.rb +4 -0
  45. data/tmp/aruba/test_app/app/controllers/application_controller.rb +2 -0
  46. data/tmp/aruba/test_app/app/controllers/appointments_controller.rb +74 -0
  47. data/tmp/aruba/test_app/app/helpers/application_helper.rb +2 -0
  48. data/tmp/aruba/test_app/app/helpers/appointments_helper.rb +2 -0
  49. data/tmp/aruba/test_app/app/jobs/application_job.rb +2 -0
  50. data/tmp/aruba/test_app/app/mailers/application_mailer.rb +4 -0
  51. data/tmp/aruba/test_app/app/models/application_record.rb +3 -0
  52. data/tmp/aruba/test_app/app/models/appointment.rb +2 -0
  53. data/tmp/aruba/test_app/app/views/appointments/_appointment.json.jbuilder +2 -0
  54. data/tmp/aruba/test_app/app/views/appointments/_form.html.erb +27 -0
  55. data/tmp/aruba/test_app/app/views/appointments/edit.html.erb +6 -0
  56. data/tmp/aruba/test_app/app/views/appointments/index.html.erb +29 -0
  57. data/tmp/aruba/test_app/app/views/appointments/index.json.jbuilder +1 -0
  58. data/tmp/aruba/test_app/app/views/appointments/new.html.erb +5 -0
  59. data/tmp/aruba/test_app/app/views/appointments/show.html.erb +14 -0
  60. data/tmp/aruba/test_app/app/views/appointments/show.json.jbuilder +1 -0
  61. data/tmp/aruba/test_app/app/views/layouts/application.html.erb +15 -0
  62. data/tmp/aruba/test_app/app/views/layouts/mailer.html.erb +13 -0
  63. data/tmp/aruba/test_app/app/views/layouts/mailer.text.erb +1 -0
  64. data/tmp/aruba/test_app/bin/bundle +3 -0
  65. data/tmp/aruba/test_app/bin/rails +4 -0
  66. data/tmp/aruba/test_app/bin/rake +4 -0
  67. data/tmp/aruba/test_app/bin/setup +36 -0
  68. data/tmp/aruba/test_app/bin/update +31 -0
  69. data/tmp/aruba/test_app/bin/yarn +11 -0
  70. data/tmp/aruba/test_app/config.ru +5 -0
  71. data/tmp/aruba/test_app/config/application.rb +19 -0
  72. data/tmp/aruba/test_app/config/boot.rb +3 -0
  73. data/tmp/aruba/test_app/config/cable.yml +10 -0
  74. data/tmp/aruba/test_app/config/credentials.yml.enc +1 -0
  75. data/tmp/aruba/test_app/config/cucumber.yml +9 -0
  76. data/tmp/aruba/test_app/config/database.yml +25 -0
  77. data/tmp/aruba/test_app/config/environment.rb +5 -0
  78. data/tmp/aruba/test_app/config/environments/development.rb +61 -0
  79. data/tmp/aruba/test_app/config/environments/production.rb +94 -0
  80. data/tmp/aruba/test_app/config/environments/test.rb +46 -0
  81. data/tmp/aruba/test_app/config/initializers/application_controller_renderer.rb +8 -0
  82. data/tmp/aruba/test_app/config/initializers/assets.rb +14 -0
  83. data/tmp/aruba/test_app/config/initializers/backtrace_silencers.rb +7 -0
  84. data/tmp/aruba/test_app/config/initializers/content_security_policy.rb +25 -0
  85. data/tmp/aruba/test_app/config/initializers/cookies_serializer.rb +5 -0
  86. data/tmp/aruba/test_app/config/initializers/filter_parameter_logging.rb +4 -0
  87. data/tmp/aruba/test_app/config/initializers/inflections.rb +16 -0
  88. data/tmp/aruba/test_app/config/initializers/mime_types.rb +4 -0
  89. data/tmp/aruba/test_app/config/initializers/wrap_parameters.rb +14 -0
  90. data/tmp/aruba/test_app/config/locales/en.yml +33 -0
  91. data/tmp/aruba/test_app/config/master.key +1 -0
  92. data/tmp/aruba/test_app/config/puma.rb +37 -0
  93. data/tmp/aruba/test_app/config/routes.rb +4 -0
  94. data/tmp/aruba/test_app/config/storage.yml +34 -0
  95. data/tmp/aruba/test_app/db/development.sqlite3 +0 -0
  96. data/tmp/aruba/test_app/db/migrate/20200821080656_create_appointments.rb +10 -0
  97. data/tmp/aruba/test_app/db/schema.rb +22 -0
  98. data/tmp/aruba/test_app/db/seeds.rb +7 -0
  99. data/tmp/aruba/test_app/db/test.sqlite3 +0 -0
  100. data/tmp/aruba/test_app/features/create_appointment.feature +9 -0
  101. data/tmp/aruba/test_app/features/create_appointment_steps.rb +19 -0
  102. data/tmp/aruba/test_app/features/support/env.rb +18 -0
  103. data/tmp/aruba/test_app/lib/tasks/cucumber.rake +76 -0
  104. data/tmp/aruba/test_app/log/development.log +27 -0
  105. data/tmp/aruba/test_app/log/test.log +38 -0
  106. data/tmp/aruba/test_app/package.json +5 -0
  107. data/tmp/aruba/test_app/public/404.html +67 -0
  108. data/tmp/aruba/test_app/public/422.html +67 -0
  109. data/tmp/aruba/test_app/public/500.html +66 -0
  110. data/tmp/aruba/test_app/public/apple-touch-icon-precomposed.png +0 -0
  111. data/tmp/aruba/test_app/public/apple-touch-icon.png +0 -0
  112. data/tmp/aruba/test_app/public/favicon.ico +0 -0
  113. data/tmp/aruba/test_app/public/robots.txt +1 -0
  114. data/tmp/aruba/test_app/script/cucumber +11 -0
  115. data/tmp/aruba/test_app/test/application_system_test_case.rb +5 -0
  116. data/tmp/aruba/test_app/test/controllers/appointments_controller_test.rb +48 -0
  117. data/tmp/aruba/test_app/test/fixtures/appointments.yml +9 -0
  118. data/tmp/aruba/test_app/test/models/appointment_test.rb +7 -0
  119. data/tmp/aruba/test_app/test/system/appointments_test.rb +45 -0
  120. data/tmp/aruba/test_app/test/test_helper.rb +10 -0
  121. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/0I/0I0oT83oN3NKiEi9XIhexiT3XgkA8mKyCbs25v3l20g.cache +1 -0
  122. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/0W/0WnFNEwHN4bhDiFTvyMWURx02L4yP3gkP7vtjzKQFVo.cache +1 -0
  123. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/2B/2Bg65dpvTdePrXa_wG6RsHpQzbqVSiHK0FVa0WdOJ4k.cache +0 -0
  124. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/2r/2r_85kVmIcWzvJH72GapWtLDhaMP2HEziNxykyYpAUg.cache +1 -0
  125. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/72/72jdZDzrM3-D_zYkIiPdAWQNeaFsqah154_QvcqWqTQ.cache +3 -0
  126. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/99/99m8UCKl4j8IpsVOK8ltLHyNh8Ae0nHw3GBkC34V_co.cache +2 -0
  127. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/9O/9OOXnKHBQnaCeE5HDe5csQsItouzWM6rTl8sESvkGTE.cache +1 -0
  128. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/AF/AFloQwm_M7GZudPY87xx4TA0xEeuX9Psl0SJ94i5EyU.cache +3 -0
  129. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/AP/APDAc8aUg_16wNWrVhCJcKeqbxyOScYGVhiDVgbrV7U.cache +0 -0
  130. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/B4/B43LeT9Wba4fLvXw-C_kKq-x9HwYZxnBBiltbIufzzQ.cache +2 -0
  131. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/EO/EOut5kyDPr7aKrHdvDsNJuYarA8XGnpAlDvBimlaC08.cache +0 -0
  132. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/GJ/GJzxuc2i_d4Uhxs4IMnbQXhxBc9CTLrnQyzxwTqKOBw.cache +0 -0
  133. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Ge/Ge2oyaUStbQszLfXjgTi6LkncyS5SKfV8RJwbRA3HbI.cache +1 -0
  134. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/HC/HCDOUd7-S45aJ_PjVAC_Vmjyud3i1aQv4cE3t9_Z3Dw.cache +2 -0
  135. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Hv/HvPd_vK17QbhWq8QnCuyhqm0cPaGnHyO9lSzN-icQdg.cache +2 -0
  136. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/II/IIhUO-5-DcfCyD_rVJeHjRMNVJxLmAmXP8i2XEjFpns.cache +1 -0
  137. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Ka/KaLHRsUYc4EUxUr4q_UhArFJUTF_EaBklpeU4TsE9SY.cache +1 -0
  138. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/MZ/MZcwDENEs93Wd9q7A_7UWdfJrWsBXa0pGp03P9mqG2I.cache +3 -0
  139. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Nw/NwHea3ImBECnlmojPb9X9ZDfvRRuX_dX9sxISdtp9-A.cache +0 -0
  140. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/PP/PPKuKT7m2PMDHVzBcYjePvXU6CbCW63Iqe3Q2a-Jdh8.cache +1 -0
  141. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/RE/REtgGrS74n4Y7OKRcGvZsA2EUClg_RM66mVgGpySI20.cache +1 -0
  142. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Rk/RkQLRXSz5LhJQnH7BT-ZDkVK0Rx8N9KhcVwR2A1HY4M.cache +2 -0
  143. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Sx/SxtNEQ-KKVBCTtsDD-xf4oJEIdBPIHkGktnLXvG-GRk.cache +1 -0
  144. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/TL/TLxLzqEAxKzTHH9EwSg5Lvcp3zgGuhjTjed121DSu9U.cache +0 -0
  145. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/U1/U1D7nCXYBD3VlPnXGs_6mRtlhs-Gvv_vvCUYlTf4Grw.cache +3 -0
  146. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/U6/U6pXyI-5haNcHRdsB-SoztzlXb98-256hFReXsL31J4.cache +2 -0
  147. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/UE/UEKUaC9O_XBO5acP8HnxcJ1dtNM_1C7MTofkTQvPgRA.cache +1 -0
  148. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/UV/UVcnI5bo-eQvULfmzeQUFVTDYEMF2cbAXpsOsh01XNY.cache +1 -0
  149. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/WK/WK8RpMP5qb9GRQTsTHAzlfo8t2nsTLU6B8CQAc4UfOU.cache +1 -0
  150. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Xk/Xk8p9O39-syzKbpnoMRChld0TpoZFWlNIzeT5XKw2fQ.cache +0 -0
  151. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Zv/ZvCEW2ZyS-k4cHH7Gd8P2nKFE9Uh1VOrfR-1PYY2yz8.cache +5 -0
  152. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/ac/acWu1-1ZAW1jRVKlHYlzlEg28lk-SdHfTq-P-viJMS0.cache +1 -0
  153. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/b3/b3NiYrQOlN2zxiJYqbl4gmvK6it3Md9gSzAYgsIMhnY.cache +1 -0
  154. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/c1/c1Pm-rFPEB3LXIjOtswD6x8SEAgI9y2BR16jc8ifcsc.cache +1 -0
  155. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/em/emTQG2a9zF8NuvElLOnEpNJp0wq3_gVSDAM60vyXAzE.cache +0 -0
  156. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/fX/fXH3Db_88TmJFhRydoFTx8tZbHAkLzK2ZZ0lsBEg8xA.cache +0 -0
  157. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/gI/gIHntmCf7DbObPL_KZJYSgduAmqX18ZZPOtq85pn8vo.cache +0 -0
  158. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/kP/kPwbLAUCLjv0x6fe5lvZpmUkgmvQSDHSdEOSdbMyDgY.cache +0 -0
  159. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/kT/kT98Z_slHI6SgdEmoAtKAHyJQjTHdbe6GAbB27RP2uI.cache +1 -0
  160. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/mt/mtT4Rwi7H_vHQXdxxPvvzhL4ziA7X9WK-JXzacxWlEA.cache +0 -0
  161. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/mz/mzgD6X_N-fO95dP8Q1Q1sApCrbSmgPgsuEKv65KYcdo.cache +3 -0
  162. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/oi/oiPhXw8pYdWv5T4qRFzePHaXZLI50xMvvTyfry-ILSo.cache +1 -0
  163. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/r-/r--YB1ugrZ4F-ogbLLYNwIH3j9pQ2u_ZBjTJxoS7TrM.cache +1 -0
  164. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/s6/s68UIyg0lNko7IA42JXv_wwy9Ea3WH-zc9h0GYPg88Y.cache +1 -0
  165. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/si/siT97rfEKbIWcCj6KUBChX7kpRBKI2fAeGGwpsz0tTU.cache +0 -0
  166. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/st/stqDgDfAemfEq7ZxlEj6YThpn8_1Nfw2bRVA0N03YTw.cache +1 -0
  167. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/t9/t93lpjyly3MvgKs51_OlLXneJXGyYFGmshXsk4Wr69M.cache +1 -0
  168. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/tE/tEy2QePsDnmFyyAQEric23sSBnfHBst3SEM7p-J7el8.cache +2 -0
  169. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/tR/tRV7SyAY9c71G0o-8bElvNI76KcWhc5NVm48xflMPpM.cache +0 -0
  170. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/tg/tggwa2O6A41xeZTK4SR0qcX0X55aOGg6q8ZWfqma1vM.cache +0 -0
  171. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/uB/uBKOYcdzL_6Amevsu-uKAMTg7QGW5kgC0t5sAZINrcI.cache +0 -0
  172. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/uE/uEyPXY2m04nerJV0pn3p-B-BlkJ08oufpQH1G2QXPw4.cache +1 -0
  173. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/up/upyndqsU9bU6WV8qyMy7MLpcQoybRqgj-qA3C3pjzXY.cache +0 -0
  174. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/ux/uxx-W2TOCdnAEGX0ZLThb_QIEbLYutX8qCwD0glYCKE.cache +3 -0
  175. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/vC/vCsc-q2WmT8vWM2d2pb6_5hFav8mGlylwEKVWQvsumo.cache +1 -0
  176. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/vc/vcgiILg1wO98x-a4kX678ASAFWA1cL0iVx07VkHLPqA.cache +0 -0
  177. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/vu/vu6xNIGT6zorPmcKfd7edgxBltTmIRXU281uyK51kkU.cache +1 -0
  178. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/w4/w4y_Lms54hD2Nivh5PHeccAmh2DX53sc_HDTQYNyNXw.cache +3 -0
  179. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/yZ/yZpoD5Zf4RAQoOwi5kMVksuta_0KhYSK_Yy_6Ykyt7E.cache +1 -0
  180. data/tmp/aruba/test_app/tmp/development_secret.txt +1 -0
  181. metadata +212 -36
  182. data/.github/ISSUE_TEMPLATE.md +0 -52
  183. data/.github/PULL_REQUEST_TEMPLATE.md +0 -42
  184. data/.gitignore +0 -14
  185. data/.rspec +0 -4
  186. data/.rubocop.yml +0 -68
  187. data/.travis.yml +0 -62
  188. data/config/.gitignore +0 -1
  189. data/gemfiles/rails_4_2.gemfile +0 -10
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module AppointmentsHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ class ApplicationJob < ActiveJob::Base
2
+ end
@@ -0,0 +1,4 @@
1
+ class ApplicationMailer < ActionMailer::Base
2
+ default from: 'from@example.com'
3
+ layout 'mailer'
4
+ end
@@ -0,0 +1,3 @@
1
+ class ApplicationRecord < ActiveRecord::Base
2
+ self.abstract_class = true
3
+ end
@@ -0,0 +1,2 @@
1
+ class Appointment < ApplicationRecord
2
+ end
@@ -0,0 +1,2 @@
1
+ json.extract! appointment, :id, :name, :when, :created_at, :updated_at
2
+ json.url appointment_url(appointment, format: :json)
@@ -0,0 +1,27 @@
1
+ <%= form_with(model: appointment, local: true) do |form| %>
2
+ <% if appointment.errors.any? %>
3
+ <div id="error_explanation">
4
+ <h2><%= pluralize(appointment.errors.count, "error") %> prohibited this appointment from being saved:</h2>
5
+
6
+ <ul>
7
+ <% appointment.errors.full_messages.each do |message| %>
8
+ <li><%= message %></li>
9
+ <% end %>
10
+ </ul>
11
+ </div>
12
+ <% end %>
13
+
14
+ <div class="field">
15
+ <%= form.label :name %>
16
+ <%= form.text_field :name %>
17
+ </div>
18
+
19
+ <div class="field">
20
+ <%= form.label :when %>
21
+ <%= form.datetime_select :when %>
22
+ </div>
23
+
24
+ <div class="actions">
25
+ <%= form.submit %>
26
+ </div>
27
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <h1>Editing Appointment</h1>
2
+
3
+ <%= render 'form', appointment: @appointment %>
4
+
5
+ <%= link_to 'Show', @appointment %> |
6
+ <%= link_to 'Back', appointments_path %>
@@ -0,0 +1,29 @@
1
+ <p id="notice"><%= notice %></p>
2
+
3
+ <h1>Appointments</h1>
4
+
5
+ <table>
6
+ <thead>
7
+ <tr>
8
+ <th>Name</th>
9
+ <th>When</th>
10
+ <th colspan="3"></th>
11
+ </tr>
12
+ </thead>
13
+
14
+ <tbody>
15
+ <% @appointments.each do |appointment| %>
16
+ <tr>
17
+ <td><%= appointment.name %></td>
18
+ <td><%= appointment.when %></td>
19
+ <td><%= link_to 'Show', appointment %></td>
20
+ <td><%= link_to 'Edit', edit_appointment_path(appointment) %></td>
21
+ <td><%= link_to 'Destroy', appointment, method: :delete, data: { confirm: 'Are you sure?' } %></td>
22
+ </tr>
23
+ <% end %>
24
+ </tbody>
25
+ </table>
26
+
27
+ <br>
28
+
29
+ <%= link_to 'New Appointment', new_appointment_path %>
@@ -0,0 +1 @@
1
+ json.array! @appointments, partial: "appointments/appointment", as: :appointment
@@ -0,0 +1,5 @@
1
+ <h1>New Appointment</h1>
2
+
3
+ <%= render 'form', appointment: @appointment %>
4
+
5
+ <%= link_to 'Back', appointments_path %>
@@ -0,0 +1,14 @@
1
+ <p id="notice"><%= notice %></p>
2
+
3
+ <p>
4
+ <strong>Name:</strong>
5
+ <%= @appointment.name %>
6
+ </p>
7
+
8
+ <p>
9
+ <strong>When:</strong>
10
+ <%= @appointment.when %>
11
+ </p>
12
+
13
+ <%= link_to 'Edit', edit_appointment_path(@appointment) %> |
14
+ <%= link_to 'Back', appointments_path %>
@@ -0,0 +1 @@
1
+ json.partial! "appointments/appointment", appointment: @appointment
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>TestApp</title>
5
+ <%= csrf_meta_tags %>
6
+ <%= csp_meta_tag %>
7
+
8
+ <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
9
+ <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
10
+ </head>
11
+
12
+ <body>
13
+ <%= yield %>
14
+ </body>
15
+ </html>
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5
+ <style>
6
+ /* Email styles need to be inline */
7
+ </style>
8
+ </head>
9
+
10
+ <body>
11
+ <%= yield %>
12
+ </body>
13
+ </html>
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
3
+ load Gem.bin_path('bundler', 'bundle')
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ APP_PATH = File.expand_path('../config/application', __dir__)
3
+ require_relative '../config/boot'
4
+ require 'rails/commands'
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative '../config/boot'
3
+ require 'rake'
4
+ Rake.application.run
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env ruby
2
+ require 'fileutils'
3
+ include FileUtils
4
+
5
+ # path to your application root.
6
+ APP_ROOT = File.expand_path('..', __dir__)
7
+
8
+ def system!(*args)
9
+ system(*args) || abort("\n== Command #{args} failed ==")
10
+ end
11
+
12
+ chdir APP_ROOT do
13
+ # This script is a starting point to setup your application.
14
+ # Add necessary setup steps to this file.
15
+
16
+ puts '== Installing dependencies =='
17
+ system! 'gem install bundler --conservative'
18
+ system('bundle check') || system!('bundle install')
19
+
20
+ # Install JavaScript dependencies if using Yarn
21
+ # system('bin/yarn')
22
+
23
+ # puts "\n== Copying sample files =="
24
+ # unless File.exist?('config/database.yml')
25
+ # cp 'config/database.yml.sample', 'config/database.yml'
26
+ # end
27
+
28
+ puts "\n== Preparing database =="
29
+ system! 'bin/rails db:setup'
30
+
31
+ puts "\n== Removing old logs and tempfiles =="
32
+ system! 'bin/rails log:clear tmp:clear'
33
+
34
+ puts "\n== Restarting application server =="
35
+ system! 'bin/rails restart'
36
+ end
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env ruby
2
+ require 'fileutils'
3
+ include FileUtils
4
+
5
+ # path to your application root.
6
+ APP_ROOT = File.expand_path('..', __dir__)
7
+
8
+ def system!(*args)
9
+ system(*args) || abort("\n== Command #{args} failed ==")
10
+ end
11
+
12
+ chdir APP_ROOT do
13
+ # This script is a way to update your development environment automatically.
14
+ # Add necessary update steps to this file.
15
+
16
+ puts '== Installing dependencies =='
17
+ system! 'gem install bundler --conservative'
18
+ system('bundle check') || system!('bundle install')
19
+
20
+ # Install JavaScript dependencies if using Yarn
21
+ # system('bin/yarn')
22
+
23
+ puts "\n== Updating database =="
24
+ system! 'bin/rails db:migrate'
25
+
26
+ puts "\n== Removing old logs and tempfiles =="
27
+ system! 'bin/rails log:clear tmp:clear'
28
+
29
+ puts "\n== Restarting application server =="
30
+ system! 'bin/rails restart'
31
+ end
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+ APP_ROOT = File.expand_path('..', __dir__)
3
+ Dir.chdir(APP_ROOT) do
4
+ begin
5
+ exec "yarnpkg", *ARGV
6
+ rescue Errno::ENOENT
7
+ $stderr.puts "Yarn executable was not detected in the system."
8
+ $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install"
9
+ exit 1
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ # This file is used by Rack-based servers to start the application.
2
+
3
+ require_relative 'config/environment'
4
+
5
+ run Rails.application
@@ -0,0 +1,19 @@
1
+ require_relative 'boot'
2
+
3
+ require 'rails/all'
4
+
5
+ # Require the gems listed in Gemfile, including any gems
6
+ # you've limited to :test, :development, or :production.
7
+ Bundler.require(*Rails.groups)
8
+
9
+ module TestApp
10
+ class Application < Rails::Application
11
+ # Initialize configuration defaults for originally generated Rails version.
12
+ config.load_defaults 5.2
13
+
14
+ # Settings in config/environments/* take precedence over those specified here.
15
+ # Application configuration can go into files in config/initializers
16
+ # -- all .rb files in that directory are automatically loaded after loading
17
+ # the framework and any gems in your application.
18
+ end
19
+ end
@@ -0,0 +1,3 @@
1
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
2
+
3
+ require 'bundler/setup' # Set up gems listed in the Gemfile.
@@ -0,0 +1,10 @@
1
+ development:
2
+ adapter: async
3
+
4
+ test:
5
+ adapter: async
6
+
7
+ production:
8
+ adapter: redis
9
+ url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %>
10
+ channel_prefix: test_app_production
@@ -0,0 +1 @@
1
+ 3+L+PHU0k+DcNwIankz5q6bMvYJ9VE6c6vo5UsJMorUEQS18GuoE0lH3ylXVUhZ31lfv3FVHEf6ktGPGEpMIe4sgRUjRGHGNTH6QKV3sLVc4mfgJQIR+hbddmU51MCs66UsG2AV50JYEUIFEYn0VSaAievjYZp9nxaNx3gE4/x6RWxeR2WtTkU5IoFhc7gZdqKk6mMR2jV4Cf2ZZ+EQQX22Tkq+qDiWQHbGTHz0qFdarwD2223lxnwo994XyRHKbTXZZrXWKJ3NthMV3JzSuIiGppsJjBLwFvc/wO2EEVLHPhu/xIhsykzzTcQCvw1fA5yaI6+rOkE10b17W+aHUHHy29S+cGrWzvrJuQ+tH2UxOGEzqMV0VBIykfqZBgIL+DJuk/BKbZRkzMRL74T/V9yHFDKaar7vZWOZy--7tbhjCg31QRYSqCO--L0mMGYF144mJ6cHFvOwCuQ==
@@ -0,0 +1,9 @@
1
+ <%
2
+ rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
3
+ rerun = rerun.strip.gsub /\s/, ' '
4
+ rerun_opts = rerun.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
5
+ std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags 'not @wip'"
6
+ %>
7
+ default: <%= std_opts %> features
8
+ wip: --tags @wip:3 --wip features
9
+ rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags 'not @wip'
@@ -0,0 +1,25 @@
1
+ # SQLite version 3.x
2
+ # gem install sqlite3
3
+ #
4
+ # Ensure the SQLite 3 gem is defined in your Gemfile
5
+ # gem 'sqlite3'
6
+ #
7
+ default: &default
8
+ adapter: sqlite3
9
+ pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
10
+ timeout: 5000
11
+
12
+ development:
13
+ <<: *default
14
+ database: db/development.sqlite3
15
+
16
+ # Warning: The database defined as "test" will be erased and
17
+ # re-generated from your development database when you run "rake".
18
+ # Do not set this db to the same as development or production.
19
+ test:
20
+ <<: *default
21
+ database: db/test.sqlite3
22
+
23
+ production:
24
+ <<: *default
25
+ database: db/production.sqlite3
@@ -0,0 +1,5 @@
1
+ # Load the Rails application.
2
+ require_relative 'application'
3
+
4
+ # Initialize the Rails application.
5
+ Rails.application.initialize!
@@ -0,0 +1,61 @@
1
+ Rails.application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb.
3
+
4
+ # In the development environment your application's code is reloaded on
5
+ # every request. This slows down response time but is perfect for development
6
+ # since you don't have to restart the web server when you make code changes.
7
+ config.cache_classes = false
8
+
9
+ # Do not eager load code on boot.
10
+ config.eager_load = false
11
+
12
+ # Show full error reports.
13
+ config.consider_all_requests_local = true
14
+
15
+ # Enable/disable caching. By default caching is disabled.
16
+ # Run rails dev:cache to toggle caching.
17
+ if Rails.root.join('tmp', 'caching-dev.txt').exist?
18
+ config.action_controller.perform_caching = true
19
+
20
+ config.cache_store = :memory_store
21
+ config.public_file_server.headers = {
22
+ 'Cache-Control' => "public, max-age=#{2.days.to_i}"
23
+ }
24
+ else
25
+ config.action_controller.perform_caching = false
26
+
27
+ config.cache_store = :null_store
28
+ end
29
+
30
+ # Store uploaded files on the local file system (see config/storage.yml for options)
31
+ config.active_storage.service = :local
32
+
33
+ # Don't care if the mailer can't send.
34
+ config.action_mailer.raise_delivery_errors = false
35
+
36
+ config.action_mailer.perform_caching = false
37
+
38
+ # Print deprecation notices to the Rails logger.
39
+ config.active_support.deprecation = :log
40
+
41
+ # Raise an error on page load if there are pending migrations.
42
+ config.active_record.migration_error = :page_load
43
+
44
+ # Highlight code that triggered database queries in logs.
45
+ config.active_record.verbose_query_logs = true
46
+
47
+ # Debug mode disables concatenation and preprocessing of assets.
48
+ # This option may cause significant delays in view rendering with a large
49
+ # number of complex assets.
50
+ config.assets.debug = true
51
+
52
+ # Suppress logger output for asset requests.
53
+ config.assets.quiet = true
54
+
55
+ # Raises error for missing translations
56
+ # config.action_view.raise_on_missing_translations = true
57
+
58
+ # Use an evented file watcher to asynchronously detect changes in source code,
59
+ # routes, locales, etc. This feature depends on the listen gem.
60
+ config.file_watcher = ActiveSupport::EventedFileUpdateChecker
61
+ end
@@ -0,0 +1,94 @@
1
+ Rails.application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb.
3
+
4
+ # Code is not reloaded between requests.
5
+ config.cache_classes = true
6
+
7
+ # Eager load code on boot. This eager loads most of Rails and
8
+ # your application in memory, allowing both threaded web servers
9
+ # and those relying on copy on write to perform better.
10
+ # Rake tasks automatically ignore this option for performance.
11
+ config.eager_load = true
12
+
13
+ # Full error reports are disabled and caching is turned on.
14
+ config.consider_all_requests_local = false
15
+ config.action_controller.perform_caching = true
16
+
17
+ # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"]
18
+ # or in config/master.key. This key is used to decrypt credentials (and other encrypted files).
19
+ # config.require_master_key = true
20
+
21
+ # Disable serving static files from the `/public` folder by default since
22
+ # Apache or NGINX already handles this.
23
+ config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
24
+
25
+ # Compress JavaScripts and CSS.
26
+ config.assets.js_compressor = :uglifier
27
+ # config.assets.css_compressor = :sass
28
+
29
+ # Do not fallback to assets pipeline if a precompiled asset is missed.
30
+ config.assets.compile = false
31
+
32
+ # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
33
+
34
+ # Enable serving of images, stylesheets, and JavaScripts from an asset server.
35
+ # config.action_controller.asset_host = 'http://assets.example.com'
36
+
37
+ # Specifies the header that your server uses for sending files.
38
+ # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
39
+ # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
40
+
41
+ # Store uploaded files on the local file system (see config/storage.yml for options)
42
+ config.active_storage.service = :local
43
+
44
+ # Mount Action Cable outside main process or domain
45
+ # config.action_cable.mount_path = nil
46
+ # config.action_cable.url = 'wss://example.com/cable'
47
+ # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]
48
+
49
+ # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
50
+ # config.force_ssl = true
51
+
52
+ # Use the lowest log level to ensure availability of diagnostic information
53
+ # when problems arise.
54
+ config.log_level = :debug
55
+
56
+ # Prepend all log lines with the following tags.
57
+ config.log_tags = [ :request_id ]
58
+
59
+ # Use a different cache store in production.
60
+ # config.cache_store = :mem_cache_store
61
+
62
+ # Use a real queuing backend for Active Job (and separate queues per environment)
63
+ # config.active_job.queue_adapter = :resque
64
+ # config.active_job.queue_name_prefix = "test_app_#{Rails.env}"
65
+
66
+ config.action_mailer.perform_caching = false
67
+
68
+ # Ignore bad email addresses and do not raise email delivery errors.
69
+ # Set this to true and configure the email server for immediate delivery to raise delivery errors.
70
+ # config.action_mailer.raise_delivery_errors = false
71
+
72
+ # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
73
+ # the I18n.default_locale when a translation cannot be found).
74
+ config.i18n.fallbacks = true
75
+
76
+ # Send deprecation notices to registered listeners.
77
+ config.active_support.deprecation = :notify
78
+
79
+ # Use default logging formatter so that PID and timestamp are not suppressed.
80
+ config.log_formatter = ::Logger::Formatter.new
81
+
82
+ # Use a different logger for distributed setups.
83
+ # require 'syslog/logger'
84
+ # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
85
+
86
+ if ENV["RAILS_LOG_TO_STDOUT"].present?
87
+ logger = ActiveSupport::Logger.new(STDOUT)
88
+ logger.formatter = config.log_formatter
89
+ config.logger = ActiveSupport::TaggedLogging.new(logger)
90
+ end
91
+
92
+ # Do not dump schema after migrations.
93
+ config.active_record.dump_schema_after_migration = false
94
+ end