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,101 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'workarea/api/documentation_test'
|
|
3
|
+
|
|
4
|
+
module Workarea
|
|
5
|
+
module Api
|
|
6
|
+
module Admin
|
|
7
|
+
class ProductImagesDocumentationTest < DocumentationTest
|
|
8
|
+
include Workarea::Admin::IntegrationTest
|
|
9
|
+
|
|
10
|
+
resource 'Product Images'
|
|
11
|
+
|
|
12
|
+
def product
|
|
13
|
+
@product ||= create_product
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def base_64
|
|
17
|
+
'data:image/jpeg;base64,GEGseg42g3g...'
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def url
|
|
21
|
+
'http://dreamatico.com/data_images/kitten/kitten-2.jpg'
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def sample_attributes
|
|
25
|
+
{ image_url: base_64 }
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def create_image
|
|
29
|
+
product.images.create!(sample_attributes)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def test_and_document_index
|
|
33
|
+
description 'Listing product images'
|
|
34
|
+
route admin_api.product_images_path(':product_id')
|
|
35
|
+
|
|
36
|
+
2.times { create_image }
|
|
37
|
+
|
|
38
|
+
record_request do
|
|
39
|
+
get admin_api.product_images_path(product.id)
|
|
40
|
+
assert_equal(200, response.status)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_and_document_create_from_url
|
|
45
|
+
description 'Creating a product image from URL'
|
|
46
|
+
route admin_api.product_images_path(':product_id')
|
|
47
|
+
|
|
48
|
+
record_request do
|
|
49
|
+
VCR.use_cassette('product_image_from_url') do
|
|
50
|
+
post admin_api.product_images_path(product.id),
|
|
51
|
+
params: { image: { image_url: url } },
|
|
52
|
+
as: :json
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
assert_equal(201, response.status)
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def test_and_document_create_from_base_64
|
|
60
|
+
description 'Creating a product image from Base64'
|
|
61
|
+
route admin_api.product_images_path(':product_id')
|
|
62
|
+
|
|
63
|
+
record_request do
|
|
64
|
+
post admin_api.product_images_path(product.id),
|
|
65
|
+
params: { image: sample_attributes },
|
|
66
|
+
as: :json
|
|
67
|
+
|
|
68
|
+
assert_equal(201, response.status)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def test_and_document_update
|
|
73
|
+
description 'Updating a product image'
|
|
74
|
+
route admin_api.product_image_path(':product_id', ':id')
|
|
75
|
+
|
|
76
|
+
image = create_image
|
|
77
|
+
|
|
78
|
+
record_request do
|
|
79
|
+
patch admin_api.product_image_path(product.id, image.id),
|
|
80
|
+
params: { image: { name: 'foo' } },
|
|
81
|
+
as: :json
|
|
82
|
+
|
|
83
|
+
assert_equal(204, response.status)
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def test_and_document_destroy
|
|
88
|
+
description 'Removing a product image'
|
|
89
|
+
route admin_api.product_image_path(':product_id', ':id')
|
|
90
|
+
|
|
91
|
+
image = create_image
|
|
92
|
+
|
|
93
|
+
record_request do
|
|
94
|
+
delete admin_api.product_image_path(product.id, image.id)
|
|
95
|
+
assert_equal(204, response.status)
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'workarea/api/documentation_test'
|
|
3
|
+
|
|
4
|
+
module Workarea
|
|
5
|
+
module Api
|
|
6
|
+
module Admin
|
|
7
|
+
class ProductsDocumentationTest < DocumentationTest
|
|
8
|
+
include Workarea::Admin::IntegrationTest
|
|
9
|
+
|
|
10
|
+
resource 'Products'
|
|
11
|
+
|
|
12
|
+
def sample_attributes
|
|
13
|
+
create_product.as_json.except('_id', 'slug', 'last_indexed_at')
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_and_document_index
|
|
17
|
+
description 'Listing products'
|
|
18
|
+
route admin_api.products_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_product }
|
|
24
|
+
|
|
25
|
+
record_request do
|
|
26
|
+
get admin_api.products_path,
|
|
27
|
+
params: { page: 1, sort_by: 'created_at', sort_direction: 'desc' }
|
|
28
|
+
assert_equal(200, response.status)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def test_and_document_create
|
|
33
|
+
description 'Creating a product'
|
|
34
|
+
route admin_api.products_path
|
|
35
|
+
|
|
36
|
+
record_request do
|
|
37
|
+
post admin_api.products_path, params: sample_attributes, as: :json
|
|
38
|
+
assert_equal(201, response.status)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def test_and_document_show
|
|
43
|
+
description 'Showing a product'
|
|
44
|
+
route admin_api.product_path(':id')
|
|
45
|
+
|
|
46
|
+
product = create_product
|
|
47
|
+
|
|
48
|
+
record_request do
|
|
49
|
+
get admin_api.product_path(product.id)
|
|
50
|
+
assert_equal(200, response.status)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def test_and_document_update
|
|
55
|
+
description 'Updating a product'
|
|
56
|
+
route admin_api.product_path(':id')
|
|
57
|
+
|
|
58
|
+
product = create_product
|
|
59
|
+
|
|
60
|
+
record_request do
|
|
61
|
+
patch admin_api.product_path(product.id),
|
|
62
|
+
params: sample_attributes,
|
|
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 products'
|
|
71
|
+
route admin_api.bulk_products_path
|
|
72
|
+
|
|
73
|
+
record_request do
|
|
74
|
+
patch admin_api.bulk_products_path,
|
|
75
|
+
params: { products: [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 product'
|
|
84
|
+
route admin_api.product_path(':id')
|
|
85
|
+
|
|
86
|
+
product = create_product
|
|
87
|
+
|
|
88
|
+
record_request do
|
|
89
|
+
delete admin_api.product_path(product.id), as: :json
|
|
90
|
+
assert_equal(204, response.status)
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
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 PromoCodeListsDocumentationTest < DocumentationTest
|
|
8
|
+
include Workarea::Admin::IntegrationTest
|
|
9
|
+
|
|
10
|
+
resource 'Promo Code Lists'
|
|
11
|
+
|
|
12
|
+
def sample_attributes
|
|
13
|
+
create_code_list.as_json.except('_id')
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_and_document_index
|
|
17
|
+
description 'Listing promo code lists'
|
|
18
|
+
route admin_api.promo_code_lists_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_code_list }
|
|
24
|
+
|
|
25
|
+
record_request do
|
|
26
|
+
get admin_api.promo_code_lists_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 promo code list'
|
|
35
|
+
route admin_api.promo_code_lists_path
|
|
36
|
+
|
|
37
|
+
record_request do
|
|
38
|
+
post admin_api.promo_code_lists_path,
|
|
39
|
+
params: { promo_code_list: 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 promo code list'
|
|
48
|
+
route admin_api.promo_code_list_path(':id')
|
|
49
|
+
|
|
50
|
+
record_request do
|
|
51
|
+
get admin_api.promo_code_list_path(create_code_list.id)
|
|
52
|
+
assert_equal(200, response.status)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def test_and_document_update
|
|
57
|
+
description 'Updating a promo code list'
|
|
58
|
+
route admin_api.promo_code_list_path(':id')
|
|
59
|
+
|
|
60
|
+
record_request do
|
|
61
|
+
patch admin_api.promo_code_list_path(create_code_list.id),
|
|
62
|
+
params: { promo_code_list: { 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 promo code lists'
|
|
71
|
+
route admin_api.bulk_promo_code_lists_path
|
|
72
|
+
|
|
73
|
+
record_request do
|
|
74
|
+
patch admin_api.bulk_promo_code_lists_path,
|
|
75
|
+
params: { promo_code_lists: [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 promo code list'
|
|
84
|
+
route admin_api.promo_code_list_path(':id')
|
|
85
|
+
|
|
86
|
+
record_request do
|
|
87
|
+
delete admin_api.promo_code_list_path(create_code_list.id)
|
|
88
|
+
assert_equal(204, response.status)
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'workarea/api/documentation_test'
|
|
3
|
+
|
|
4
|
+
module Workarea
|
|
5
|
+
module Api
|
|
6
|
+
module Admin
|
|
7
|
+
class RecommendationSettingsDocumentationTest < DocumentationTest
|
|
8
|
+
include Workarea::Admin::IntegrationTest
|
|
9
|
+
|
|
10
|
+
resource 'Recommendation Settings'
|
|
11
|
+
|
|
12
|
+
def test_and_document_show
|
|
13
|
+
description 'Showing recommendation settings'
|
|
14
|
+
route admin_api.product_recommendation_settings_path(':product_id')
|
|
15
|
+
|
|
16
|
+
record_request do
|
|
17
|
+
get admin_api.product_recommendation_settings_path(create_recommendations.id)
|
|
18
|
+
assert_equal(200, response.status)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_and_document_update
|
|
23
|
+
description 'Updating recommendation settings'
|
|
24
|
+
route admin_api.product_recommendation_settings_path(':product_id')
|
|
25
|
+
|
|
26
|
+
record_request do
|
|
27
|
+
patch admin_api.product_recommendation_settings_path(create_recommendations.id),
|
|
28
|
+
params: { recommendation_settings: { product_ids: ['foo'] } },
|
|
29
|
+
as: :json
|
|
30
|
+
|
|
31
|
+
assert_equal(204, response.status)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'workarea/api/documentation_test'
|
|
3
|
+
|
|
4
|
+
module Workarea
|
|
5
|
+
module Api
|
|
6
|
+
module Admin
|
|
7
|
+
class RedirectsDocumentationTest < DocumentationTest
|
|
8
|
+
include Workarea::Admin::IntegrationTest
|
|
9
|
+
|
|
10
|
+
resource 'Redirects'
|
|
11
|
+
|
|
12
|
+
def sample_attributes
|
|
13
|
+
@sample_attributes ||= create_redirect.as_json.except('_id')
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_and_document_index
|
|
17
|
+
description 'Listing redirects'
|
|
18
|
+
route admin_api.redirects_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_redirect(path: "/#{i}") }
|
|
24
|
+
|
|
25
|
+
record_request do
|
|
26
|
+
get admin_api.redirects_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 redirect'
|
|
35
|
+
route admin_api.redirects_path
|
|
36
|
+
|
|
37
|
+
record_request do
|
|
38
|
+
post admin_api.redirects_path,
|
|
39
|
+
params: { redirect: sample_attributes.merge('path' => '/foo') },
|
|
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 redirect'
|
|
48
|
+
route admin_api.redirect_path(':id')
|
|
49
|
+
|
|
50
|
+
record_request do
|
|
51
|
+
get admin_api.redirect_path(create_redirect.id)
|
|
52
|
+
assert_equal(200, response.status)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def test_and_document_update
|
|
57
|
+
description 'Updating a redirects'
|
|
58
|
+
route admin_api.redirect_path(':id')
|
|
59
|
+
|
|
60
|
+
record_request do
|
|
61
|
+
patch admin_api.redirect_path(create_redirect.id),
|
|
62
|
+
params: { redirect: { path: '/foobar' } },
|
|
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 redirects'
|
|
71
|
+
route admin_api.bulk_redirects_path
|
|
72
|
+
|
|
73
|
+
data = Array.new(3) do
|
|
74
|
+
count = Navigation::Redirect.count
|
|
75
|
+
sample_attributes.merge('path' => "/foo#{count}")
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
record_request do
|
|
79
|
+
patch admin_api.bulk_redirects_path, params: { redirects: data }, as: :json
|
|
80
|
+
assert_equal(204, response.status)
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def test_and_document_destroy
|
|
85
|
+
description 'Removing a redirect'
|
|
86
|
+
route admin_api.redirect_path(':id')
|
|
87
|
+
|
|
88
|
+
record_request do
|
|
89
|
+
delete admin_api.redirect_path(create_redirect.id)
|
|
90
|
+
assert_equal(204, response.status)
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'workarea/api/documentation_test'
|
|
3
|
+
|
|
4
|
+
module Workarea
|
|
5
|
+
module Api
|
|
6
|
+
module Admin
|
|
7
|
+
class ReleaseChangesDocumentationTest < DocumentationTest
|
|
8
|
+
include Workarea::Admin::IntegrationTest
|
|
9
|
+
|
|
10
|
+
resource 'Release Changes'
|
|
11
|
+
|
|
12
|
+
def test_and_document_create
|
|
13
|
+
description 'Adding changes to a release'
|
|
14
|
+
route admin_api.product_path(':id')
|
|
15
|
+
explanation "release_id can be sent with any patch request \
|
|
16
|
+
to resources that can be changed through releases"
|
|
17
|
+
|
|
18
|
+
record_request do
|
|
19
|
+
patch admin_api.product_path(create_product.id),
|
|
20
|
+
params: {
|
|
21
|
+
product: { name: 'foo' },
|
|
22
|
+
release_id: create_release.id
|
|
23
|
+
},
|
|
24
|
+
as: :json
|
|
25
|
+
|
|
26
|
+
assert_equal(204, response.status)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|