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.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/README.md +82 -0
- data/Rakefile +10 -0
- data/app/assets/images/workarea/api/admin/icons/api.svg +1 -0
- data/app/controllers/workarea/api/admin/application_controller.rb +73 -0
- data/app/controllers/workarea/api/admin/categories_controller.rb +305 -0
- data/app/controllers/workarea/api/admin/category_product_rules_controller.rb +232 -0
- data/app/controllers/workarea/api/admin/content_assets_controller.rb +299 -0
- data/app/controllers/workarea/api/admin/content_controller.rb +268 -0
- data/app/controllers/workarea/api/admin/discounts_controller.rb +271 -0
- data/app/controllers/workarea/api/admin/email_signups_controller.rb +108 -0
- data/app/controllers/workarea/api/admin/fulfillments_controller.rb +268 -0
- data/app/controllers/workarea/api/admin/inventory_skus_controller.rb +305 -0
- data/app/controllers/workarea/api/admin/navigation_menus_controller.rb +267 -0
- data/app/controllers/workarea/api/admin/navigation_taxons_controller.rb +305 -0
- data/app/controllers/workarea/api/admin/orders_controller.rb +160 -0
- data/app/controllers/workarea/api/admin/pages_controller.rb +305 -0
- data/app/controllers/workarea/api/admin/payment_profiles_controller.rb +305 -0
- data/app/controllers/workarea/api/admin/payment_transactions_controller.rb +108 -0
- data/app/controllers/workarea/api/admin/payments_controller.rb +115 -0
- data/app/controllers/workarea/api/admin/prices_controller.rb +232 -0
- data/app/controllers/workarea/api/admin/pricing_skus_controller.rb +305 -0
- data/app/controllers/workarea/api/admin/product_images_controller.rb +232 -0
- data/app/controllers/workarea/api/admin/products_controller.rb +305 -0
- data/app/controllers/workarea/api/admin/promo_code_lists_controller.rb +305 -0
- data/app/controllers/workarea/api/admin/recommendation_settings_controller.rb +122 -0
- data/app/controllers/workarea/api/admin/redirects_controller.rb +305 -0
- data/app/controllers/workarea/api/admin/releases_controller.rb +304 -0
- data/app/controllers/workarea/api/admin/saved_addresses_controller.rb +232 -0
- data/app/controllers/workarea/api/admin/saved_credit_cards_controller.rb +256 -0
- data/app/controllers/workarea/api/admin/shipping_rates_controller.rb +232 -0
- data/app/controllers/workarea/api/admin/shipping_services_controller.rb +299 -0
- data/app/controllers/workarea/api/admin/shippings_controller.rb +105 -0
- data/app/controllers/workarea/api/admin/swagger_controller.rb +41 -0
- data/app/controllers/workarea/api/admin/tax_categories_controller.rb +242 -0
- data/app/controllers/workarea/api/admin/tax_rates_controller.rb +292 -0
- data/app/controllers/workarea/api/admin/users_controller.rb +296 -0
- data/app/controllers/workarea/api/admin/variants_controller.rb +232 -0
- data/app/models/workarea/api/admin/bulk_upsert.rb +74 -0
- data/app/models/workarea/user.decorator +7 -0
- data/app/views/workarea/admin/users/_api_permissions.html.haml +6 -0
- data/app/workers/workarea/perform_api_bulk_upsert.rb +15 -0
- data/bin/rails +18 -0
- data/config/initializers/append_points.rb +4 -0
- data/config/initializers/config.rb +15 -0
- data/config/locales/en.yml +9 -0
- data/config/routes.rb +81 -0
- data/lib/workarea/api/admin.rb +21 -0
- data/lib/workarea/api/admin/engine.rb +14 -0
- data/lib/workarea/api/admin/swagger.rb +106 -0
- data/test/documentation/workarea/api/admin/categories_documentation_test.rb +106 -0
- data/test/documentation/workarea/api/admin/category_product_rules_documentation_test.rb +78 -0
- data/test/documentation/workarea/api/admin/content_assets_documentation_test.rb +94 -0
- data/test/documentation/workarea/api/admin/content_documentation_test.rb +87 -0
- data/test/documentation/workarea/api/admin/discounts_documentation_test.rb +85 -0
- data/test/documentation/workarea/api/admin/email_signups_documentation_test.rb +41 -0
- data/test/documentation/workarea/api/admin/fulfillment_documentation_test.rb +84 -0
- data/test/documentation/workarea/api/admin/inventory_skus_documentation_test.rb +95 -0
- data/test/documentation/workarea/api/admin/navigation_menus_documentation_test.rb +81 -0
- data/test/documentation/workarea/api/admin/navigation_taxons_documentation_test.rb +94 -0
- data/test/documentation/workarea/api/admin/orders_documentation_test.rb +65 -0
- data/test/documentation/workarea/api/admin/pages_documentation_test.rb +93 -0
- data/test/documentation/workarea/api/admin/payment_profiles_documentation_test.rb +98 -0
- data/test/documentation/workarea/api/admin/payment_transactions_documentation_test.rb +43 -0
- data/test/documentation/workarea/api/admin/payments_documentation_test.rb +41 -0
- data/test/documentation/workarea/api/admin/prices_documentation_test.rb +82 -0
- data/test/documentation/workarea/api/admin/pricing_skus_documentation_test.rb +95 -0
- data/test/documentation/workarea/api/admin/product_images_documentation_test.rb +101 -0
- data/test/documentation/workarea/api/admin/products_documentation_test.rb +96 -0
- data/test/documentation/workarea/api/admin/promo_code_lists_documentation_test.rb +94 -0
- data/test/documentation/workarea/api/admin/recommendation_settings_documentation_test.rb +37 -0
- data/test/documentation/workarea/api/admin/redirects_documentation_test.rb +96 -0
- data/test/documentation/workarea/api/admin/release_changes_documentation_test.rb +32 -0
- data/test/documentation/workarea/api/admin/releases_documentation_test.rb +93 -0
- data/test/documentation/workarea/api/admin/saved_addresses_documentation_test.rb +92 -0
- data/test/documentation/workarea/api/admin/saved_credit_cards_documentation_test.rb +86 -0
- data/test/documentation/workarea/api/admin/shipping_rates_documentation_test.rb +78 -0
- data/test/documentation/workarea/api/admin/shipping_services_documentation_test.rb +93 -0
- data/test/documentation/workarea/api/admin/shippings_documentation_test.rb +41 -0
- data/test/documentation/workarea/api/admin/tax_categories_documentation_test.rb +95 -0
- data/test/documentation/workarea/api/admin/tax_rates_documentation_test.rb +78 -0
- data/test/documentation/workarea/api/admin/users_documentation_test.rb +99 -0
- data/test/documentation/workarea/api/admin/variants_documentation_test.rb +80 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/config/manifest.js +4 -0
- data/test/dummy/app/assets/images/.keep +0 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/controllers/concerns/.keep +0 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/jobs/application_job.rb +2 -0
- data/test/dummy/app/mailers/.keep +0 -0
- data/test/dummy/app/mailers/application_mailer.rb +4 -0
- data/test/dummy/app/models/.keep +0 -0
- data/test/dummy/app/models/concerns/.keep +0 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
- data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/bin/setup +34 -0
- data/test/dummy/bin/update +29 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +25 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/cable.yml +9 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +55 -0
- data/test/dummy/config/environments/production.rb +86 -0
- data/test/dummy/config/environments/test.rb +43 -0
- data/test/dummy/config/initializers/application_controller_renderer.rb +6 -0
- data/test/dummy/config/initializers/assets.rb +11 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/new_framework_defaults.rb +21 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/workarea.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/puma.rb +47 -0
- data/test/dummy/config/routes.rb +6 -0
- data/test/dummy/config/secrets.yml +22 -0
- data/test/dummy/config/spring.rb +6 -0
- data/test/dummy/db/seeds.rb +2 -0
- data/test/dummy/log/.keep +0 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
- data/test/dummy/public/apple-touch-icon.png +0 -0
- data/test/dummy/public/favicon.ico +1 -0
- data/test/integration/workarea/api/admin/audit_log_integration_test.rb +20 -0
- data/test/integration/workarea/api/admin/authentication_integration_test.rb +61 -0
- data/test/integration/workarea/api/admin/categories_integration_test.rb +64 -0
- data/test/integration/workarea/api/admin/category_product_rules_integration_test.rb +58 -0
- data/test/integration/workarea/api/admin/content_assets_integration_test.rb +65 -0
- data/test/integration/workarea/api/admin/content_integration_test.rb +59 -0
- data/test/integration/workarea/api/admin/discounts_integration_test.rb +64 -0
- data/test/integration/workarea/api/admin/email_signups_integration_test.rb +32 -0
- data/test/integration/workarea/api/admin/error_handling_integration_test.rb +16 -0
- data/test/integration/workarea/api/admin/fulfillments_integration_test.rb +62 -0
- data/test/integration/workarea/api/admin/inventory_skus_integration_test.rb +70 -0
- data/test/integration/workarea/api/admin/navigation_menus_integration_test.rb +54 -0
- data/test/integration/workarea/api/admin/navigation_taxons_integration_test.rb +63 -0
- data/test/integration/workarea/api/admin/orders_integration_test.rb +53 -0
- data/test/integration/workarea/api/admin/pages_integration_test.rb +64 -0
- data/test/integration/workarea/api/admin/payment_profiles_integration_test.rb +75 -0
- data/test/integration/workarea/api/admin/payment_transactions_integration_test.rb +45 -0
- data/test/integration/workarea/api/admin/payments_integration_test.rb +29 -0
- data/test/integration/workarea/api/admin/prices_integration_test.rb +55 -0
- data/test/integration/workarea/api/admin/pricing_skus_integration_test.rb +72 -0
- data/test/integration/workarea/api/admin/product_images_integration_test.rb +56 -0
- data/test/integration/workarea/api/admin/products_integration_test.rb +66 -0
- data/test/integration/workarea/api/admin/promo_code_lists_integration_test.rb +70 -0
- data/test/integration/workarea/api/admin/recommendation_settings_integration_test.rb +41 -0
- data/test/integration/workarea/api/admin/redirects_integration_test.rb +69 -0
- data/test/integration/workarea/api/admin/release_changes_integration_test.rb +32 -0
- data/test/integration/workarea/api/admin/releases_integration_test.rb +60 -0
- data/test/integration/workarea/api/admin/saved_addresses_integration_test.rb +70 -0
- data/test/integration/workarea/api/admin/saved_credit_cards_integration_test.rb +76 -0
- data/test/integration/workarea/api/admin/shipping_rates_integration_test.rb +54 -0
- data/test/integration/workarea/api/admin/shipping_services_integration_test.rb +64 -0
- data/test/integration/workarea/api/admin/shippings_integration_test.rb +34 -0
- data/test/integration/workarea/api/admin/tax_categories_integration_test.rb +64 -0
- data/test/integration/workarea/api/admin/tax_rates_integration_test.rb +66 -0
- data/test/integration/workarea/api/admin/users_integration_test.rb +67 -0
- data/test/integration/workarea/api/admin/variants_integration_test.rb +59 -0
- data/test/models/workarea/api/admin/bulk_upsert_test.rb +79 -0
- data/test/test_helper.rb +10 -0
- data/test/vcr_cassettes/product_image_from_url.yml +43 -0
- data/workarea-api-admin.gemspec +18 -0
- metadata +252 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'workarea/api/documentation_test'
|
|
3
|
+
|
|
4
|
+
module Workarea
|
|
5
|
+
module Api
|
|
6
|
+
module Admin
|
|
7
|
+
class DiscountsDocumentationTest < DocumentationTest
|
|
8
|
+
include Workarea::Admin::IntegrationTest
|
|
9
|
+
|
|
10
|
+
resource 'Discounts'
|
|
11
|
+
alias create_discount create_product_discount
|
|
12
|
+
|
|
13
|
+
def sample_attributes
|
|
14
|
+
create_discount
|
|
15
|
+
.as_json
|
|
16
|
+
.except('_id')
|
|
17
|
+
.merge('type' => 'product', 'promo_codes' => ['SALE'])
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def test_and_document_index
|
|
21
|
+
description 'Listing discounts'
|
|
22
|
+
route admin_api.discounts_path
|
|
23
|
+
parameter :page, 'Current page'
|
|
24
|
+
parameter :sort_by, 'Field on which to sort (see responses for possible values)'
|
|
25
|
+
parameter :sort_direction, 'Direction to sort (asc or desc)'
|
|
26
|
+
|
|
27
|
+
2.times { create_discount }
|
|
28
|
+
|
|
29
|
+
record_request do
|
|
30
|
+
get admin_api.discounts_path,
|
|
31
|
+
params: { page: 1, sort_by: 'created_at', sort_direction: 'desc' }
|
|
32
|
+
|
|
33
|
+
assert_equal(200, response.status)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_and_document_create
|
|
38
|
+
description 'Creating a discount'
|
|
39
|
+
route admin_api.discounts_path
|
|
40
|
+
|
|
41
|
+
record_request do
|
|
42
|
+
post admin_api.discounts_path,
|
|
43
|
+
params: { discount: sample_attributes },
|
|
44
|
+
as: :json
|
|
45
|
+
|
|
46
|
+
assert_equal(201, response.status)
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def test_and_document_show
|
|
51
|
+
description 'Showing a discount'
|
|
52
|
+
route admin_api.discount_path(':id')
|
|
53
|
+
|
|
54
|
+
record_request do
|
|
55
|
+
get admin_api.discount_path(create_discount.id)
|
|
56
|
+
assert_equal(200, response.status)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def test_and_document_update
|
|
61
|
+
description 'Updating discounts'
|
|
62
|
+
route admin_api.discount_path(':id')
|
|
63
|
+
|
|
64
|
+
record_request do
|
|
65
|
+
patch admin_api.discount_path(create_discount.id),
|
|
66
|
+
params: { discount: { name: 'foo' } },
|
|
67
|
+
as: :json
|
|
68
|
+
|
|
69
|
+
assert_equal(204, response.status)
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def test_and_document_destroy
|
|
74
|
+
description 'Removing a discount'
|
|
75
|
+
route admin_api.discount_path(':id')
|
|
76
|
+
|
|
77
|
+
record_request do
|
|
78
|
+
delete admin_api.discount_path(create_discount.id)
|
|
79
|
+
assert_equal(204, response.status)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
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 EmailSignupsDocumentationTest < DocumentationTest
|
|
8
|
+
include Workarea::Admin::IntegrationTest
|
|
9
|
+
|
|
10
|
+
resource 'Email Signups'
|
|
11
|
+
|
|
12
|
+
def test_and_document_index
|
|
13
|
+
description 'Listing email signups'
|
|
14
|
+
route admin_api.email_signups_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 { |i| create_email_signup(email: "#{i}@workarea.com") }
|
|
20
|
+
|
|
21
|
+
record_request do
|
|
22
|
+
get admin_api.email_signups_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 an email signup'
|
|
31
|
+
route admin_api.email_signup_path(':id')
|
|
32
|
+
|
|
33
|
+
record_request do
|
|
34
|
+
get admin_api.email_signup_path(create_email_signup.id)
|
|
35
|
+
assert_equal(200, response.status)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'workarea/api/documentation_test'
|
|
3
|
+
|
|
4
|
+
module Workarea
|
|
5
|
+
module Api
|
|
6
|
+
module Admin
|
|
7
|
+
class FulfillmentDocumentationTest < DocumentationTest
|
|
8
|
+
include Workarea::Admin::IntegrationTest
|
|
9
|
+
|
|
10
|
+
resource 'Fulfillment'
|
|
11
|
+
|
|
12
|
+
def create_fulfillment(*args)
|
|
13
|
+
order = create_placed_order(*args)
|
|
14
|
+
Fulfillment.find(order.id)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def fulfillment
|
|
18
|
+
@fulfillment ||= create_fulfillment
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_and_document_index
|
|
22
|
+
description 'Listing fulfillments'
|
|
23
|
+
route admin_api.fulfillments_path
|
|
24
|
+
parameter :page, 'Current page'
|
|
25
|
+
parameter :sort_by, 'Field on which to sort (see responses for possible values)'
|
|
26
|
+
parameter :sort_direction, 'Direction to sort (asc or desc)'
|
|
27
|
+
|
|
28
|
+
create_fulfillment(id: '1')
|
|
29
|
+
create_fulfillment(id: '2')
|
|
30
|
+
|
|
31
|
+
record_request do
|
|
32
|
+
get admin_api.fulfillments_path
|
|
33
|
+
assert_equal(200, response.status)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_and_document_show
|
|
38
|
+
description 'Showing fulfillment'
|
|
39
|
+
route admin_api.fulfillment_path(':order_id')
|
|
40
|
+
|
|
41
|
+
record_request do
|
|
42
|
+
get admin_api.fulfillment_path(create_fulfillment.id)
|
|
43
|
+
assert_equal(200, response.status)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def test_and_document_ship_items
|
|
48
|
+
description 'Marking items as shipped'
|
|
49
|
+
route admin_api.ship_items_fulfillment_path(':order_id')
|
|
50
|
+
|
|
51
|
+
record_request do
|
|
52
|
+
post admin_api.ship_items_fulfillment_path(fulfillment.id),
|
|
53
|
+
params: {
|
|
54
|
+
tracking_number: '1Z',
|
|
55
|
+
items: [
|
|
56
|
+
{ id: fulfillment.items.first.order_item_id, quantity: 1 }
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
as: :json
|
|
60
|
+
|
|
61
|
+
assert_equal(201, response.status)
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def test_and_document_cancel_items
|
|
66
|
+
description 'Marking items as canceled'
|
|
67
|
+
route admin_api.cancel_items_fulfillment_path(':order_id')
|
|
68
|
+
|
|
69
|
+
record_request do
|
|
70
|
+
post admin_api.cancel_items_fulfillment_path(fulfillment.id),
|
|
71
|
+
params: {
|
|
72
|
+
items: [
|
|
73
|
+
{ id: fulfillment.items.first.order_item_id, quantity: 1 }
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
as: :json
|
|
77
|
+
|
|
78
|
+
assert_equal(201, response.status)
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'workarea/api/documentation_test'
|
|
3
|
+
|
|
4
|
+
module Workarea
|
|
5
|
+
module Api
|
|
6
|
+
module Admin
|
|
7
|
+
class InventorySkusDocumentationTest < DocumentationTest
|
|
8
|
+
include Workarea::Admin::IntegrationTest
|
|
9
|
+
|
|
10
|
+
resource 'Inventory SKUs'
|
|
11
|
+
|
|
12
|
+
def sample_attributes
|
|
13
|
+
@sample_attributes ||= create_inventory.as_json.except('_id')
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_and_document_index
|
|
17
|
+
description 'Listing inventory SKUs'
|
|
18
|
+
route admin_api.inventory_skus_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 { |i| create_inventory(id: "SKU#{i}") }
|
|
24
|
+
|
|
25
|
+
record_request do
|
|
26
|
+
get admin_api.inventory_skus_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 an inventory SKU'
|
|
35
|
+
route admin_api.inventory_skus_path
|
|
36
|
+
|
|
37
|
+
record_request do
|
|
38
|
+
post admin_api.inventory_skus_path,
|
|
39
|
+
params: { inventory_sku: sample_attributes.merge('_id' => 'SKU2') },
|
|
40
|
+
as: :json
|
|
41
|
+
|
|
42
|
+
assert_equal(201, response.status)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_and_document_show
|
|
47
|
+
description 'Showing an inventory SKU'
|
|
48
|
+
route admin_api.inventory_sku_path(':id')
|
|
49
|
+
|
|
50
|
+
record_request do
|
|
51
|
+
get admin_api.inventory_sku_path(create_inventory.id)
|
|
52
|
+
assert_equal(200, response.status)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def test_and_document_update
|
|
57
|
+
description 'Updating an inventory SKU'
|
|
58
|
+
route admin_api.inventory_sku_path(':id')
|
|
59
|
+
|
|
60
|
+
record_request do
|
|
61
|
+
patch admin_api.inventory_sku_path(create_inventory.id),
|
|
62
|
+
params: { inventory_sku: { policy: 'ignore' } },
|
|
63
|
+
as: :json
|
|
64
|
+
|
|
65
|
+
assert_equal(204, response.status)
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_and_document_bulk_upsert
|
|
70
|
+
description 'Bulk upserting inventory SKUs'
|
|
71
|
+
route admin_api.bulk_inventory_skus_path
|
|
72
|
+
|
|
73
|
+
record_request do
|
|
74
|
+
data = Array.new(3) { sample_attributes.merge('_id' => Inventory::Sku.count) }
|
|
75
|
+
patch admin_api.bulk_inventory_skus_path,
|
|
76
|
+
params: { inventory_skus: data },
|
|
77
|
+
as: :json
|
|
78
|
+
|
|
79
|
+
assert_equal(204, response.status)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def test_and_document_destroy
|
|
84
|
+
description 'Removing an inventory SKU'
|
|
85
|
+
route admin_api.inventory_sku_path(':id')
|
|
86
|
+
|
|
87
|
+
record_request do
|
|
88
|
+
delete admin_api.inventory_sku_path(create_inventory.id)
|
|
89
|
+
assert_equal(204, response.status)
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'workarea/api/documentation_test'
|
|
3
|
+
|
|
4
|
+
module Workarea
|
|
5
|
+
module Api
|
|
6
|
+
module Admin
|
|
7
|
+
class NavigationMenusDocumentationTest < DocumentationTest
|
|
8
|
+
include Workarea::Admin::IntegrationTest
|
|
9
|
+
|
|
10
|
+
resource 'Navigation menus'
|
|
11
|
+
|
|
12
|
+
def sample_attributes
|
|
13
|
+
create_menu.as_json.except('_id', 'slug')
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_and_document_index
|
|
17
|
+
description 'Listing menus'
|
|
18
|
+
route admin_api.navigation_menus_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_menu }
|
|
24
|
+
|
|
25
|
+
record_request do
|
|
26
|
+
get admin_api.navigation_menus_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 menu'
|
|
35
|
+
route admin_api.navigation_menus_path
|
|
36
|
+
|
|
37
|
+
record_request do
|
|
38
|
+
post admin_api.navigation_menus_path,
|
|
39
|
+
params: { navigation_menu: sample_attributes },
|
|
40
|
+
as: :json
|
|
41
|
+
|
|
42
|
+
assert_equal(201, response.status)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_and_document_show
|
|
47
|
+
description 'Showing a navigation menu'
|
|
48
|
+
route admin_api.navigation_menu_path(':id')
|
|
49
|
+
|
|
50
|
+
record_request do
|
|
51
|
+
get admin_api.navigation_menu_path(create_menu.id)
|
|
52
|
+
assert_equal(200, response.status)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def test_and_document_update
|
|
57
|
+
description 'Updating a navigation menus'
|
|
58
|
+
route admin_api.navigation_menu_path(':id')
|
|
59
|
+
|
|
60
|
+
record_request do
|
|
61
|
+
patch admin_api.navigation_menu_path(create_menu.id),
|
|
62
|
+
params: { navigation_menu: { name: 'foo' } },
|
|
63
|
+
as: :json
|
|
64
|
+
|
|
65
|
+
assert_equal(204, response.status)
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_and_document_destroy
|
|
70
|
+
description 'Removing a navigation menu'
|
|
71
|
+
route admin_api.navigation_menu_path(':id')
|
|
72
|
+
|
|
73
|
+
record_request do
|
|
74
|
+
delete admin_api.navigation_menu_path(create_menu.id)
|
|
75
|
+
assert_equal(204, response.status)
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'workarea/api/documentation_test'
|
|
3
|
+
|
|
4
|
+
module Workarea
|
|
5
|
+
module Api
|
|
6
|
+
module Admin
|
|
7
|
+
class NavigationTaxonsDocumentationTest < DocumentationTest
|
|
8
|
+
include Workarea::Admin::IntegrationTest
|
|
9
|
+
|
|
10
|
+
resource 'Navigation taxonomy'
|
|
11
|
+
|
|
12
|
+
def sample_attributes
|
|
13
|
+
create_taxon.as_json.except('_id', 'slug')
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_and_document_index
|
|
17
|
+
description 'Listing taxons'
|
|
18
|
+
route admin_api.navigation_taxons_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_taxon }
|
|
24
|
+
|
|
25
|
+
record_request do
|
|
26
|
+
get admin_api.navigation_taxons_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 taxon'
|
|
35
|
+
route admin_api.navigation_taxons_path
|
|
36
|
+
|
|
37
|
+
record_request do
|
|
38
|
+
post admin_api.navigation_taxons_path,
|
|
39
|
+
params: { navigation_taxon: sample_attributes },
|
|
40
|
+
as: :json
|
|
41
|
+
|
|
42
|
+
assert_equal(201, response.status)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_and_document_show
|
|
47
|
+
description 'Showing a navigation taxon'
|
|
48
|
+
route admin_api.navigation_taxon_path(':id')
|
|
49
|
+
|
|
50
|
+
record_request do
|
|
51
|
+
get admin_api.navigation_taxon_path(create_taxon.id)
|
|
52
|
+
assert_equal(200, response.status)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def test_and_document_update
|
|
57
|
+
description 'Updating a navigation taxons'
|
|
58
|
+
route admin_api.navigation_taxon_path(':id')
|
|
59
|
+
|
|
60
|
+
record_request do
|
|
61
|
+
patch admin_api.navigation_taxon_path(create_taxon.id),
|
|
62
|
+
params: { navigation_taxon: { name: 'foo' } },
|
|
63
|
+
as: :json
|
|
64
|
+
|
|
65
|
+
assert_equal(204, response.status)
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_and_document_bulk_upsert
|
|
70
|
+
description 'Bulk upserting navigation taxons'
|
|
71
|
+
route admin_api.bulk_navigation_taxons_path
|
|
72
|
+
|
|
73
|
+
record_request do
|
|
74
|
+
patch admin_api.bulk_navigation_taxons_path,
|
|
75
|
+
params: { navigation_taxons: [sample_attributes] * 3 },
|
|
76
|
+
as: :json
|
|
77
|
+
|
|
78
|
+
assert_equal(204, response.status)
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def test_and_document_destroy
|
|
83
|
+
description 'Removing a navigation taxon'
|
|
84
|
+
route admin_api.navigation_taxon_path(':id')
|
|
85
|
+
|
|
86
|
+
record_request do
|
|
87
|
+
delete admin_api.navigation_taxon_path(create_taxon.id)
|
|
88
|
+
assert_equal(204, response.status)
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|