workarea-api-admin 4.4.6

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 (178) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/README.md +82 -0
  4. data/Rakefile +10 -0
  5. data/app/assets/images/workarea/api/admin/icons/api.svg +1 -0
  6. data/app/controllers/workarea/api/admin/application_controller.rb +73 -0
  7. data/app/controllers/workarea/api/admin/categories_controller.rb +305 -0
  8. data/app/controllers/workarea/api/admin/category_product_rules_controller.rb +232 -0
  9. data/app/controllers/workarea/api/admin/content_assets_controller.rb +299 -0
  10. data/app/controllers/workarea/api/admin/content_controller.rb +268 -0
  11. data/app/controllers/workarea/api/admin/discounts_controller.rb +271 -0
  12. data/app/controllers/workarea/api/admin/email_signups_controller.rb +108 -0
  13. data/app/controllers/workarea/api/admin/fulfillments_controller.rb +268 -0
  14. data/app/controllers/workarea/api/admin/inventory_skus_controller.rb +305 -0
  15. data/app/controllers/workarea/api/admin/navigation_menus_controller.rb +267 -0
  16. data/app/controllers/workarea/api/admin/navigation_taxons_controller.rb +305 -0
  17. data/app/controllers/workarea/api/admin/orders_controller.rb +160 -0
  18. data/app/controllers/workarea/api/admin/pages_controller.rb +305 -0
  19. data/app/controllers/workarea/api/admin/payment_profiles_controller.rb +305 -0
  20. data/app/controllers/workarea/api/admin/payment_transactions_controller.rb +108 -0
  21. data/app/controllers/workarea/api/admin/payments_controller.rb +115 -0
  22. data/app/controllers/workarea/api/admin/prices_controller.rb +232 -0
  23. data/app/controllers/workarea/api/admin/pricing_skus_controller.rb +305 -0
  24. data/app/controllers/workarea/api/admin/product_images_controller.rb +232 -0
  25. data/app/controllers/workarea/api/admin/products_controller.rb +305 -0
  26. data/app/controllers/workarea/api/admin/promo_code_lists_controller.rb +305 -0
  27. data/app/controllers/workarea/api/admin/recommendation_settings_controller.rb +122 -0
  28. data/app/controllers/workarea/api/admin/redirects_controller.rb +305 -0
  29. data/app/controllers/workarea/api/admin/releases_controller.rb +304 -0
  30. data/app/controllers/workarea/api/admin/saved_addresses_controller.rb +232 -0
  31. data/app/controllers/workarea/api/admin/saved_credit_cards_controller.rb +256 -0
  32. data/app/controllers/workarea/api/admin/shipping_rates_controller.rb +232 -0
  33. data/app/controllers/workarea/api/admin/shipping_services_controller.rb +299 -0
  34. data/app/controllers/workarea/api/admin/shippings_controller.rb +105 -0
  35. data/app/controllers/workarea/api/admin/swagger_controller.rb +41 -0
  36. data/app/controllers/workarea/api/admin/tax_categories_controller.rb +242 -0
  37. data/app/controllers/workarea/api/admin/tax_rates_controller.rb +292 -0
  38. data/app/controllers/workarea/api/admin/users_controller.rb +296 -0
  39. data/app/controllers/workarea/api/admin/variants_controller.rb +232 -0
  40. data/app/models/workarea/api/admin/bulk_upsert.rb +74 -0
  41. data/app/models/workarea/user.decorator +7 -0
  42. data/app/views/workarea/admin/users/_api_permissions.html.haml +6 -0
  43. data/app/workers/workarea/perform_api_bulk_upsert.rb +15 -0
  44. data/bin/rails +18 -0
  45. data/config/initializers/append_points.rb +4 -0
  46. data/config/initializers/config.rb +15 -0
  47. data/config/locales/en.yml +9 -0
  48. data/config/routes.rb +81 -0
  49. data/lib/workarea/api/admin.rb +21 -0
  50. data/lib/workarea/api/admin/engine.rb +14 -0
  51. data/lib/workarea/api/admin/swagger.rb +106 -0
  52. data/test/documentation/workarea/api/admin/categories_documentation_test.rb +106 -0
  53. data/test/documentation/workarea/api/admin/category_product_rules_documentation_test.rb +78 -0
  54. data/test/documentation/workarea/api/admin/content_assets_documentation_test.rb +94 -0
  55. data/test/documentation/workarea/api/admin/content_documentation_test.rb +87 -0
  56. data/test/documentation/workarea/api/admin/discounts_documentation_test.rb +85 -0
  57. data/test/documentation/workarea/api/admin/email_signups_documentation_test.rb +41 -0
  58. data/test/documentation/workarea/api/admin/fulfillment_documentation_test.rb +84 -0
  59. data/test/documentation/workarea/api/admin/inventory_skus_documentation_test.rb +95 -0
  60. data/test/documentation/workarea/api/admin/navigation_menus_documentation_test.rb +81 -0
  61. data/test/documentation/workarea/api/admin/navigation_taxons_documentation_test.rb +94 -0
  62. data/test/documentation/workarea/api/admin/orders_documentation_test.rb +65 -0
  63. data/test/documentation/workarea/api/admin/pages_documentation_test.rb +93 -0
  64. data/test/documentation/workarea/api/admin/payment_profiles_documentation_test.rb +98 -0
  65. data/test/documentation/workarea/api/admin/payment_transactions_documentation_test.rb +43 -0
  66. data/test/documentation/workarea/api/admin/payments_documentation_test.rb +41 -0
  67. data/test/documentation/workarea/api/admin/prices_documentation_test.rb +82 -0
  68. data/test/documentation/workarea/api/admin/pricing_skus_documentation_test.rb +95 -0
  69. data/test/documentation/workarea/api/admin/product_images_documentation_test.rb +101 -0
  70. data/test/documentation/workarea/api/admin/products_documentation_test.rb +96 -0
  71. data/test/documentation/workarea/api/admin/promo_code_lists_documentation_test.rb +94 -0
  72. data/test/documentation/workarea/api/admin/recommendation_settings_documentation_test.rb +37 -0
  73. data/test/documentation/workarea/api/admin/redirects_documentation_test.rb +96 -0
  74. data/test/documentation/workarea/api/admin/release_changes_documentation_test.rb +32 -0
  75. data/test/documentation/workarea/api/admin/releases_documentation_test.rb +93 -0
  76. data/test/documentation/workarea/api/admin/saved_addresses_documentation_test.rb +92 -0
  77. data/test/documentation/workarea/api/admin/saved_credit_cards_documentation_test.rb +86 -0
  78. data/test/documentation/workarea/api/admin/shipping_rates_documentation_test.rb +78 -0
  79. data/test/documentation/workarea/api/admin/shipping_services_documentation_test.rb +93 -0
  80. data/test/documentation/workarea/api/admin/shippings_documentation_test.rb +41 -0
  81. data/test/documentation/workarea/api/admin/tax_categories_documentation_test.rb +95 -0
  82. data/test/documentation/workarea/api/admin/tax_rates_documentation_test.rb +78 -0
  83. data/test/documentation/workarea/api/admin/users_documentation_test.rb +99 -0
  84. data/test/documentation/workarea/api/admin/variants_documentation_test.rb +80 -0
  85. data/test/dummy/Rakefile +7 -0
  86. data/test/dummy/app/assets/config/manifest.js +4 -0
  87. data/test/dummy/app/assets/images/.keep +0 -0
  88. data/test/dummy/app/assets/javascripts/application.js +13 -0
  89. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  90. data/test/dummy/app/controllers/application_controller.rb +3 -0
  91. data/test/dummy/app/controllers/concerns/.keep +0 -0
  92. data/test/dummy/app/helpers/application_helper.rb +2 -0
  93. data/test/dummy/app/jobs/application_job.rb +2 -0
  94. data/test/dummy/app/mailers/.keep +0 -0
  95. data/test/dummy/app/mailers/application_mailer.rb +4 -0
  96. data/test/dummy/app/models/.keep +0 -0
  97. data/test/dummy/app/models/concerns/.keep +0 -0
  98. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  99. data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  100. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  101. data/test/dummy/bin/bundle +3 -0
  102. data/test/dummy/bin/rails +4 -0
  103. data/test/dummy/bin/rake +4 -0
  104. data/test/dummy/bin/setup +34 -0
  105. data/test/dummy/bin/update +29 -0
  106. data/test/dummy/config.ru +4 -0
  107. data/test/dummy/config/application.rb +25 -0
  108. data/test/dummy/config/boot.rb +5 -0
  109. data/test/dummy/config/cable.yml +9 -0
  110. data/test/dummy/config/environment.rb +5 -0
  111. data/test/dummy/config/environments/development.rb +55 -0
  112. data/test/dummy/config/environments/production.rb +86 -0
  113. data/test/dummy/config/environments/test.rb +43 -0
  114. data/test/dummy/config/initializers/application_controller_renderer.rb +6 -0
  115. data/test/dummy/config/initializers/assets.rb +11 -0
  116. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  117. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  118. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  119. data/test/dummy/config/initializers/inflections.rb +16 -0
  120. data/test/dummy/config/initializers/mime_types.rb +4 -0
  121. data/test/dummy/config/initializers/new_framework_defaults.rb +21 -0
  122. data/test/dummy/config/initializers/session_store.rb +3 -0
  123. data/test/dummy/config/initializers/workarea.rb +8 -0
  124. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  125. data/test/dummy/config/locales/en.yml +23 -0
  126. data/test/dummy/config/puma.rb +47 -0
  127. data/test/dummy/config/routes.rb +6 -0
  128. data/test/dummy/config/secrets.yml +22 -0
  129. data/test/dummy/config/spring.rb +6 -0
  130. data/test/dummy/db/seeds.rb +2 -0
  131. data/test/dummy/log/.keep +0 -0
  132. data/test/dummy/public/404.html +67 -0
  133. data/test/dummy/public/422.html +67 -0
  134. data/test/dummy/public/500.html +66 -0
  135. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  136. data/test/dummy/public/apple-touch-icon.png +0 -0
  137. data/test/dummy/public/favicon.ico +1 -0
  138. data/test/integration/workarea/api/admin/audit_log_integration_test.rb +20 -0
  139. data/test/integration/workarea/api/admin/authentication_integration_test.rb +61 -0
  140. data/test/integration/workarea/api/admin/categories_integration_test.rb +64 -0
  141. data/test/integration/workarea/api/admin/category_product_rules_integration_test.rb +58 -0
  142. data/test/integration/workarea/api/admin/content_assets_integration_test.rb +65 -0
  143. data/test/integration/workarea/api/admin/content_integration_test.rb +59 -0
  144. data/test/integration/workarea/api/admin/discounts_integration_test.rb +64 -0
  145. data/test/integration/workarea/api/admin/email_signups_integration_test.rb +32 -0
  146. data/test/integration/workarea/api/admin/error_handling_integration_test.rb +16 -0
  147. data/test/integration/workarea/api/admin/fulfillments_integration_test.rb +62 -0
  148. data/test/integration/workarea/api/admin/inventory_skus_integration_test.rb +70 -0
  149. data/test/integration/workarea/api/admin/navigation_menus_integration_test.rb +54 -0
  150. data/test/integration/workarea/api/admin/navigation_taxons_integration_test.rb +63 -0
  151. data/test/integration/workarea/api/admin/orders_integration_test.rb +53 -0
  152. data/test/integration/workarea/api/admin/pages_integration_test.rb +64 -0
  153. data/test/integration/workarea/api/admin/payment_profiles_integration_test.rb +75 -0
  154. data/test/integration/workarea/api/admin/payment_transactions_integration_test.rb +45 -0
  155. data/test/integration/workarea/api/admin/payments_integration_test.rb +29 -0
  156. data/test/integration/workarea/api/admin/prices_integration_test.rb +55 -0
  157. data/test/integration/workarea/api/admin/pricing_skus_integration_test.rb +72 -0
  158. data/test/integration/workarea/api/admin/product_images_integration_test.rb +56 -0
  159. data/test/integration/workarea/api/admin/products_integration_test.rb +66 -0
  160. data/test/integration/workarea/api/admin/promo_code_lists_integration_test.rb +70 -0
  161. data/test/integration/workarea/api/admin/recommendation_settings_integration_test.rb +41 -0
  162. data/test/integration/workarea/api/admin/redirects_integration_test.rb +69 -0
  163. data/test/integration/workarea/api/admin/release_changes_integration_test.rb +32 -0
  164. data/test/integration/workarea/api/admin/releases_integration_test.rb +60 -0
  165. data/test/integration/workarea/api/admin/saved_addresses_integration_test.rb +70 -0
  166. data/test/integration/workarea/api/admin/saved_credit_cards_integration_test.rb +76 -0
  167. data/test/integration/workarea/api/admin/shipping_rates_integration_test.rb +54 -0
  168. data/test/integration/workarea/api/admin/shipping_services_integration_test.rb +64 -0
  169. data/test/integration/workarea/api/admin/shippings_integration_test.rb +34 -0
  170. data/test/integration/workarea/api/admin/tax_categories_integration_test.rb +64 -0
  171. data/test/integration/workarea/api/admin/tax_rates_integration_test.rb +66 -0
  172. data/test/integration/workarea/api/admin/users_integration_test.rb +67 -0
  173. data/test/integration/workarea/api/admin/variants_integration_test.rb +59 -0
  174. data/test/models/workarea/api/admin/bulk_upsert_test.rb +79 -0
  175. data/test/test_helper.rb +10 -0
  176. data/test/vcr_cassettes/product_image_from_url.yml +43 -0
  177. data/workarea-api-admin.gemspec +18 -0
  178. metadata +252 -0
@@ -0,0 +1,93 @@
1
+ require 'test_helper'
2
+ require 'workarea/api/documentation_test'
3
+
4
+ module Workarea
5
+ module Api
6
+ module Admin
7
+ class ReleasesDocumentationTest < DocumentationTest
8
+ include Workarea::Admin::IntegrationTest
9
+
10
+ resource 'Releases'
11
+
12
+ def sample_attributes
13
+ create_release.as_json.except('_id')
14
+ end
15
+
16
+ def test_and_document_index
17
+ description 'Listing releases'
18
+ route admin_api.releases_path
19
+ parameter :page, 'Current page'
20
+ parameter :sort_by, 'Field on which to sort (see responses for possible values)'
21
+ parameter :sort_direction, 'Direction to sort (asc or desc)'
22
+
23
+ 2.times { create_release }
24
+
25
+ record_request do
26
+ get admin_api.releases_path,
27
+ params: { page: 1, sort_by: 'created_at', sort_direction: 'desc' }
28
+
29
+ assert_equal(200, response.status)
30
+ end
31
+ end
32
+
33
+ def test_and_document_create
34
+ description 'Creating a release'
35
+ route admin_api.releases_path
36
+
37
+ record_request do
38
+ post admin_api.releases_path, params: sample_attributes, as: :json
39
+ assert_equal(201, response.status)
40
+ end
41
+ end
42
+
43
+ def test_and_document_show
44
+ description 'Showing a release'
45
+ route admin_api.release_path(':id')
46
+
47
+ record_request do
48
+ get admin_api.release_path(create_release.id)
49
+ assert_equal(200, response.status)
50
+ end
51
+ end
52
+
53
+ def test_and_document_update
54
+ description 'Updating a release'
55
+ route admin_api.release_path(':id')
56
+
57
+ record_request do
58
+ patch admin_api.release_path(create_release.id),
59
+ params: sample_attributes,
60
+ as: :json
61
+
62
+ assert_equal(204, response.status)
63
+ end
64
+ end
65
+
66
+ def test_and_document_bulk_upsert
67
+ description 'Bulk upserting releases'
68
+ route admin_api.bulk_releases_path
69
+
70
+ record_request do
71
+ patch admin_api.bulk_releases_path,
72
+ params: { releases: [sample_attributes] * 3 },
73
+ as: :json
74
+
75
+ assert_equal(204, response.status)
76
+ end
77
+ end
78
+
79
+ def test_and_document_destroy
80
+ description 'Removing a release'
81
+ route admin_api.release_path(':id')
82
+
83
+ release = create_release
84
+
85
+ record_request do
86
+ delete admin_api.release_path(release.id), as: :json
87
+ assert_equal(204, response.status)
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,92 @@
1
+ require 'test_helper'
2
+ require 'workarea/api/documentation_test'
3
+
4
+ module Workarea
5
+ module Api
6
+ module Admin
7
+ class SavedAddressesDocumentationTest < DocumentationTest
8
+ include Workarea::Admin::IntegrationTest
9
+
10
+ resource 'Saved Addresses'
11
+
12
+ def user
13
+ @user ||= create_user
14
+ end
15
+
16
+ def sample_attributes
17
+ {
18
+ first_name: 'Ben',
19
+ last_name: 'Crouse',
20
+ street: '22 S. 3rd St.',
21
+ city: 'Philadelphia',
22
+ region: 'PA',
23
+ postal_code: '19106',
24
+ country: 'US',
25
+ phone_number: '2159251800'
26
+ }
27
+ end
28
+
29
+ def create_saved_address
30
+ @count ||= 0
31
+ @count += 1
32
+
33
+ user.addresses.create!(
34
+ sample_attributes.merge(street: "#{@count} S 3rd St")
35
+ )
36
+ end
37
+
38
+ def test_and_document_index
39
+ description 'Listing saved address'
40
+ route admin_api.user_saved_addresses_path(':user_id')
41
+
42
+ 2.times { create_saved_address }
43
+
44
+ record_request do
45
+ get admin_api.user_saved_addresses_path(user.id)
46
+ assert_equal(200, response.status)
47
+ end
48
+ end
49
+
50
+ def test_and_document_create
51
+ description 'Creating a saved address'
52
+ route admin_api.user_saved_addresses_path(':user_id')
53
+
54
+ record_request do
55
+ post admin_api.user_saved_addresses_path(user.id),
56
+ params: { saved_address: sample_attributes },
57
+ as: :json
58
+
59
+ assert_equal(201, response.status)
60
+ end
61
+ end
62
+
63
+ def test_and_document_update
64
+ description 'Updating a saved address'
65
+ route admin_api.user_saved_address_path(':user_id', ':id')
66
+
67
+ saved_address = create_saved_address
68
+
69
+ record_request do
70
+ patch admin_api.user_saved_address_path(user.id, saved_address.id),
71
+ params: { saved_address: { street: '1 Foobar Lane' } },
72
+ as: :json
73
+
74
+ assert_equal(204, response.status)
75
+ end
76
+ end
77
+
78
+ def test_and_document_destroy
79
+ description 'Removing a saved address'
80
+ route admin_api.user_saved_address_path(':user_id', ':id')
81
+
82
+ saved_address = create_saved_address
83
+
84
+ record_request do
85
+ delete admin_api.user_saved_address_path(user.id, saved_address.id)
86
+ assert_equal(204, response.status)
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,86 @@
1
+ require 'test_helper'
2
+ require 'workarea/api/documentation_test'
3
+
4
+ module Workarea
5
+ module Api
6
+ module Admin
7
+ class SavedCreditCardsDocumentationTest < DocumentationTest
8
+ include Workarea::Admin::IntegrationTest
9
+
10
+ resource 'Saved Credit Cards'
11
+
12
+ def payment_profile
13
+ @payment_profile ||= create_payment_profile
14
+ end
15
+
16
+ def sample_attributes
17
+ @sample_attributes ||= create_saved_credit_card(profile_id: payment_profile.id)
18
+ .as_json
19
+ .except('_id')
20
+ end
21
+
22
+ def test_and_document_index
23
+ description 'Listing saved credit cards'
24
+ route admin_api.payment_profile_saved_credit_cards_path(':payment_profile_id')
25
+ parameter :page, 'Current page'
26
+ parameter :sort_by, 'Field on which to sort (see responses for possible values)'
27
+ parameter :sort_direction, 'Direction to sort (asc or desc)'
28
+
29
+ 2.times { create_saved_credit_card(profile: payment_profile) }
30
+
31
+ record_request do
32
+ get admin_api.payment_profile_saved_credit_cards_path(payment_profile.id)
33
+ assert_equal(200, response.status)
34
+ end
35
+ end
36
+
37
+ def test_and_document_create
38
+ description 'Creating a saved credit card'
39
+ route admin_api.payment_profile_saved_credit_cards_path(':payment_profile_id')
40
+
41
+ record_request do
42
+ post admin_api.payment_profile_saved_credit_cards_path(payment_profile.id),
43
+ params: { saved_credit_card: sample_attributes },
44
+ as: :json
45
+
46
+ assert_equal(201, response.status)
47
+ end
48
+ end
49
+
50
+ def test_and_document_update
51
+ description 'Updating a saved credit card'
52
+ route admin_api.payment_profile_saved_credit_card_path(':payment_profile_id', ':id')
53
+
54
+ saved_credit_card = create_saved_credit_card(profile: payment_profile)
55
+
56
+ record_request do
57
+ patch admin_api.payment_profile_saved_credit_card_path(
58
+ payment_profile.id,
59
+ saved_credit_card.id
60
+ ),
61
+ params: { saved_credit_card: { first_name: 'Ben' } },
62
+ as: :json
63
+
64
+ assert_equal(204, response.status)
65
+ end
66
+ end
67
+
68
+ def test_and_document_destroy
69
+ description 'Removing a saved credit card'
70
+ route admin_api.payment_profile_saved_credit_card_path(':payment_profile_id', ':id')
71
+
72
+ saved_credit_card = create_saved_credit_card(profile: payment_profile)
73
+
74
+ record_request do
75
+ delete admin_api.payment_profile_saved_credit_card_path(
76
+ payment_profile.id,
77
+ saved_credit_card.id
78
+ )
79
+
80
+ assert_equal(204, response.status)
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,78 @@
1
+ require 'test_helper'
2
+ require 'workarea/api/documentation_test'
3
+
4
+ module Workarea
5
+ module Api
6
+ module Admin
7
+ class ShippingRatesDocumentationTest < DocumentationTest
8
+ include Workarea::Admin::IntegrationTest
9
+
10
+ resource 'Shipping Rates'
11
+
12
+ def shipping_service
13
+ @shipping_service ||= create_shipping_service
14
+ end
15
+
16
+ def sample_attributes
17
+ shipping_service.rates.first.as_json.except('_id')
18
+ end
19
+
20
+ def create_rate
21
+ shipping_service.rates.create!(sample_attributes)
22
+ end
23
+
24
+ def test_and_document_index
25
+ description 'Listing shipping rates'
26
+ route admin_api.shipping_service_rates_path(':shipping_service_id')
27
+
28
+ 2.times { create_rate }
29
+
30
+ record_request do
31
+ get admin_api.shipping_service_rates_path(shipping_service.id)
32
+ assert_equal(200, response.status)
33
+ end
34
+ end
35
+
36
+ def test_and_document_create
37
+ description 'Creating a shipping rate'
38
+ route admin_api.shipping_service_rates_path(':shipping_service_id')
39
+
40
+ record_request do
41
+ post admin_api.shipping_service_rates_path(shipping_service.id),
42
+ params: { rate: sample_attributes },
43
+ as: :json
44
+
45
+ assert_equal(201, response.status)
46
+ end
47
+ end
48
+
49
+ def test_and_document_update
50
+ description 'Updating a shipping rate'
51
+ route admin_api.shipping_service_rate_path(':shipping_service_id', ':id')
52
+
53
+ rate = create_rate
54
+
55
+ record_request do
56
+ patch admin_api.shipping_service_rate_path(shipping_service.id, rate.id),
57
+ params: { rate: { price: 34 } },
58
+ as: :json
59
+
60
+ assert_equal(204, response.status)
61
+ end
62
+ end
63
+
64
+ def test_and_document_destroy
65
+ description 'Removing a shipping rate'
66
+ route admin_api.shipping_service_rate_path(':shipping_service_id', ':id')
67
+
68
+ rate = create_rate
69
+
70
+ record_request do
71
+ delete admin_api.shipping_service_rate_path(shipping_service.id, rate.id)
72
+ assert_equal(204, response.status)
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,93 @@
1
+ require 'test_helper'
2
+ require 'workarea/api/documentation_test'
3
+
4
+ module Workarea
5
+ module Api
6
+ module Admin
7
+ class ShippingServicesDocumentationTest < DocumentationTest
8
+ include Workarea::Admin::IntegrationTest
9
+
10
+ resource 'Shipping Services'
11
+
12
+ def sample_attributes
13
+ create_shipping_service.as_json.except('_id')
14
+ end
15
+
16
+ def test_and_document_index
17
+ description 'Listing shipping_services'
18
+ route admin_api.shipping_services_path
19
+ parameter :page, 'Current page'
20
+ parameter :sort_by, 'Field on which to sort (see responses for possible values)'
21
+ parameter :sort_direction, 'Direction to sort (asc or desc)'
22
+
23
+ 2.times { create_shipping_service }
24
+
25
+ record_request do
26
+ get admin_api.shipping_services_path,
27
+ params: { page: 1, sort_by: 'created_at', sort_direction: 'desc' }
28
+
29
+ assert_equal(200, response.status)
30
+ end
31
+ end
32
+
33
+ def test_and_document_create
34
+ description 'Creating a shipping_service'
35
+ route admin_api.shipping_services_path
36
+
37
+ record_request do
38
+ post admin_api.shipping_services_path, params: sample_attributes, as: :json
39
+ assert_equal(201, response.status)
40
+ end
41
+ end
42
+
43
+ def test_and_document_show
44
+ description 'Showing a shipping_service'
45
+ route admin_api.shipping_service_path(':id')
46
+
47
+ record_request do
48
+ get admin_api.shipping_service_path(create_shipping_service.id)
49
+ assert_equal(200, response.status)
50
+ end
51
+ end
52
+
53
+ def test_and_document_update
54
+ description 'Updating a shipping_service'
55
+ route admin_api.shipping_service_path(':id')
56
+
57
+ record_request do
58
+ patch admin_api.shipping_service_path(create_shipping_service.id),
59
+ params: sample_attributes,
60
+ as: :json
61
+
62
+ assert_equal(204, response.status)
63
+ end
64
+ end
65
+
66
+ def test_and_document_bulk_upsert
67
+ description 'Bulk upserting shipping_services'
68
+ route admin_api.bulk_shipping_services_path
69
+
70
+ record_request do
71
+ patch admin_api.bulk_shipping_services_path,
72
+ params: { shipping_services: [sample_attributes] * 3 },
73
+ as: :json
74
+
75
+ assert_equal(204, response.status)
76
+ end
77
+ end
78
+
79
+ def test_and_document_destroy
80
+ description 'Removing a shipping_service'
81
+ route admin_api.shipping_service_path(':id')
82
+
83
+ shipping_service = create_shipping_service
84
+
85
+ record_request do
86
+ delete admin_api.shipping_service_path(shipping_service.id), as: :json
87
+ assert_equal(204, response.status)
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,41 @@
1
+ require 'test_helper'
2
+ require 'workarea/api/documentation_test'
3
+
4
+ module Workarea
5
+ module Api
6
+ module Admin
7
+ class ShippingsDocumentationTest < DocumentationTest
8
+ include Workarea::Admin::IntegrationTest
9
+
10
+ resource 'Shipping'
11
+
12
+ def test_and_document_index
13
+ description 'Listing shipments'
14
+ route admin_api.shippings_path
15
+ parameter :page, 'Current page'
16
+ parameter :sort_by, 'Field on which to sort (see responses for possible values)'
17
+ parameter :sort_direction, 'Direction to sort (asc or desc)'
18
+
19
+ 2.times { create_shipping }
20
+
21
+ record_request do
22
+ get admin_api.shippings_path,
23
+ params: { page: 1, sort_by: 'created_at', sort_direction: 'desc' }
24
+
25
+ assert_equal(200, response.status)
26
+ end
27
+ end
28
+
29
+ def test_and_document_show
30
+ description 'Showing a shipment'
31
+ route admin_api.shipping_path(':id')
32
+
33
+ record_request do
34
+ get admin_api.shipping_path(create_shipping.id)
35
+ assert_equal(200, response.status)
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end