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,95 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'workarea/api/documentation_test'
|
|
3
|
+
|
|
4
|
+
module Workarea
|
|
5
|
+
module Api
|
|
6
|
+
module Admin
|
|
7
|
+
class TaxCategoriesDocumentationTest < DocumentationTest
|
|
8
|
+
include Workarea::Admin::IntegrationTest
|
|
9
|
+
|
|
10
|
+
resource 'Tax Categories'
|
|
11
|
+
|
|
12
|
+
def sample_attributes
|
|
13
|
+
@count ||= 0
|
|
14
|
+
@count += 1
|
|
15
|
+
|
|
16
|
+
create_tax_category.as_json.except('_id').merge('code' => "00#{@count}")
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_and_document_index
|
|
20
|
+
description 'Listing tax categories'
|
|
21
|
+
route admin_api.tax_categories_path
|
|
22
|
+
parameter :page, 'Current page'
|
|
23
|
+
parameter :sort_by, 'Field on which to sort (see responses for possible values)'
|
|
24
|
+
parameter :sort_direction, 'Direction to sort (asc or desc)'
|
|
25
|
+
|
|
26
|
+
2.times { create_tax_category }
|
|
27
|
+
|
|
28
|
+
record_request do
|
|
29
|
+
get admin_api.tax_categories_path
|
|
30
|
+
assert_equal(200, response.status)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def test_and_document_create
|
|
35
|
+
description 'Creating a tax category'
|
|
36
|
+
route admin_api.tax_categories_path
|
|
37
|
+
|
|
38
|
+
record_request do
|
|
39
|
+
post admin_api.tax_categories_path,
|
|
40
|
+
params: { tax_category: sample_attributes },
|
|
41
|
+
as: :json
|
|
42
|
+
|
|
43
|
+
assert_equal(201, response.status)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def test_and_document_show
|
|
48
|
+
description 'Showing a tax category'
|
|
49
|
+
route admin_api.tax_category_path(':id')
|
|
50
|
+
|
|
51
|
+
record_request do
|
|
52
|
+
get admin_api.tax_category_path(create_tax_category.id)
|
|
53
|
+
assert_equal(200, response.status)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def test_and_document_update
|
|
58
|
+
description 'Updating a tax categories'
|
|
59
|
+
route admin_api.tax_category_path(':id')
|
|
60
|
+
|
|
61
|
+
record_request do
|
|
62
|
+
patch admin_api.tax_category_path(create_tax_category.id),
|
|
63
|
+
params: { tax_category: { name: 'foo' } },
|
|
64
|
+
as: :json
|
|
65
|
+
|
|
66
|
+
assert_equal(204, response.status)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def test_and_document_bulk_upsert
|
|
71
|
+
description 'Bulk upserting tax categories'
|
|
72
|
+
route admin_api.bulk_tax_categories_path
|
|
73
|
+
|
|
74
|
+
record_request do
|
|
75
|
+
patch admin_api.bulk_tax_categories_path,
|
|
76
|
+
params: { tax_categories: [sample_attributes] * 3 },
|
|
77
|
+
as: :json
|
|
78
|
+
|
|
79
|
+
assert_equal(204, response.status)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def test_and_document_destroy
|
|
84
|
+
description 'Removing a tax category'
|
|
85
|
+
route admin_api.tax_category_path(':id')
|
|
86
|
+
|
|
87
|
+
record_request do
|
|
88
|
+
delete admin_api.tax_category_path(create_tax_category.id)
|
|
89
|
+
assert_equal(204, response.status)
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
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 TaxRatesDocumentationTest < DocumentationTest
|
|
8
|
+
include Workarea::Admin::IntegrationTest
|
|
9
|
+
|
|
10
|
+
resource 'Tax Rates'
|
|
11
|
+
|
|
12
|
+
def tax_category
|
|
13
|
+
@tax_category ||= create_tax_category
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def sample_attributes
|
|
17
|
+
@sample_attributes ||= tax_category.rates.first.as_json.except('_id')
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def create_rate
|
|
21
|
+
tax_category.rates.create!(sample_attributes)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def test_and_document_index
|
|
25
|
+
description 'Listing tax rates'
|
|
26
|
+
route admin_api.tax_category_rates_path(':tax_category_id')
|
|
27
|
+
|
|
28
|
+
2.times { create_rate }
|
|
29
|
+
|
|
30
|
+
record_request do
|
|
31
|
+
get admin_api.tax_category_rates_path(tax_category.id)
|
|
32
|
+
assert_equal(200, response.status)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test_and_document_create
|
|
37
|
+
description 'Creating a tax rate'
|
|
38
|
+
route admin_api.tax_category_rates_path(':tax_category_id')
|
|
39
|
+
|
|
40
|
+
record_request do
|
|
41
|
+
post admin_api.tax_category_rates_path(tax_category.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 tax rate'
|
|
51
|
+
route admin_api.tax_category_rate_path(':tax_category_id', ':id')
|
|
52
|
+
|
|
53
|
+
rate = create_rate
|
|
54
|
+
|
|
55
|
+
record_request do
|
|
56
|
+
patch admin_api.tax_category_rate_path(tax_category.id, rate.id),
|
|
57
|
+
params: { rate: { percentage: 0.04 } },
|
|
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 tax rate'
|
|
66
|
+
route admin_api.tax_category_rate_path(':tax_category_id', ':id')
|
|
67
|
+
|
|
68
|
+
rate = create_rate
|
|
69
|
+
|
|
70
|
+
record_request do
|
|
71
|
+
patch admin_api.tax_category_rate_path(tax_category.id, rate.id)
|
|
72
|
+
assert_equal(204, response.status)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'workarea/api/documentation_test'
|
|
3
|
+
|
|
4
|
+
module Workarea
|
|
5
|
+
module Api
|
|
6
|
+
module Admin
|
|
7
|
+
class UsersDocumentationTest < DocumentationTest
|
|
8
|
+
include Workarea::Admin::IntegrationTest
|
|
9
|
+
|
|
10
|
+
resource 'Users'
|
|
11
|
+
|
|
12
|
+
def sample_attributes
|
|
13
|
+
@count ||= 0
|
|
14
|
+
@count += 1
|
|
15
|
+
|
|
16
|
+
create_user
|
|
17
|
+
.as_json
|
|
18
|
+
.except('_id', 'password_digest', 'name', 'super_admin', 'token')
|
|
19
|
+
.merge('email' => "user#{@count}@workarea.com", 'password' => 'p@ssw0rd')
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_and_document_index
|
|
23
|
+
description 'Listing users'
|
|
24
|
+
route admin_api.users_path
|
|
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_user }
|
|
30
|
+
|
|
31
|
+
record_request do
|
|
32
|
+
get admin_api.users_path,
|
|
33
|
+
params: { page: 1, sort_by: 'created_at', sort_direction: 'desc' }
|
|
34
|
+
|
|
35
|
+
assert_equal(200, response.status)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def test_and_document_create
|
|
40
|
+
description 'Creating a user'
|
|
41
|
+
route admin_api.users_path
|
|
42
|
+
|
|
43
|
+
record_request do
|
|
44
|
+
post admin_api.users_path, params: { user: sample_attributes }, as: :json
|
|
45
|
+
assert_equal(201, response.status)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def test_and_document_show
|
|
50
|
+
description 'Showing a user'
|
|
51
|
+
route admin_api.user_path(':id')
|
|
52
|
+
|
|
53
|
+
record_request do
|
|
54
|
+
get admin_api.user_path(create_user.id)
|
|
55
|
+
assert_equal(200, response.status)
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def test_and_document_update
|
|
60
|
+
description 'Updating a user'
|
|
61
|
+
route admin_api.user_path(':id')
|
|
62
|
+
|
|
63
|
+
record_request do
|
|
64
|
+
patch admin_api.user_path(create_user.id),
|
|
65
|
+
params: { user: sample_attributes },
|
|
66
|
+
as: :json
|
|
67
|
+
|
|
68
|
+
assert_equal(204, response.status)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def test_and_document_bulk_upsert
|
|
73
|
+
description 'Bulk upserting users'
|
|
74
|
+
route admin_api.bulk_users_path
|
|
75
|
+
|
|
76
|
+
record_request do
|
|
77
|
+
patch admin_api.bulk_users_path,
|
|
78
|
+
params: { users: [sample_attributes] * 3 },
|
|
79
|
+
as: :json
|
|
80
|
+
|
|
81
|
+
assert_equal(204, response.status)
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def test_and_document_destroy
|
|
86
|
+
description 'Removing a user'
|
|
87
|
+
route admin_api.user_path(':id')
|
|
88
|
+
|
|
89
|
+
user = create_user
|
|
90
|
+
|
|
91
|
+
record_request do
|
|
92
|
+
delete admin_api.user_path(user.id), as: :json
|
|
93
|
+
assert_equal(204, response.status)
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
require 'workarea/api/documentation_test'
|
|
3
|
+
|
|
4
|
+
module Workarea
|
|
5
|
+
module Api
|
|
6
|
+
module Admin
|
|
7
|
+
class VariantsDocumentationTest < DocumentationTest
|
|
8
|
+
include Workarea::Admin::IntegrationTest
|
|
9
|
+
|
|
10
|
+
resource 'Variants'
|
|
11
|
+
|
|
12
|
+
def product
|
|
13
|
+
@product ||= create_product
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def sample_attributes
|
|
17
|
+
product.variants.first.as_json.except('_id')
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def create_variant
|
|
21
|
+
product.variants.create!(
|
|
22
|
+
sample_attributes.merge('sku' => "SKU#{rand(1000)}").except('name')
|
|
23
|
+
)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_and_document_index
|
|
27
|
+
description 'Listing product variants'
|
|
28
|
+
route admin_api.product_variants_path(':product_id')
|
|
29
|
+
|
|
30
|
+
2.times { create_variant }
|
|
31
|
+
|
|
32
|
+
record_request do
|
|
33
|
+
get admin_api.product_variants_path(product.id)
|
|
34
|
+
assert_equal(200, response.status)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def test_and_document_create
|
|
39
|
+
description 'Creating a product variant'
|
|
40
|
+
route admin_api.product_variants_path(':product_id')
|
|
41
|
+
|
|
42
|
+
record_request do
|
|
43
|
+
post admin_api.product_variants_path(product.id),
|
|
44
|
+
params: { variant: sample_attributes },
|
|
45
|
+
as: :json
|
|
46
|
+
|
|
47
|
+
assert_equal(201, response.status)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def test_and_document_update
|
|
52
|
+
description 'Updating a product variant'
|
|
53
|
+
route admin_api.product_variant_path(':product_id', ':id')
|
|
54
|
+
|
|
55
|
+
variant = create_variant
|
|
56
|
+
|
|
57
|
+
record_request do
|
|
58
|
+
patch admin_api.product_variant_path(product.id, variant.id),
|
|
59
|
+
params: { variant: { name: 'Foo' } },
|
|
60
|
+
as: :json
|
|
61
|
+
|
|
62
|
+
assert_equal(204, response.status)
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def test_and_document_destroy
|
|
67
|
+
description 'Removing a product variant'
|
|
68
|
+
route admin_api.product_variant_path(':product_id', ':id')
|
|
69
|
+
|
|
70
|
+
variant = create_variant
|
|
71
|
+
|
|
72
|
+
record_request do
|
|
73
|
+
delete admin_api.product_variant_path(product.id, variant.id)
|
|
74
|
+
assert_equal(204, response.status)
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
data/test/dummy/Rakefile
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
#!/usr/bin/env rake
|
|
2
|
+
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
|
3
|
+
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
|
4
|
+
|
|
5
|
+
require File.expand_path('../config/application', __FILE__)
|
|
6
|
+
|
|
7
|
+
Rails.application.load_tasks
|
|
File without changes
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
|
2
|
+
// listed below.
|
|
3
|
+
//
|
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
|
5
|
+
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
|
|
6
|
+
//
|
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
|
8
|
+
// compiled file.
|
|
9
|
+
//
|
|
10
|
+
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
|
|
11
|
+
// about supported directives.
|
|
12
|
+
//
|
|
13
|
+
//= require_tree .
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
|
3
|
+
* listed below.
|
|
4
|
+
*
|
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
|
6
|
+
* or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
|
|
7
|
+
*
|
|
8
|
+
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
|
|
9
|
+
* compiled file so the styles you add here take precedence over styles defined in any styles
|
|
10
|
+
* defined in the other CSS/SCSS files in this directory. It is generally better to create a new
|
|
11
|
+
* file per style scope.
|
|
12
|
+
*
|
|
13
|
+
*= require_tree .
|
|
14
|
+
*= require_self
|
|
15
|
+
*/
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>Dummy</title>
|
|
5
|
+
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
|
|
6
|
+
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
|
|
7
|
+
<%= csrf_meta_tags %>
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
|
|
11
|
+
<%= yield %>
|
|
12
|
+
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|