solidus_starter_frontend 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.
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,90 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- module Spree
6
- describe OrdersController, type: :controller do
7
- ORDER_TOKEN = 'ORDER_TOKEN'
8
-
9
- let!(:store) { create(:store) }
10
- let(:order) { Spree::Order.create }
11
- let(:variant) { create(:variant) }
12
-
13
- it 'should understand order routes with token' do
14
- expect(spree.token_order_path('R123456', 'ABCDEF')).to eq('/orders/R123456/token/ABCDEF')
15
- end
16
-
17
- context 'when an order exists in the cookies.signed' do
18
- let(:token) { 'some_token' }
19
-
20
- before do
21
- allow(controller).to receive_messages current_order: order
22
- end
23
-
24
- context '#populate' do
25
- it 'should check if user is authorized for :update' do
26
- expect(controller).to receive(:authorize!).with(:update, order, token)
27
- post :populate, params: { variant_id: variant.id, token: token }
28
- end
29
- end
30
-
31
- context '#edit' do
32
- it 'should check if user is authorized for :read' do
33
- expect(controller).to receive(:authorize!).with(:read, order, token)
34
- get :edit, params: { token: token }
35
- end
36
- end
37
-
38
- context '#update' do
39
- it 'should check if user is authorized for :update' do
40
- allow(order).to receive :update
41
- expect(controller).to receive(:authorize!).with(:update, order, token)
42
- post :update, params: { order: { email: "foo@bar.com" }, token: token }
43
- end
44
- end
45
-
46
- context '#empty' do
47
- it 'should check if user is authorized for :update' do
48
- expect(controller).to receive(:authorize!).with(:update, order, token)
49
- post :empty, params: { token: token }
50
- end
51
- end
52
-
53
- context "#show" do
54
- let(:specified_order) { create(:order) }
55
-
56
- it "should check against the specified order" do
57
- expect(controller).to receive(:authorize!).with(:read, specified_order, token)
58
- get :show, params: { id: specified_order.number, token: token }
59
- end
60
- end
61
- end
62
-
63
- context 'when no authenticated user' do
64
- let(:order) { create(:order, number: 'R123') }
65
-
66
- context '#show' do
67
- context 'when token parameter present' do
68
- it 'always ooverride existing token when passing a new one' do
69
- cookies.signed[:guest_token] = "soo wrong"
70
- get :show, params: { id: 'R123', token: order.guest_token }
71
- expect(cookies.signed[:guest_token]).to eq(order.guest_token)
72
- end
73
-
74
- it 'should store as guest_token in session' do
75
- get :show, params: { id: 'R123', token: order.guest_token }
76
- expect(cookies.signed[:guest_token]).to eq(order.guest_token)
77
- end
78
- end
79
-
80
- context 'when no token present' do
81
- it 'should respond with 404' do
82
- expect {
83
- get :show, params: { id: 'R123' }
84
- }.to raise_error(ActiveRecord::RecordNotFound)
85
- end
86
- end
87
- end
88
- end
89
- end
90
- end
@@ -1,241 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Spree::OrdersController, type: :controller do
6
- let!(:store) { create(:store) }
7
- let(:user) { create(:user) }
8
-
9
- context "Order model mock" do
10
- let(:order) do
11
- Spree::Order.create!
12
- end
13
- let(:variant) { create(:variant) }
14
-
15
- before do
16
- allow(controller).to receive_messages(try_spree_current_user: user)
17
- end
18
-
19
- context "#populate" do
20
- it "should create a new order when none specified" do
21
- post :populate, params: { variant_id: variant.id }
22
- expect(response).to be_redirect
23
- expect(cookies.signed[:guest_token]).not_to be_blank
24
-
25
- order_by_token = Spree::Order.find_by(guest_token: cookies.signed[:guest_token])
26
- assigned_order = assigns[:order]
27
-
28
- expect(assigned_order).to eq order_by_token
29
- expect(assigned_order).to be_persisted
30
- end
31
-
32
- context "with Variant" do
33
- it "should handle population" do
34
- expect do
35
- post :populate, params: { variant_id: variant.id, quantity: 5 }
36
- end.to change { user.orders.count }.by(1)
37
- order = user.orders.last
38
- expect(response).to redirect_to spree.cart_path
39
- expect(order.line_items.size).to eq(1)
40
- line_item = order.line_items.first
41
- expect(line_item.variant_id).to eq(variant.id)
42
- expect(line_item.quantity).to eq(5)
43
- end
44
-
45
- it "shows an error when population fails" do
46
- request.env["HTTP_REFERER"] = spree.root_path
47
- allow_any_instance_of(Spree::LineItem).to(
48
- receive(:valid?).and_return(false)
49
- )
50
- allow_any_instance_of(Spree::LineItem).to(
51
- receive_message_chain(:errors, :full_messages).
52
- and_return(["Order population failed"])
53
- )
54
-
55
- post :populate, params: { variant_id: variant.id, quantity: 5 }
56
-
57
- expect(response).to redirect_to(spree.root_path)
58
- expect(flash[:error]).to eq("Order population failed")
59
- end
60
-
61
- it "shows an error when quantity is invalid" do
62
- request.env["HTTP_REFERER"] = spree.root_path
63
-
64
- post(
65
- :populate,
66
- params: { variant_id: variant.id, quantity: -1 }
67
- )
68
-
69
- expect(response).to redirect_to(spree.root_path)
70
- expect(flash[:error]).to eq(
71
- I18n.t('spree.please_enter_reasonable_quantity')
72
- )
73
- end
74
-
75
- context "when quantity is empty string" do
76
- it "should populate order with 1 of given variant" do
77
- expect do
78
- post :populate, params: { variant_id: variant.id, quantity: '' }
79
- end.to change { Spree::Order.count }.by(1)
80
- order = Spree::Order.last
81
- expect(response).to redirect_to spree.cart_path
82
- expect(order.line_items.size).to eq(1)
83
- line_item = order.line_items.first
84
- expect(line_item.variant_id).to eq(variant.id)
85
- expect(line_item.quantity).to eq(1)
86
- end
87
- end
88
-
89
- context "when quantity is nil" do
90
- it "should populate order with 1 of given variant" do
91
- expect do
92
- post :populate, params: { variant_id: variant.id, quantity: nil }
93
- end.to change { Spree::Order.count }.by(1)
94
- order = Spree::Order.last
95
- expect(response).to redirect_to spree.cart_path
96
- expect(order.line_items.size).to eq(1)
97
- line_item = order.line_items.first
98
- expect(line_item.variant_id).to eq(variant.id)
99
- expect(line_item.quantity).to eq(1)
100
- end
101
- end
102
- end
103
- end
104
-
105
- context '#edit' do
106
- before do
107
- allow(controller).to receive :authorize!
108
- allow(controller).to receive_messages current_order: order
109
- end
110
-
111
- it 'should render cart' do
112
- get :edit, params: { id: order.number }
113
-
114
- expect(flash[:error]).to be_nil
115
- expect(response).to be_ok
116
- end
117
-
118
- context 'with another order number than the current_order' do
119
- let(:other_order) { create(:completed_order_with_totals) }
120
-
121
- it 'should display error message' do
122
- get :edit, params: { id: other_order.number }
123
-
124
- expect(flash[:error]).to eq "You may only edit your current shopping cart."
125
- expect(response).to redirect_to cart_path
126
- end
127
- end
128
- end
129
-
130
- context "#update" do
131
- context "with authorization" do
132
- before do
133
- allow(controller).to receive :authorize!
134
- allow(controller).to receive_messages current_order: order
135
- end
136
-
137
- it "should render the edit view (on failure)" do
138
- # email validation is only after address state
139
- order.update_column(:state, "delivery")
140
- put :update, params: { order: { email: "" } }
141
- expect(response).to render_template :edit
142
- end
143
-
144
- it "should redirect to cart path (on success)" do
145
- allow(order).to receive(:update).and_return true
146
- put :update
147
- expect(response).to redirect_to(spree.cart_path)
148
- end
149
-
150
- it "should advance the order if :checkout button is pressed" do
151
- allow(order).to receive(:update).and_return true
152
- expect(order).to receive(:next)
153
- put :update, params: { checkout: true }
154
- expect(response).to redirect_to checkout_state_path('address')
155
- end
156
-
157
- context 'trying to apply a coupon code' do
158
- let(:order) { create(:order_with_line_items, state: 'cart') }
159
- let(:coupon_code) { "coupon_code" }
160
-
161
- context "when coupon code is empty" do
162
- let(:coupon_code) { "" }
163
-
164
- it 'does not try to apply coupon code' do
165
- expect(Spree::PromotionHandler::Coupon).not_to receive :new
166
-
167
- put :update, params: { state: order.state, order: { coupon_code: coupon_code } }
168
-
169
- expect(response).to redirect_to(spree.cart_path)
170
- end
171
- end
172
- end
173
- end
174
- end
175
-
176
- context "#empty" do
177
- before do
178
- allow(controller).to receive :authorize!
179
- end
180
-
181
- it "should destroy line items in the current order" do
182
- allow(controller).to receive(:current_order).and_return(order)
183
- expect(order).to receive(:empty!)
184
- put :empty
185
- expect(response).to redirect_to(spree.cart_path)
186
- end
187
- end
188
-
189
- # Regression test for https://github.com/spree/spree/issues/2750
190
- context "#update" do
191
- before do
192
- allow(user).to receive :last_incomplete_spree_order
193
- allow(controller).to receive :set_current_order
194
- end
195
-
196
- it "cannot update a blank order" do
197
- put :update, params: { order: { email: "foo" } }
198
- expect(flash[:error]).to eq(I18n.t('spree.order_not_found'))
199
- expect(response).to redirect_to(spree.root_path)
200
- end
201
- end
202
- end
203
-
204
- context "line items quantity is 0" do
205
- let(:order) { Spree::Order.create(store: store) }
206
- let(:variant) { create(:variant) }
207
- let!(:line_item) { order.contents.add(variant, 1) }
208
-
209
- before do
210
- allow(controller).to receive :authorize!
211
- allow(controller).to receive_messages(current_order: order)
212
- end
213
-
214
- it "removes line items on update" do
215
- expect(order.line_items.count).to eq 1
216
- put :update, params: { order: { line_items_attributes: { "0" => { id: line_item.id, quantity: 0 } } } }
217
- expect(order.reload.line_items.count).to eq 0
218
- end
219
- end
220
-
221
- describe '#edit' do
222
- subject { get :edit }
223
- let(:user) { build :user }
224
-
225
- it "builds a new valid order with complete meta-data" do
226
- allow(controller).to receive_messages(try_spree_current_user: user)
227
-
228
- subject
229
-
230
- order = controller.instance_variable_get(:@order)
231
-
232
- aggregate_failures do
233
- expect(order).to be_valid
234
- expect(order).not_to be_persisted
235
- expect(order.store).to be_present
236
- expect(order.user).to eq(user)
237
- expect(order.created_by).to eq(user)
238
- end
239
- end
240
- end
241
- end
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- Spree::Order.class_eval do
6
- attr_accessor :did_transition
7
- end
8
-
9
- module Spree
10
- describe OrdersController, type: :controller do
11
- # Regression test for https://github.com/spree/spree/issues/2004
12
- context "with a transition callback on first state" do
13
- let(:order) { Spree::Order.new }
14
-
15
- before do
16
- allow(controller).to receive_messages current_order: order
17
- expect(controller).to receive(:authorize!).at_least(:once).and_return(true)
18
-
19
- first_state, = Spree::Order.checkout_steps.first
20
- Spree::Order.state_machine.after_transition to: first_state do |order|
21
- order.did_transition = true
22
- end
23
- end
24
-
25
- it "correctly calls the transition callback" do
26
- expect(order.did_transition).to be_nil
27
- order.line_items << FactoryBot.create(:line_item)
28
- put :update, params: { checkout: "checkout" }
29
- expect(order.did_transition).to be true
30
- end
31
- end
32
- end
33
- end
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Spree::ProductsController, type: :controller do
6
- let!(:product) { create(:product, available_on: 1.year.from_now) }
7
-
8
- # Regression test for https://github.com/spree/spree/issues/1390
9
- it "allows admins to view non-active products" do
10
- allow(controller).to receive_messages try_spree_current_user: mock_model(Spree.user_class, has_spree_role?: true, last_incomplete_spree_order: nil, spree_api_key: 'fake')
11
- get :show, params: { id: product.to_param }
12
- expect(response.status).to eq(200)
13
- end
14
-
15
- it "cannot view non-active products" do
16
- expect {
17
- get :show, params: { id: product.to_param }
18
- }.to raise_error(ActiveRecord::RecordNotFound)
19
- end
20
-
21
- it "should provide the current user to the searcher class" do
22
- user = mock_model(Spree.user_class, last_incomplete_spree_order: nil, spree_api_key: 'fake')
23
- allow(controller).to receive_messages try_spree_current_user: user
24
- expect_any_instance_of(Spree::Config.searcher_class).to receive(:current_user=).with(user)
25
- get :index
26
- expect(response.status).to eq(200)
27
- end
28
-
29
- # Regression test for https://github.com/spree/spree/issues/2249
30
- it "doesn't error when given an invalid referer" do
31
- current_user = mock_model(Spree.user_class, has_spree_role?: true, last_incomplete_spree_order: nil, generate_spree_api_key!: nil)
32
- allow(controller).to receive_messages try_spree_current_user: current_user
33
- request.env['HTTP_REFERER'] = "not|a$url"
34
-
35
- # Previously a URI::InvalidURIError exception was being thrown
36
- get :show, params: { id: product.to_param }
37
- end
38
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe Spree::TaxonsController, type: :controller do
6
- it "should provide the current user to the searcher class" do
7
- taxon = create(:taxon, permalink: "test")
8
- user = mock_model(Spree.user_class, last_incomplete_spree_order: nil, spree_api_key: 'fake')
9
- allow(controller).to receive_messages try_spree_current_user: user
10
- expect_any_instance_of(Spree::Config.searcher_class).to receive(:current_user=).with(user)
11
- get :show, params: { id: taxon.permalink }
12
- expect(response.status).to eq(200)
13
- end
14
- end
Binary file
@@ -1,50 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
- require 'generator_spec'
5
- require 'generators/solidus_starter_frontend/views/override_generator'
6
-
7
- RSpec.describe SolidusStarterFrontend::Views::OverrideGenerator, type: :generator do
8
- destination Rails.root.join('app', 'views', 'spree')
9
-
10
- before(:all) do
11
- prepare_destination
12
- end
13
-
14
- subject! do
15
- run_generator arguments
16
- end
17
-
18
- let(:src) do
19
- ::SolidusStarterFrontend::Engine.root.join('app', 'views', 'spree')
20
- end
21
-
22
- let(:dest) do
23
- Rails.root.join('app', 'views', 'spree')
24
- end
25
-
26
- context 'without any arguments' do
27
- let(:arguments) { %w() }
28
-
29
- it 'copies all views into the host app' do
30
- expect(src.entries).to match_array(dest.entries)
31
- end
32
- end
33
-
34
- context 'when "products" is passed as --only argument' do
35
- let(:arguments) { %w(--only products) }
36
-
37
- context 'as folder' do
38
- it 'exclusively copies views whose name contains "products"' do
39
- Dir.glob(dest.join("**", "*")).each do |file|
40
- next if File.directory?(file)
41
- expect(file.to_s).to match("products")
42
- end
43
- end
44
- end
45
- end
46
-
47
- after do
48
- FileUtils.rm_rf destination_root
49
- end
50
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- module Spree
6
- describe BaseHelper, type: :helper do
7
- # Regression test for https://github.com/spree/spree/issues/2759
8
- it "nested_taxons_path works with a Taxon object" do
9
- taxon = create(:taxon, name: "iphone")
10
- expect(spree.nested_taxons_path(taxon)).to eq("/t/iphone")
11
- end
12
- end
13
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- module Spree
6
- describe Spree::OrdersHelper, type: :helper do
7
- # Regression test for https://github.com/spree/spree/issues/2518 and https://github.com/spree/spree/issues/2323
8
- it "truncates HTML correctly in product description" do
9
- product = double(description: "<strong>" + ("a" * 95) + "</strong> This content is invisible.")
10
- expected = "<strong>" + ("a" * 95) + "</strong>..."
11
- expect(truncated_product_description(product)).to eq(expected)
12
- end
13
- end
14
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe Spree::TaxonFiltersHelper, type: :helper do
6
- let(:taxon) { nil }
7
- subject { applicable_filters_for(taxon) }
8
-
9
- it "returns the price/brand filters" do
10
- expect(subject.map { |y| y[:name] }).to eq ['Brands', 'Price Range']
11
- end
12
- end
data/spec/spec_helper.rb DELETED
@@ -1,64 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Configure Rails Environment
4
- ENV['RAILS_ENV'] = 'test'
5
-
6
- # Run Coverage report
7
- require 'solidus_dev_support/rspec/coverage'
8
-
9
- require File.expand_path('dummy/config/environment.rb', __dir__)
10
-
11
- require 'rails-controller-testing'
12
- require 'rspec/active_model/mocks'
13
-
14
- # Requires factories and other useful helpers defined in spree_core.
15
- require 'solidus_dev_support/rspec/feature_helper'
16
- require 'spree/testing_support/caching'
17
- require 'spree/testing_support/order_walkthrough'
18
- require 'spree/testing_support/translations' unless Spree.solidus_gem_version < Gem::Version.new('2.11')
19
-
20
- # Requires supporting ruby files with custom matchers and macros, etc,
21
- # in spec/support/ and its subdirectories.
22
- Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
23
-
24
- # Requires factories defined in lib/solidus_starter_frontend/factories.rb
25
- require 'solidus_starter_frontend/factories'
26
-
27
- RSpec.configure do |config|
28
- config.infer_spec_type_from_file_location!
29
- config.use_transactional_fixtures = false
30
-
31
- if Spree.solidus_gem_version < Gem::Version.new('2.11')
32
- config.extend Spree::TestingSupport::AuthorizationHelpers::Request, type: :system
33
-
34
- config.after(:each, type: :system) do |example|
35
- missing_translations = page.body.scan(/translation missing: #{I18n.locale}\.(.*?)[\s<\"&]/)
36
- if missing_translations.any?
37
- puts "Found missing translations: #{missing_translations.inspect}\n"
38
- puts "In spec: #{example.location}"
39
- end
40
- end
41
- end
42
-
43
- if SolidusSupport.reset_spree_preferences_deprecated?
44
- config.before :suite do
45
- Spree::TestingSupport::Preferences.freeze_preferences(SolidusStarterFrontend::Config)
46
- end
47
- else
48
- config.before do
49
- SolidusStarterFrontend::Config.preference_store = SolidusStarterFrontend::Config.default_preferences
50
- end
51
- end
52
-
53
- config.before do
54
- Rails.cache.clear
55
- end
56
-
57
- config.before(:each, type: :system) do
58
- driven_by((ENV['CAPYBARA_DRIVER'] || :rack_test).to_sym)
59
- end
60
-
61
- config.before(:each, type: :system, js: true) do
62
- driven_by((ENV['CAPYBARA_JS_DRIVER'] || :apparition).to_sym)
63
- end
64
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- shared_context 'checkout setup' do
4
- let!(:store) { create(:store) }
5
- let!(:country) { create(:country, states_required: true) }
6
- let!(:state) { create(:state, country: country) }
7
- let!(:shipping_method) { create(:shipping_method) }
8
- let!(:stock_location) { create(:stock_location) }
9
- let!(:mug) { create(:product, name: "RoR Mug") }
10
- let!(:payment_method) { create(:check_payment_method) }
11
- let!(:zone) { create(:zone) }
12
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- shared_context "custom products" do
4
- before(:each) do
5
- create(:store)
6
- taxonomy = FactoryBot.create(:taxonomy, name: 'Categories')
7
- root = taxonomy.root
8
- clothing_taxon = FactoryBot.create(:taxon, name: 'Clothing', parent_id: root.id)
9
- bags_taxon = FactoryBot.create(:taxon, name: 'Bags', parent_id: root.id)
10
- mugs_taxon = FactoryBot.create(:taxon, name: 'Mugs', parent_id: root.id)
11
-
12
- taxonomy = FactoryBot.create(:taxonomy, name: 'Brands')
13
- root = taxonomy.root
14
- apache_taxon = FactoryBot.create(:taxon, name: 'Apache', parent_id: root.id)
15
- rails_taxon = FactoryBot.create(:taxon, name: 'Ruby on Rails', parent_id: root.id)
16
- ruby_taxon = FactoryBot.create(:taxon, name: 'Ruby', parent_id: root.id)
17
-
18
- FactoryBot.create(:custom_product, name: 'Ruby on Rails Ringer T-Shirt', price: '19.99', taxons: [rails_taxon, clothing_taxon])
19
- FactoryBot.create(:custom_product, name: 'Ruby on Rails Mug', price: '15.99', taxons: [rails_taxon, mugs_taxon])
20
- FactoryBot.create(:custom_product, name: 'Ruby on Rails Tote', price: '15.99', taxons: [rails_taxon, bags_taxon])
21
- FactoryBot.create(:custom_product, name: 'Ruby on Rails Bag', price: '22.99', taxons: [rails_taxon, bags_taxon])
22
- FactoryBot.create(:custom_product, name: 'Ruby on Rails Baseball Jersey', price: '19.99', taxons: [rails_taxon, clothing_taxon])
23
- FactoryBot.create(:custom_product, name: 'Ruby on Rails Stein', price: '16.99', taxons: [rails_taxon, mugs_taxon])
24
- FactoryBot.create(:custom_product, name: 'Ruby on Rails Jr. Spaghetti', price: '19.99', taxons: [rails_taxon, clothing_taxon])
25
- FactoryBot.create(:custom_product, name: 'Ruby Baseball Jersey', price: '19.99', taxons: [ruby_taxon, clothing_taxon])
26
- FactoryBot.create(:custom_product, name: 'Apache Baseball Jersey', price: '19.99', taxons: [apache_taxon, clothing_taxon])
27
- end
28
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- shared_context 'fr locale' do
4
- before do
5
- I18n.backend.store_translations(:fr, spree: {
6
- i18n: { this_file_language: "Français" },
7
- cart: 'Panier',
8
- shopping_cart: 'Panier'
9
- })
10
- end
11
-
12
- after do
13
- I18n.locale = :en # reset locale after each spec.
14
- I18n.reload!
15
- end
16
- end