solidus_starter_frontend 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (301) hide show
  1. checksums.yaml +4 -4
  2. metadata +30 -514
  3. data/.circleci/config.yml +0 -57
  4. data/.erb-lint.yml +0 -22
  5. data/.eslintrc +0 -5
  6. data/.gem_release.yml +0 -5
  7. data/.github/pull_request_template.md +0 -28
  8. data/.github/stale.yml +0 -17
  9. data/.gitignore +0 -17
  10. data/.hound.yml +0 -16
  11. data/.rspec +0 -2
  12. data/.rubocop.yml +0 -19
  13. data/.rubocop_todo.yml +0 -229
  14. data/.scss-lint.yml +0 -4
  15. data/Gemfile +0 -34
  16. data/LICENSE +0 -26
  17. data/README.md +0 -69
  18. data/Rakefile +0 -6
  19. data/app/assets/config/solidus_starter_frontend_manifest.js +0 -2
  20. data/app/assets/javascripts/spree/frontend/cart.js +0 -26
  21. data/app/assets/javascripts/spree/frontend/checkout/address.js +0 -124
  22. data/app/assets/javascripts/spree/frontend/checkout/payment.js +0 -44
  23. data/app/assets/javascripts/spree/frontend/checkout.js +0 -34
  24. data/app/assets/javascripts/spree/frontend/locale_selector.js +0 -9
  25. data/app/assets/javascripts/spree/frontend/product.js +0 -21
  26. data/app/assets/javascripts/spree/frontend/solidus_starter_frontend.js +0 -9
  27. data/app/assets/javascripts/spree/frontend/utils.js.erb +0 -18
  28. data/app/assets/javascripts/spree/frontend.js +0 -6
  29. data/app/assets/stylesheets/spree/frontend/base/_base.scss +0 -29
  30. data/app/assets/stylesheets/spree/frontend/base/_reset.scss +0 -179
  31. data/app/assets/stylesheets/spree/frontend/base/_responsive.scss +0 -21
  32. data/app/assets/stylesheets/spree/frontend/components/account/_account_order.scss +0 -23
  33. data/app/assets/stylesheets/spree/frontend/components/account/_account_summary.scss +0 -17
  34. data/app/assets/stylesheets/spree/frontend/components/auth/_auth_container.scss +0 -11
  35. data/app/assets/stylesheets/spree/frontend/components/auth/_auth_form.scss +0 -5
  36. data/app/assets/stylesheets/spree/frontend/components/brand/_logo.scss +0 -4
  37. data/app/assets/stylesheets/spree/frontend/components/buttons/_button_inline.scss +0 -8
  38. data/app/assets/stylesheets/spree/frontend/components/buttons/_button_primary.scss +0 -26
  39. data/app/assets/stylesheets/spree/frontend/components/cart/_cart_adjustments.scss +0 -6
  40. data/app/assets/stylesheets/spree/frontend/components/cart/_cart_amount_row.scss +0 -11
  41. data/app/assets/stylesheets/spree/frontend/components/cart/_cart_empty.scss +0 -10
  42. data/app/assets/stylesheets/spree/frontend/components/cart/_cart_footer.scss +0 -20
  43. data/app/assets/stylesheets/spree/frontend/components/cart/_cart_header.scss +0 -12
  44. data/app/assets/stylesheets/spree/frontend/components/cart/_cart_item.scss +0 -86
  45. data/app/assets/stylesheets/spree/frontend/components/cart/_cart_link.scss +0 -22
  46. data/app/assets/stylesheets/spree/frontend/components/cart/_cart_page.scss +0 -15
  47. data/app/assets/stylesheets/spree/frontend/components/cart/_cart_secondary_actions.scss +0 -19
  48. data/app/assets/stylesheets/spree/frontend/components/cart/_coupon_code.scss +0 -8
  49. data/app/assets/stylesheets/spree/frontend/components/cart/_item_info.scss +0 -19
  50. data/app/assets/stylesheets/spree/frontend/components/checkout/_checkout.scss +0 -27
  51. data/app/assets/stylesheets/spree/frontend/components/checkout/_checkout_header.scss +0 -19
  52. data/app/assets/stylesheets/spree/frontend/components/checkout/_checkout_summary.scss +0 -31
  53. data/app/assets/stylesheets/spree/frontend/components/checkout/_existing_cards.scss +0 -27
  54. data/app/assets/stylesheets/spree/frontend/components/checkout/_payment_method_controls.scss +0 -5
  55. data/app/assets/stylesheets/spree/frontend/components/checkout/_payment_method_selector.scss +0 -14
  56. data/app/assets/stylesheets/spree/frontend/components/checkout/_progress_steps.scss +0 -38
  57. data/app/assets/stylesheets/spree/frontend/components/checkout/_proposed_shipment.scss +0 -18
  58. data/app/assets/stylesheets/spree/frontend/components/checkout/_shipment_items.scss +0 -50
  59. data/app/assets/stylesheets/spree/frontend/components/checkout/_shipping_methods.scss +0 -9
  60. data/app/assets/stylesheets/spree/frontend/components/checkout/payments/_gateway_payment_method.scss +0 -11
  61. data/app/assets/stylesheets/spree/frontend/components/checkout/steps/_address_step.scss +0 -20
  62. data/app/assets/stylesheets/spree/frontend/components/checkout/steps/_confirm_step.scss +0 -13
  63. data/app/assets/stylesheets/spree/frontend/components/checkout/steps/_delivery_step.scss +0 -13
  64. data/app/assets/stylesheets/spree/frontend/components/checkout/steps/_payment_step.scss +0 -13
  65. data/app/assets/stylesheets/spree/frontend/components/forms/_address_inputs.scss +0 -13
  66. data/app/assets/stylesheets/spree/frontend/components/forms/inputs/_checkbox_input.scss +0 -3
  67. data/app/assets/stylesheets/spree/frontend/components/forms/inputs/_radio_input.scss +0 -3
  68. data/app/assets/stylesheets/spree/frontend/components/forms/inputs/_select_input.scss +0 -27
  69. data/app/assets/stylesheets/spree/frontend/components/forms/inputs/_text.scss +0 -32
  70. data/app/assets/stylesheets/spree/frontend/components/forms/inputs/_textarea_input.scss +0 -25
  71. data/app/assets/stylesheets/spree/frontend/components/general/_flash.scss +0 -20
  72. data/app/assets/stylesheets/spree/frontend/components/layout/_aside.scss +0 -4
  73. data/app/assets/stylesheets/spree/frontend/components/layout/_breadcrumbs.scss +0 -16
  74. data/app/assets/stylesheets/spree/frontend/components/layout/_category_navigation.scss +0 -3
  75. data/app/assets/stylesheets/spree/frontend/components/layout/_footer.scss +0 -8
  76. data/app/assets/stylesheets/spree/frontend/components/layout/_header.scss +0 -12
  77. data/app/assets/stylesheets/spree/frontend/components/layout/_horizontal_input_group.scss +0 -7
  78. data/app/assets/stylesheets/spree/frontend/components/layout/_top_bar.scss +0 -44
  79. data/app/assets/stylesheets/spree/frontend/components/navigation/_auth_link.scss +0 -11
  80. data/app/assets/stylesheets/spree/frontend/components/navigation/_categories.scss +0 -29
  81. data/app/assets/stylesheets/spree/frontend/components/navigation/_locale_selector.scss +0 -21
  82. data/app/assets/stylesheets/spree/frontend/components/navigation/_taxonomies.scss +0 -7
  83. data/app/assets/stylesheets/spree/frontend/components/navigation/_taxonomy.scss +0 -28
  84. data/app/assets/stylesheets/spree/frontend/components/orders/_address_overview.scss +0 -27
  85. data/app/assets/stylesheets/spree/frontend/components/orders/_coupon_codes.scss +0 -4
  86. data/app/assets/stylesheets/spree/frontend/components/orders/_line_items.scss +0 -20
  87. data/app/assets/stylesheets/spree/frontend/components/orders/_order_details.scss +0 -18
  88. data/app/assets/stylesheets/spree/frontend/components/orders/_order_item.scss +0 -85
  89. data/app/assets/stylesheets/spree/frontend/components/orders/_order_page.scss +0 -41
  90. data/app/assets/stylesheets/spree/frontend/components/orders/_order_shipments.scss +0 -27
  91. data/app/assets/stylesheets/spree/frontend/components/orders/_payment_info.scss +0 -29
  92. data/app/assets/stylesheets/spree/frontend/components/presentation/_hero.scss +0 -18
  93. data/app/assets/stylesheets/spree/frontend/components/products/_product_card.scss +0 -35
  94. data/app/assets/stylesheets/spree/frontend/components/products/_product_image.scss +0 -7
  95. data/app/assets/stylesheets/spree/frontend/components/products/_product_info.scss +0 -14
  96. data/app/assets/stylesheets/spree/frontend/components/products/_product_page.scss +0 -31
  97. data/app/assets/stylesheets/spree/frontend/components/products/_product_properties.scss +0 -23
  98. data/app/assets/stylesheets/spree/frontend/components/products/_product_submit.scss +0 -9
  99. data/app/assets/stylesheets/spree/frontend/components/products/_product_taxons.scss +0 -27
  100. data/app/assets/stylesheets/spree/frontend/components/products/_product_thumbnails.scss +0 -7
  101. data/app/assets/stylesheets/spree/frontend/components/products/_product_variants.scss +0 -20
  102. data/app/assets/stylesheets/spree/frontend/components/products/_products.scss +0 -13
  103. data/app/assets/stylesheets/spree/frontend/components/products/_products_by_taxon.scss +0 -6
  104. data/app/assets/stylesheets/spree/frontend/components/products/_products_grid.scss +0 -18
  105. data/app/assets/stylesheets/spree/frontend/components/search/_filter.scss +0 -32
  106. data/app/assets/stylesheets/spree/frontend/components/search/_search_bar.scss +0 -34
  107. data/app/assets/stylesheets/spree/frontend/components/typography/_hero_title.scss +0 -6
  108. data/app/assets/stylesheets/spree/frontend/components/typography/_subtitle.scss +0 -7
  109. data/app/assets/stylesheets/spree/frontend/placeholders/main.scss +0 -5
  110. data/app/assets/stylesheets/spree/frontend/screen.scss +0 -89
  111. data/app/assets/stylesheets/spree/frontend/solidus_starter_frontend.css +0 -7
  112. data/app/assets/stylesheets/spree/frontend/variables/_colors.scss +0 -20
  113. data/app/assets/stylesheets/spree/frontend.css +0 -8
  114. data/app/controllers/concerns/solidus_starter_frontend/auth_views.rb +0 -16
  115. data/app/controllers/concerns/solidus_starter_frontend/taxonomies.rb +0 -16
  116. data/app/controllers/spree/checkout_controller.rb +0 -249
  117. data/app/controllers/spree/coupon_codes_controller.rb +0 -35
  118. data/app/controllers/spree/home_controller.rb +0 -13
  119. data/app/controllers/spree/locale_controller.rb +0 -20
  120. data/app/controllers/spree/orders_controller.rb +0 -126
  121. data/app/controllers/spree/products_controller.rb +0 -51
  122. data/app/controllers/spree/store_controller.rb +0 -31
  123. data/app/controllers/spree/taxons_controller.rb +0 -30
  124. data/app/helpers/spree/orders_helper.rb +0 -18
  125. data/app/helpers/spree/taxon_filters_helper.rb +0 -13
  126. data/app/views/spree/address/_form_hidden.html.erb +0 -12
  127. data/app/views/spree/checkout/_terms_and_conditions.en.html.erb +0 -1
  128. data/app/views/spree/checkout/edit.html.erb +0 -16
  129. data/app/views/spree/checkout/existing_payment/_gateway.html.erb +0 -9
  130. data/app/views/spree/checkout/payment/_check.html.erb +0 -0
  131. data/app/views/spree/checkout/payment/_gateway.html.erb +0 -43
  132. data/app/views/spree/components/auth/_change_form.html.erb +0 -40
  133. data/app/views/spree/components/auth/_forgot_form.html.erb +0 -28
  134. data/app/views/spree/components/auth/_guest_form.html.erb +0 -31
  135. data/app/views/spree/components/auth/_login_form.html.erb +0 -42
  136. data/app/views/spree/components/auth/_signup_form.html.erb +0 -48
  137. data/app/views/spree/components/brand/_logo.html.erb +0 -3
  138. data/app/views/spree/components/buttons/_button_inline.html.erb +0 -23
  139. data/app/views/spree/components/buttons/_button_primary.html.erb +0 -29
  140. data/app/views/spree/components/cart/_cart_adjustment.html.erb +0 -15
  141. data/app/views/spree/components/cart/_cart_adjustments.html.erb +0 -47
  142. data/app/views/spree/components/cart/_cart_amount_row.html.erb +0 -12
  143. data/app/views/spree/components/cart/_cart_empty.html.erb +0 -9
  144. data/app/views/spree/components/cart/_cart_footer.html.erb +0 -15
  145. data/app/views/spree/components/cart/_cart_header.html.erb +0 -17
  146. data/app/views/spree/components/cart/_cart_item.html.erb +0 -52
  147. data/app/views/spree/components/cart/_cart_items.html.erb +0 -23
  148. data/app/views/spree/components/cart/_cart_link.html.erb +0 -9
  149. data/app/views/spree/components/cart/_cart_secondary_actions.html.erb +0 -17
  150. data/app/views/spree/components/cart/_item_info.html.erb +0 -26
  151. data/app/views/spree/components/checkout/_checkout_header.html.erb +0 -8
  152. data/app/views/spree/components/checkout/_checkout_step.html.erb +0 -21
  153. data/app/views/spree/components/checkout/_checkout_summary.html.erb +0 -70
  154. data/app/views/spree/components/checkout/_existing_cards.html.erb +0 -39
  155. data/app/views/spree/components/checkout/_payment_method_controls.html.erb +0 -10
  156. data/app/views/spree/components/checkout/_payment_method_selector.html.erb +0 -14
  157. data/app/views/spree/components/checkout/_proposed_shipment.erb +0 -18
  158. data/app/views/spree/components/checkout/_shipment_items.html.erb +0 -22
  159. data/app/views/spree/components/checkout/_shipping_methods.html.erb +0 -20
  160. data/app/views/spree/components/checkout/_unshippable_items.html.erb +0 -7
  161. data/app/views/spree/components/checkout/steps/_address_step.html.erb +0 -60
  162. data/app/views/spree/components/checkout/steps/_confirm_step.html.erb +0 -31
  163. data/app/views/spree/components/checkout/steps/_delivery_step.html.erb +0 -31
  164. data/app/views/spree/components/checkout/steps/_payment_step.html.erb +0 -25
  165. data/app/views/spree/components/forms/_address_inputs.html.erb +0 -152
  166. data/app/views/spree/components/forms/inputs/_checkbox_input.html.erb +0 -29
  167. data/app/views/spree/components/forms/inputs/_collection_select.html.erb +0 -42
  168. data/app/views/spree/components/forms/inputs/_radio_input.html.erb +0 -29
  169. data/app/views/spree/components/forms/inputs/_select_input.html.erb +0 -31
  170. data/app/views/spree/components/forms/inputs/_text.html.erb +0 -54
  171. data/app/views/spree/components/forms/inputs/_textarea_input.html.erb +0 -42
  172. data/app/views/spree/components/layout/_category_navigation.html.erb +0 -3
  173. data/app/views/spree/components/layout/_footer.html.erb +0 -7
  174. data/app/views/spree/components/layout/_header.html.erb +0 -8
  175. data/app/views/spree/components/layout/_top_bar.html.erb +0 -8
  176. data/app/views/spree/components/navigation/_auth_link.html.erb +0 -1
  177. data/app/views/spree/components/navigation/_breadcrumbs.html.erb +0 -47
  178. data/app/views/spree/components/navigation/_categories.html.erb +0 -12
  179. data/app/views/spree/components/navigation/_locale_selector.html.erb +0 -25
  180. data/app/views/spree/components/navigation/_taxonomies.html.erb +0 -17
  181. data/app/views/spree/components/navigation/_taxons.html.erb +0 -17
  182. data/app/views/spree/components/navigation/_taxons_tree.html.erb +0 -29
  183. data/app/views/spree/components/orders/_address_overview.html.erb +0 -40
  184. data/app/views/spree/components/orders/_coupon_code.html.erb +0 -22
  185. data/app/views/spree/components/orders/_line_items.html.erb +0 -55
  186. data/app/views/spree/components/orders/_order_details.html.erb +0 -35
  187. data/app/views/spree/components/orders/_order_item.html.erb +0 -33
  188. data/app/views/spree/components/orders/_order_items.html.erb +0 -5
  189. data/app/views/spree/components/orders/_order_shipments.html.erb +0 -25
  190. data/app/views/spree/components/orders/_payment_info.html.erb +0 -31
  191. data/app/views/spree/components/presentation/_hero.html.erb +0 -14
  192. data/app/views/spree/components/products/_product-card.html.erb +0 -36
  193. data/app/views/spree/components/products/_product_availability.html.erb +0 -19
  194. data/app/views/spree/components/products/_product_form.html.erb +0 -21
  195. data/app/views/spree/components/products/_product_image.html.erb +0 -6
  196. data/app/views/spree/components/products/_product_info.html.erb +0 -9
  197. data/app/views/spree/components/products/_product_promotions.html.erb +0 -25
  198. data/app/views/spree/components/products/_product_properties.html.erb +0 -19
  199. data/app/views/spree/components/products/_product_submit.html.erb +0 -39
  200. data/app/views/spree/components/products/_product_taxons.html.erb +0 -15
  201. data/app/views/spree/components/products/_product_thumbnails.html.erb +0 -19
  202. data/app/views/spree/components/products/_product_variants.html.erb +0 -36
  203. data/app/views/spree/components/products/_products-grid.html.erb +0 -13
  204. data/app/views/spree/components/products/_products.html.erb +0 -28
  205. data/app/views/spree/components/products/_products_by_taxon.html.erb +0 -7
  206. data/app/views/spree/components/products/_variants_list.html.erb +0 -12
  207. data/app/views/spree/components/search/_filter.html.erb +0 -42
  208. data/app/views/spree/components/search/_filters.html.erb +0 -20
  209. data/app/views/spree/components/search/_form.html.erb +0 -12
  210. data/app/views/spree/components/search/_products_search.html.erb +0 -36
  211. data/app/views/spree/components/search/_search_bar.html.erb +0 -36
  212. data/app/views/spree/components/typography/_hero_title.html.erb +0 -11
  213. data/app/views/spree/components/typography/_subtitle.html.erb +0 -11
  214. data/app/views/spree/home/index.html.erb +0 -7
  215. data/app/views/spree/layouts/spree_application.html.erb +0 -27
  216. data/app/views/spree/orders/edit.html.erb +0 -21
  217. data/app/views/spree/orders/show.html.erb +0 -29
  218. data/app/views/spree/products/index.html.erb +0 -22
  219. data/app/views/spree/products/show.html.erb +0 -18
  220. data/app/views/spree/shared/_image.html.erb +0 -12
  221. data/app/views/spree/shared/_link_to_cart.html.erb +0 -1
  222. data/app/views/spree/shared/_login_bar_items.html.erb +0 -1
  223. data/app/views/spree/shared/_shipment_tracking.html.erb +0 -11
  224. data/app/views/spree/shared/unauthorized.html.erb +0 -0
  225. data/app/views/spree/taxons/show.html.erb +0 -17
  226. data/bin/console +0 -17
  227. data/bin/r +0 -13
  228. data/bin/rails +0 -7
  229. data/bin/rake +0 -7
  230. data/bin/rspec +0 -29
  231. data/bin/sandbox +0 -84
  232. data/bin/sandbox_rails +0 -18
  233. data/bin/setup +0 -8
  234. data/bin/solidus_compare +0 -155
  235. data/config/initializers/assets.rb +0 -1
  236. data/config/initializers/canonical_rails.rb +0 -16
  237. data/config/locales/en.yml +0 -5
  238. data/config/routes.rb +0 -33
  239. data/config/solidus_compare.yml +0 -33
  240. data/docs/development.md +0 -28
  241. data/exe/solidus_starter_frontend +0 -9
  242. data/lib/generators/solidus_starter_frontend/install/install_generator.rb +0 -15
  243. data/lib/generators/solidus_starter_frontend/solidus_starter_frontend_generator.rb +0 -30
  244. data/lib/generators/solidus_starter_frontend/views/override_generator.rb +0 -50
  245. data/lib/solidus_starter_frontend/config.rb +0 -7
  246. data/lib/solidus_starter_frontend/engine.rb +0 -34
  247. data/lib/solidus_starter_frontend/factories.rb +0 -4
  248. data/lib/solidus_starter_frontend/solidus_support_extensions.rb +0 -9
  249. data/lib/solidus_starter_frontend/version.rb +0 -5
  250. data/lib/solidus_starter_frontend.rb +0 -12
  251. data/lib/solidus_starter_frontend_configuration.rb +0 -8
  252. data/lib/views/auth/spree/checkout/registration.html.erb +0 -7
  253. data/lib/views/auth/spree/components/navigation/_auth_link.html.erb +0 -5
  254. data/lib/views/auth/spree/user_passwords/edit.html.erb +0 -7
  255. data/lib/views/auth/spree/user_passwords/new.html.erb +0 -5
  256. data/lib/views/auth/spree/user_registrations/new.html.erb +0 -7
  257. data/lib/views/auth/spree/user_sessions/guest.html.erb +0 -5
  258. data/lib/views/auth/spree/user_sessions/new.html.erb +0 -7
  259. data/lib/views/auth/spree/users/edit.html.erb +0 -45
  260. data/lib/views/auth/spree/users/show.html.erb +0 -55
  261. data/solidus_starter_frontend.gemspec +0 -43
  262. data/spec/controllers/controller_helpers_spec.rb +0 -29
  263. data/spec/controllers/locale_controller_spec.rb +0 -57
  264. data/spec/controllers/spree/checkout_controller_spec.rb +0 -563
  265. data/spec/controllers/spree/checkout_controller_with_views_spec.rb +0 -37
  266. data/spec/controllers/spree/current_order_tracking_spec.rb +0 -33
  267. data/spec/controllers/spree/home_controller_spec.rb +0 -29
  268. data/spec/controllers/spree/orders_controller_ability_spec.rb +0 -90
  269. data/spec/controllers/spree/orders_controller_spec.rb +0 -241
  270. data/spec/controllers/spree/orders_controller_transitions_spec.rb +0 -33
  271. data/spec/controllers/spree/products_controller_spec.rb +0 -38
  272. data/spec/controllers/spree/taxons_controller_spec.rb +0 -14
  273. data/spec/fixtures/thinking-cat.jpg +0 -0
  274. data/spec/generators/solidus/views/override_generator_spec.rb +0 -50
  275. data/spec/helpers/base_helper_spec.rb +0 -13
  276. data/spec/helpers/order_helper_spec.rb +0 -14
  277. data/spec/helpers/taxon_filters_helper_spec.rb +0 -12
  278. data/spec/spec_helper.rb +0 -64
  279. data/spec/support/shared_contexts/checkout_setup.rb +0 -12
  280. data/spec/support/shared_contexts/custom_products.rb +0 -28
  281. data/spec/support/shared_contexts/locales.rb +0 -16
  282. data/spec/system/address_spec.rb +0 -87
  283. data/spec/system/automatic_promotion_adjustments_spec.rb +0 -49
  284. data/spec/system/caching/products_spec.rb +0 -48
  285. data/spec/system/caching/taxons_spec.rb +0 -35
  286. data/spec/system/cart_spec.rb +0 -81
  287. data/spec/system/checkout_confirm_insufficient_stock_spec.rb +0 -71
  288. data/spec/system/checkout_spec.rb +0 -699
  289. data/spec/system/checkout_unshippable_spec.rb +0 -37
  290. data/spec/system/coupon_code_spec.rb +0 -267
  291. data/spec/system/currency_spec.rb +0 -20
  292. data/spec/system/first_order_promotion_spec.rb +0 -59
  293. data/spec/system/free_shipping_promotions_spec.rb +0 -60
  294. data/spec/system/locale_spec.rb +0 -26
  295. data/spec/system/order_spec.rb +0 -57
  296. data/spec/system/products_spec.rb +0 -302
  297. data/spec/system/promotion_code_invalidation_spec.rb +0 -54
  298. data/spec/system/quantity_promotions_spec.rb +0 -130
  299. data/spec/system/taxons_spec.rb +0 -158
  300. data/spec/system/template_rendering_spec.rb +0 -20
  301. data/spec/views/spree/checkout/_summary_spec.rb +0 -11
@@ -1,699 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe 'Checkout', type: :system, inaccessible: true do
6
- include_context 'checkout setup'
7
-
8
- context "visitor makes checkout as guest without registration" do
9
- before(:each) do
10
- stock_location.stock_items.update_all(count_on_hand: 1)
11
- end
12
-
13
- context "defaults to use billing address" do
14
- before do
15
- add_mug_to_cart
16
- Spree::Order.last.update_column(:email, "test@example.com")
17
- click_button "Checkout"
18
- end
19
-
20
- it 'should default checkbox to checked', js: true, inaccessible: true do
21
- expect(find('input#order_use_billing')).to be_checked
22
- end
23
-
24
- it "should remain checked when used and visitor steps back to address step", js: true do
25
- fill_in_address
26
- expect(find('input#order_use_billing')).to be_checked
27
- end
28
- end
29
-
30
- # Regression test for https://github.com/spree/spree/issues/4079
31
- context "persists state when on address page" do
32
- before do
33
- add_mug_to_cart
34
- click_button "Checkout"
35
- end
36
-
37
- it 'goes to address state', js: true do
38
- expect(Spree::Order.count).to eq(1)
39
- expect(Spree::Order.last.state).to eq("address")
40
- end
41
- end
42
-
43
- # Regression test for https://github.com/spree/spree/issues/1596
44
- context "full checkout" do
45
- before do
46
- shipping_method.calculator.update!(preferred_amount: 10)
47
- mug.shipping_category = shipping_method.shipping_categories.first
48
- mug.save!
49
- end
50
-
51
- it "does not break the per-item shipping method calculator", js: true do
52
- add_mug_to_cart
53
- click_button "Checkout"
54
-
55
- fill_in "order_email", with: "test@example.com"
56
- fill_in_address
57
-
58
- click_button "Save and Continue"
59
- expect(page).not_to have_content("undefined method `promotion'")
60
- click_button "Save and Continue"
61
- expect(page).to have_content("Shipping total:\n$10.00")
62
- end
63
- end
64
-
65
- # Regression test for https://github.com/spree/spree/issues/4306
66
- context "free shipping" do
67
- before do
68
- add_mug_to_cart
69
- click_button "Checkout"
70
- end
71
-
72
- it "should not show 'Free Shipping' when there are no shipments", js: true do
73
- within("#checkout-summary") do
74
- expect(page).to_not have_content('Free Shipping')
75
- end
76
- end
77
- end
78
- end
79
-
80
- context "displays default user addresses on address step" do
81
- before do
82
- stock_location.stock_items.update_all(count_on_hand: 1)
83
- end
84
-
85
- context "when user is logged in" do
86
- let!(:user) do
87
- create(:user, bill_address: saved_bill_address, ship_address: saved_ship_address)
88
- end
89
-
90
- let!(:order) do
91
- order = Spree::Order.create!(
92
- email: "spree@example.com",
93
- store: Spree::Store.first || FactoryBot.create(:store)
94
- )
95
-
96
- order.reload
97
- order.user = user
98
- order.recalculate
99
- order
100
- end
101
-
102
- before do
103
- allow_any_instance_of(Spree::CheckoutController).to receive_messages(current_order: order)
104
- allow_any_instance_of(Spree::CheckoutController).to receive_messages(try_spree_current_user: user)
105
- allow_any_instance_of(Spree::OrdersController).to receive_messages(try_spree_current_user: user)
106
-
107
- add_mug_to_cart
108
- click_button "Checkout"
109
- # We need an order reload here to get newly associated addresses.
110
- # Then we go back to address where we are supposed to be redirected.
111
- order.reload
112
- visit spree.checkout_state_path(:address)
113
- end
114
-
115
- context "when user has default addresses saved" do
116
- let(:saved_bill_address) { create(:address, firstname: 'Bill') }
117
- let(:saved_ship_address) { create(:address, firstname: 'Steve') }
118
-
119
- it 'shows the saved addresses', js: true do
120
- within("#billing") do
121
- expect(find_field('First Name').value).to eq 'Bill'
122
- end
123
-
124
- within("#shipping") do
125
- expect(find_field('First Name').value).to eq 'Steve'
126
- end
127
- end
128
- end
129
-
130
- context "when user does not have default addresses saved" do
131
- let(:saved_bill_address) { nil }
132
- let(:saved_ship_address) { nil }
133
-
134
- it 'shows an empty address', js: true do
135
- within("#billing") do
136
- expect(find_field('First Name').value).to be_blank
137
- end
138
-
139
- within("#shipping") do
140
- expect(find('input[name*="firstname"]', visible: :hidden).value).to be_blank
141
- end
142
- end
143
- end
144
- end
145
-
146
- context "when user is not logged in" do
147
- context "and proceeds with guest checkout" do
148
- it 'shows empty addresses', js: true do
149
- add_mug_to_cart
150
- click_button "Checkout"
151
-
152
- within("#billing") do
153
- expect(find_field('First Name').value).to be_blank
154
- end
155
-
156
- within("#shipping") do
157
- expect(find('input[name*="firstname"]', visible: :hidden).value).to be_blank
158
- end
159
- end
160
- end
161
-
162
- context "and proceeds logging in" do
163
- let!(:user) do
164
- create(:user, bill_address: saved_bill_address, ship_address: saved_ship_address)
165
- end
166
-
167
- before do
168
- add_mug_to_cart
169
- click_button "Checkout"
170
-
171
- # Simulate user login
172
- Spree::Order.last.associate_user!(user)
173
- allow_any_instance_of(Spree::CheckoutController).to receive_messages(try_spree_current_user: user)
174
- allow_any_instance_of(Spree::OrdersController).to receive_messages(try_spree_current_user: user)
175
-
176
- # Simulate redirect back to address after login
177
- visit spree.checkout_state_path(:address)
178
- end
179
-
180
- context "when does not have saved addresses" do
181
- let(:saved_bill_address) { nil }
182
- let(:saved_ship_address) { nil }
183
-
184
- it 'shows empty addresses', js: true do
185
- within("#billing") do
186
- expect(find_field('First Name').value).to be_blank
187
- end
188
-
189
- within("#shipping") do
190
- expect(find('input[name*="firstname"]', visible: :hidden).value).to be_blank
191
- end
192
- end
193
- end
194
-
195
- # Regression test for https://github.com/solidusio/solidus/issues/1811
196
- context "when does have saved addresses" do
197
- let(:saved_bill_address) { create(:address, firstname: 'Bill') }
198
- let(:saved_ship_address) { create(:address, firstname: 'Steve') }
199
-
200
- it 'shows empty addresses', js: true do
201
- within("#billing") do
202
- expect(find_field('First Name').value).to eq 'Bill'
203
- end
204
-
205
- within("#shipping") do
206
- expect(find_field('First Name').value).to eq 'Steve'
207
- end
208
- end
209
- end
210
- end
211
- end
212
- end
213
-
214
- context "when order has only a void payment" do
215
- let(:order) { Spree::TestingSupport::OrderWalkthrough.up_to(:payment) }
216
-
217
- before do
218
- user = create(:user)
219
- order.user = user
220
- order.recalculate
221
-
222
- allow_any_instance_of(Spree::CheckoutController).to receive_messages(current_order: order)
223
- allow_any_instance_of(Spree::CheckoutController).to receive_messages(try_spree_current_user: user)
224
- end
225
-
226
- it "does not allow successful order submission" do
227
- visit spree.checkout_path
228
- order.payments.first.update state: :void
229
- click_button 'Place Order'
230
- expect(page).to have_current_path spree.checkout_state_path(:payment)
231
- end
232
- end
233
-
234
- # Regression test for https://github.com/spree/spree/issues/2694 and https://github.com/spree/spree/issues/4117
235
- context "doesn't allow bad credit card numbers" do
236
- let!(:payment_method) { create(:credit_card_payment_method) }
237
- before(:each) do
238
- order = Spree::TestingSupport::OrderWalkthrough.up_to(:delivery)
239
-
240
- user = create(:user)
241
- order.user = user
242
- order.recalculate
243
-
244
- allow_any_instance_of(Spree::CheckoutController).to receive_messages(current_order: order)
245
- allow_any_instance_of(Spree::CheckoutController).to receive_messages(try_spree_current_user: user)
246
- end
247
-
248
- it "redirects to payment page", inaccessible: true do
249
- visit spree.checkout_state_path(:delivery)
250
- click_button "Save and Continue"
251
- choose "Credit Card"
252
- fill_in "Card Number", with: '123'
253
- fill_in "Expiration", with: '04 / 20'
254
- fill_in "Card Code", with: '123'
255
- click_button "Save and Continue"
256
- click_button "Place Order"
257
- expect(page).to have_content("Bogus Gateway: Forced failure")
258
- expect(page.current_url).to include("/checkout/payment")
259
- end
260
- end
261
-
262
- context "and likes to double click buttons" do
263
- let!(:user) { create(:user) }
264
-
265
- let!(:order) do
266
- order = Spree::TestingSupport::OrderWalkthrough.up_to(:delivery)
267
-
268
- order.reload
269
- order.user = user
270
- order.recalculate
271
- order
272
- end
273
-
274
- before(:each) do
275
- allow_any_instance_of(Spree::CheckoutController).to receive_messages(current_order: order)
276
- allow_any_instance_of(Spree::CheckoutController).to receive_messages(try_spree_current_user: user)
277
- allow_any_instance_of(Spree::CheckoutController).to receive_messages(skip_state_validation?: true)
278
- end
279
-
280
- it "prevents double clicking the payment button on checkout", js: true do
281
- visit spree.checkout_state_path(:payment)
282
-
283
- # prevent form submit to verify button is disabled
284
- page.execute_script("$('#checkout_form_payment').submit(function(){return false;})")
285
-
286
- expect(page).not_to have_selector('button[disabled]')
287
- click_button "Save and Continue"
288
- expect(page).to have_selector('button[disabled]')
289
- end
290
-
291
- it "prevents double clicking the confirm button on checkout", js: true do
292
- order.payments << create(:payment)
293
- visit spree.checkout_state_path(:confirm)
294
-
295
- # prevent form submit to verify button is disabled
296
- page.execute_script("$('#checkout_form_confirm').submit(function(){return false;})")
297
-
298
- expect(page).not_to have_selector('button.button-primary[disabled]')
299
- click_button "Place Order"
300
- expect(page).to have_selector('button.button-primary[disabled]')
301
- end
302
- end
303
-
304
- context "when several payment methods are available" do
305
- let(:credit_cart_payment) { create(:credit_card_payment_method) }
306
- let(:check_payment) { create(:check_payment_method) }
307
-
308
- after do
309
- Capybara.ignore_hidden_elements = true
310
- end
311
-
312
- before do
313
- Capybara.ignore_hidden_elements = false
314
- order = Spree::TestingSupport::OrderWalkthrough.up_to(:delivery)
315
- allow(order).to receive_messages(available_payment_methods: [check_payment, credit_cart_payment])
316
- order.user = create(:user)
317
- order.recalculate
318
-
319
- allow_any_instance_of(Spree::CheckoutController).to receive_messages(current_order: order)
320
- allow_any_instance_of(Spree::CheckoutController).to receive_messages(try_spree_current_user: order.user)
321
-
322
- visit spree.checkout_state_path(:payment)
323
- end
324
-
325
- it "the first payment method should be selected", js: true do
326
- payment_method_css = "#order_payments_attributes__payment_method_id_"
327
- expect(find("#{payment_method_css}#{check_payment.id}")).to be_checked
328
- expect(find("#{payment_method_css}#{credit_cart_payment.id}")).not_to be_checked
329
- end
330
-
331
- it "the fields for the other payment methods should be hidden", js: true do
332
- payment_method_css = "#payment_method_"
333
- expect(find("#{payment_method_css}#{check_payment.id}")).to be_visible
334
- expect(find("#{payment_method_css}#{credit_cart_payment.id}")).not_to be_visible
335
- end
336
- end
337
-
338
- context "user has payment sources", js: true do
339
- before { Spree::PaymentMethod.all.each(&:really_destroy!) }
340
- let!(:bogus) { create(:credit_card_payment_method) }
341
- let(:user) { create(:user) }
342
-
343
- let!(:credit_card) do
344
- create(:credit_card, user_id: user.id, payment_method: bogus, gateway_customer_profile_id: "BGS-WEFWF")
345
- end
346
-
347
- before do
348
- user.wallet.add(credit_card)
349
- order = Spree::TestingSupport::OrderWalkthrough.up_to(:delivery)
350
-
351
- allow_any_instance_of(Spree::CheckoutController).to receive_messages(current_order: order)
352
- allow_any_instance_of(Spree::CheckoutController).to receive_messages(try_spree_current_user: user)
353
- allow_any_instance_of(Spree::OrdersController).to receive_messages(try_spree_current_user: user)
354
-
355
- visit spree.checkout_state_path(:payment)
356
- end
357
-
358
- it "selects first source available and customer moves on" do
359
- expect(find("#use_existing_card_yes")).to be_checked
360
-
361
- click_on "Save and Continue"
362
- click_on "Place Order"
363
- expect(page).to have_current_path(spree.order_path(Spree::Order.last))
364
- expect(page).to have_current_path(spree.order_path(Spree::Order.last))
365
- expect(page).to have_content("Ending in #{credit_card.last_digits}")
366
- end
367
-
368
- it "allows user to enter a new source" do
369
- choose "use_existing_card_no"
370
- fill_in_credit_card
371
-
372
- click_on "Save and Continue"
373
- click_on "Place Order"
374
- expect(page).to have_current_path(spree.order_path(Spree::Order.last))
375
- expect(page).to have_content('Ending in 1111')
376
- end
377
- end
378
-
379
- # regression for https://github.com/spree/spree/issues/2921
380
- context "goes back from payment to add another item", js: true do
381
- let!(:store) { FactoryBot.create(:store) }
382
- let!(:bag) { create(:product, name: "RoR Bag") }
383
-
384
- it "transit nicely through checkout steps again" do
385
- add_mug_to_cart
386
- click_on "Checkout"
387
- fill_in "order_email", with: "test@example.com"
388
- fill_in_address
389
- click_on "Save and Continue"
390
- click_on "Save and Continue"
391
- expect(page).to have_current_path(spree.checkout_state_path("payment"))
392
-
393
- visit spree.root_path
394
- click_link bag.name
395
- click_button "add-to-cart-button"
396
-
397
- click_on "Checkout"
398
- # edit an address field
399
- fill_in "order_bill_address_attributes_firstname", with: "Ryann"
400
- click_on "Save and Continue"
401
- click_on "Save and Continue"
402
- click_on "Save and Continue"
403
- click_on "Place Order"
404
-
405
- expect(page).to have_current_path(spree.order_path(Spree::Order.last))
406
- end
407
- end
408
-
409
- context "from payment step customer goes back to cart", js: true do
410
- before do
411
- add_mug_to_cart
412
- click_on "Checkout"
413
- fill_in "order_email", with: "test@example.com"
414
- fill_in_address
415
- click_on "Save and Continue"
416
- click_on "Save and Continue"
417
- expect(page).to have_current_path(spree.checkout_state_path("payment"))
418
- end
419
-
420
- context "and updates line item quantity and try to reach payment page" do
421
- before do
422
- visit spree.cart_path
423
- within '.cart-item__quantity' do
424
- fill_in first("input")["name"], with: 3
425
- end
426
-
427
- click_on "Update"
428
- end
429
-
430
- it "redirects user back to address step" do
431
- visit spree.checkout_state_path("payment")
432
- expect(page).to have_current_path(spree.checkout_state_path("address"))
433
- end
434
-
435
- it "updates shipments properly through step address -> delivery transitions" do
436
- visit spree.checkout_state_path("payment")
437
- click_on "Save and Continue"
438
- click_on "Save and Continue"
439
-
440
- expect(Spree::InventoryUnit.count).to eq 3
441
- end
442
- end
443
-
444
- context "and adds new product to cart and try to reach payment page" do
445
- let!(:bag) { create(:product, name: "RoR Bag") }
446
-
447
- before do
448
- visit spree.root_path
449
- click_link bag.name
450
- click_button "add-to-cart-button"
451
- end
452
-
453
- it "redirects user back to address step" do
454
- visit spree.checkout_state_path("payment")
455
- expect(page).to have_current_path(spree.checkout_state_path("address"))
456
- end
457
-
458
- it "updates shipments properly through step address -> delivery transitions" do
459
- visit spree.checkout_state_path("payment")
460
- click_on "Save and Continue"
461
- click_on "Save and Continue"
462
-
463
- expect(Spree::InventoryUnit.count).to eq 2
464
- end
465
- end
466
- end
467
-
468
- context "Coupon promotions", js: true do
469
- let!(:promotion) { create(:promotion, name: "Huhuhu", code: "huhu") }
470
- let!(:calculator) { Spree::Calculator::FlatPercentItemTotal.create(preferred_flat_percent: "10") }
471
- let!(:action) { Spree::Promotion::Actions::CreateItemAdjustments.create(calculator: calculator) }
472
-
473
- before do
474
- promotion.actions << action
475
-
476
- add_mug_to_cart
477
- click_on "Checkout"
478
-
479
- fill_in "order_email", with: "test@example.com"
480
- fill_in_address
481
- click_on "Save and Continue"
482
-
483
- click_on "Save and Continue"
484
- expect(page).to have_current_path(spree.checkout_state_path("payment"))
485
- end
486
-
487
- it "applies them & refreshes the page on user clicking the Apply Code button" do
488
- fill_in "order_coupon_code", with: promotion.codes.first.value
489
- click_on "Apply Code"
490
-
491
- expect(page).to have_content(promotion.name)
492
- expect(page).to have_content("-$2.00")
493
- end
494
-
495
- context "with invalid coupon" do
496
- it "doesnt apply the promotion" do
497
- fill_in "order_coupon_code", with: 'invalid'
498
- click_on "Apply Code"
499
-
500
- expect(page).to have_content(I18n.t('spree.coupon_code_not_found'))
501
- end
502
- end
503
-
504
- context "doesn't fill in coupon code input" do
505
- it "advances just fine" do
506
- click_on "Save and Continue"
507
- expect(page).to have_current_path(spree.checkout_state_path("confirm"))
508
- end
509
- end
510
- end
511
-
512
- context "order has only payment step", js: true do
513
- before do
514
- create(:credit_card_payment_method)
515
- @old_checkout_flow = Spree::Order.checkout_flow
516
- Spree::Order.class_eval do
517
- checkout_flow do
518
- go_to_state :payment
519
- go_to_state :confirm
520
- end
521
- end
522
-
523
- allow_any_instance_of(Spree::Order).to receive_messages email: "spree@commerce.com"
524
-
525
- add_mug_to_cart
526
- click_on "Checkout"
527
- end
528
-
529
- after do
530
- Spree::Order.checkout_flow(&@old_checkout_flow)
531
- end
532
-
533
- it "goes right payment step and place order just fine" do
534
- expect(page).to have_current_path(spree.checkout_state_path('payment'))
535
-
536
- choose "Credit Card"
537
- fill_in_credit_card
538
- click_button "Save and Continue"
539
-
540
- expect(current_path).to eq spree.checkout_state_path('confirm')
541
- click_button "Place Order"
542
- end
543
- end
544
-
545
- context "save my address" do
546
- before do
547
- stock_location.stock_items.update_all(count_on_hand: 1)
548
- add_mug_to_cart
549
- end
550
-
551
- context 'as a guest' do
552
- before do
553
- Spree::Order.last.update_column(:email, "test@example.com")
554
- click_button "Checkout"
555
- end
556
-
557
- it 'should not be displayed', js: true do
558
- expect(page).to_not have_css("[data-hook=save_user_address]")
559
- end
560
- end
561
-
562
- context 'as a User' do
563
- before do
564
- user = create(:user)
565
- Spree::Order.last.update_column :user_id, user.id
566
- allow_any_instance_of(Spree::OrdersController).to receive_messages(try_spree_current_user: user)
567
- allow_any_instance_of(Spree::CheckoutController).to receive_messages(try_spree_current_user: user)
568
- click_button "Checkout"
569
- end
570
-
571
- it 'should be displayed', js: true do
572
- expect(page).to have_css('#save-user-address')
573
- end
574
- end
575
- end
576
-
577
- context "when order is completed" do
578
- let!(:user) { create(:user) }
579
- let!(:order) { Spree::TestingSupport::OrderWalkthrough.up_to(:delivery) }
580
-
581
- before(:each) do
582
- allow_any_instance_of(Spree::CheckoutController).to receive_messages(current_order: order)
583
- allow_any_instance_of(Spree::CheckoutController).to receive_messages(try_spree_current_user: user)
584
- allow_any_instance_of(Spree::OrdersController).to receive_messages(try_spree_current_user: user)
585
-
586
- visit spree.checkout_state_path(:delivery)
587
- click_button "Save and Continue"
588
- click_button "Save and Continue"
589
- click_button "Place Order"
590
- end
591
-
592
- it "displays a thank you message" do
593
- expect(page).to have_content(I18n.t('spree.thank_you_for_your_order'), normalize_ws: true)
594
- end
595
-
596
- it "does not display a thank you message on that order future visits" do
597
- visit spree.order_path(order)
598
- expect(page).to_not have_content(I18n.t('spree.thank_you_for_your_order'))
599
- end
600
- end
601
-
602
- context "with attempted XSS", js: true do
603
- shared_examples "safe from XSS" do
604
- # We need a country with states required but no states so that we have
605
- # access to the state_name input
606
- let!(:canada) { create(:country, name: 'Canada', iso: "CA", states_required: true) }
607
- before do
608
- canada.states.destroy_all
609
- zone.members.create!(zoneable: canada)
610
- end
611
-
612
- it "displays the entered state name without evaluating" do
613
- add_mug_to_cart
614
- visit spree.checkout_state_path(:address)
615
- fill_in_address
616
-
617
- state_name_css = "order_bill_address_attributes_state_name"
618
-
619
- select "Canada", from: "order_bill_address_attributes_country_id"
620
- fill_in 'Customer E-Mail', with: 'test@example.com'
621
- fill_in state_name_css, with: xss_string
622
- fill_in "Zip", with: "H0H0H0"
623
-
624
- click_on 'Save and Continue'
625
- visit spree.checkout_state_path(:address)
626
-
627
- expect(page).to have_field(state_name_css, with: xss_string)
628
- end
629
- end
630
-
631
- let(:xss_string) { %(<script>throw("XSS")</script>) }
632
- include_examples "safe from XSS"
633
-
634
- context "escaped XSS string" do
635
- let(:xss_string) { '\x27\x3e\x3cscript\x3ethrow(\x27XSS\x27)\x3c/script\x3e' }
636
- include_examples "safe from XSS"
637
- end
638
- end
639
-
640
- context "using credit card" do
641
- let!(:payment_method) { create(:credit_card_payment_method) }
642
-
643
- # Regression test for https://github.com/solidusio/solidus/issues/1421
644
- it "works with card number 1", js: true do
645
- add_mug_to_cart
646
-
647
- click_on "Checkout"
648
- fill_in "order_email", with: "test@example.com"
649
- fill_in_address
650
- click_on "Save and Continue"
651
- click_on "Save and Continue"
652
-
653
- fill_in_credit_card(number: "1")
654
- click_on "Save and Continue"
655
-
656
- expect(page).to have_current_path("/checkout/confirm")
657
- end
658
-
659
- it "works with card number 4111111111111111", js: true do
660
- add_mug_to_cart
661
-
662
- click_on "Checkout"
663
- fill_in "order_email", with: "test@example.com"
664
- fill_in_address
665
- click_on "Save and Continue"
666
- click_on "Save and Continue"
667
-
668
- fill_in_credit_card
669
- click_on "Save and Continue"
670
-
671
- expect(page).to have_current_path("/checkout/confirm")
672
- end
673
- end
674
-
675
- def fill_in_credit_card(number: "4111 1111 1111 1111")
676
- fill_in "Name on card", with: 'Mary Doe'
677
- fill_in_with_force "Card Number", with: number
678
- fill_in_with_force "Expiration", with: "12 / 24"
679
- fill_in "Card Code", with: "123"
680
- end
681
-
682
- def fill_in_address
683
- address = "order_bill_address_attributes"
684
- fill_in "#{address}_firstname", with: "Ryan"
685
- fill_in "#{address}_lastname", with: "Bigg"
686
- fill_in "#{address}_address1", with: "143 Swan Street"
687
- fill_in "#{address}_city", with: "Richmond"
688
- select "United States of America", from: "#{address}_country_id"
689
- select "Alabama", from: "#{address}_state_id"
690
- fill_in "#{address}_zipcode", with: "12345"
691
- fill_in "#{address}_phone", with: "(555) 555-5555"
692
- end
693
-
694
- def add_mug_to_cart
695
- visit spree.root_path
696
- click_link mug.name
697
- click_button "add-to-cart-button"
698
- end
699
- end