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,58 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
module Workarea
|
|
4
|
+
module Api
|
|
5
|
+
module Admin
|
|
6
|
+
class CategoryProductRulesIntegrationTest < IntegrationTest
|
|
7
|
+
include Workarea::Admin::IntegrationTest
|
|
8
|
+
|
|
9
|
+
setup :set_sample_attributes
|
|
10
|
+
|
|
11
|
+
def set_sample_attributes
|
|
12
|
+
@category = create_category
|
|
13
|
+
@sample_attributes = { name: 'search', operator: 'equals', value: '*' }
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def create_rule
|
|
17
|
+
@category.product_rules.create!(@sample_attributes)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def test_lists_rules
|
|
21
|
+
rules = [create_rule, create_rule]
|
|
22
|
+
get admin_api.category_product_rules_path(@category.id)
|
|
23
|
+
result = JSON.parse(response.body)['product_rules']
|
|
24
|
+
|
|
25
|
+
assert_equal(2, result.length)
|
|
26
|
+
assert_equal(rules.first, ProductRule.new(result.first))
|
|
27
|
+
assert_equal(rules.second, ProductRule.new(result.second))
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_creates_rules
|
|
31
|
+
data = @sample_attributes
|
|
32
|
+
|
|
33
|
+
assert_difference '@category.reload; @category.product_rules.count;', 1 do
|
|
34
|
+
post admin_api.category_product_rules_path(@category.id),
|
|
35
|
+
params: { product_rule: data }
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def test_updates_rules
|
|
40
|
+
rule = create_rule
|
|
41
|
+
patch admin_api.category_product_rule_path(@category.id, rule.id),
|
|
42
|
+
params: { product_rule: { value: 'foo' } }
|
|
43
|
+
|
|
44
|
+
rule.reload
|
|
45
|
+
assert_equal('foo', rule.value)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def test_destroys_rules
|
|
49
|
+
rule = create_rule
|
|
50
|
+
|
|
51
|
+
assert_difference '@category.reload; @category.product_rules.count;', -1 do
|
|
52
|
+
delete admin_api.category_product_rule_path(@category.id, rule.id)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
module Workarea
|
|
4
|
+
module Api
|
|
5
|
+
module Admin
|
|
6
|
+
class ContentAssetsIntegrationTest < IntegrationTest
|
|
7
|
+
include Workarea::Admin::IntegrationTest
|
|
8
|
+
|
|
9
|
+
setup :set_sample_attributes
|
|
10
|
+
|
|
11
|
+
def set_sample_attributes
|
|
12
|
+
@sample_attributes = create_asset.as_json.except('_id')
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def test_lists_assets
|
|
16
|
+
assets = [create_asset, create_asset]
|
|
17
|
+
get admin_api.content_assets_path
|
|
18
|
+
result = JSON.parse(response.body)['assets']
|
|
19
|
+
|
|
20
|
+
assert_equal(3, result.length)
|
|
21
|
+
assert_equal(assets.second, Content::Asset.new(result.first))
|
|
22
|
+
assert_equal(assets.first, Content::Asset.new(result.second))
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def test_creates_assets
|
|
26
|
+
data = @sample_attributes
|
|
27
|
+
assert_difference 'Content::Asset.count', 1 do
|
|
28
|
+
post admin_api.content_assets_path, params: { asset: data }
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def test_shows_assets
|
|
33
|
+
asset = create_asset
|
|
34
|
+
get admin_api.content_asset_path(asset.id)
|
|
35
|
+
result = JSON.parse(response.body)['asset']
|
|
36
|
+
assert_equal(asset, Content::Asset.new(result))
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def test_updates_assets
|
|
40
|
+
asset = create_asset
|
|
41
|
+
patch admin_api.content_asset_path(asset.id),
|
|
42
|
+
params: { asset: { name: 'foo' } }
|
|
43
|
+
|
|
44
|
+
asset.reload
|
|
45
|
+
assert_equal('foo', asset.name)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def test_bulk_upserts_assets
|
|
49
|
+
data = [@sample_attributes] * 10
|
|
50
|
+
assert_difference 'Content::Asset.count', 10 do
|
|
51
|
+
patch admin_api.bulk_content_assets_path, params: { assets: data }
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def test_destroys_assets
|
|
56
|
+
asset = create_asset
|
|
57
|
+
|
|
58
|
+
assert_difference 'Content::Asset.count', -1 do
|
|
59
|
+
delete admin_api.content_asset_path(asset.id)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
module Workarea
|
|
4
|
+
module Api
|
|
5
|
+
module Admin
|
|
6
|
+
class ContentIntegrationTest < IntegrationTest
|
|
7
|
+
include Workarea::Admin::IntegrationTest
|
|
8
|
+
|
|
9
|
+
setup :set_sample_attributes
|
|
10
|
+
|
|
11
|
+
def set_sample_attributes
|
|
12
|
+
@sample_attributes = create_content.as_json.except('_id')
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def test_lists_content
|
|
16
|
+
content = [create_content, create_content]
|
|
17
|
+
get admin_api.content_index_path
|
|
18
|
+
result = JSON.parse(response.body)['content']
|
|
19
|
+
|
|
20
|
+
assert_equal(3, result.length)
|
|
21
|
+
assert_equal(content.second, Content.new(result.first))
|
|
22
|
+
assert_equal(content.first, Content.new(result.second))
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def test_creates_content
|
|
26
|
+
data = @sample_attributes
|
|
27
|
+
|
|
28
|
+
assert_difference 'Content.count', 1 do
|
|
29
|
+
post admin_api.content_index_path, params: { content: data }
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def test_shows_content
|
|
34
|
+
content = create_content
|
|
35
|
+
get admin_api.content_path(content.id)
|
|
36
|
+
result = JSON.parse(response.body)['content']
|
|
37
|
+
assert_equal(content, Content.new(result))
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def test_updates_content
|
|
41
|
+
content = create_content
|
|
42
|
+
patch admin_api.content_path(content.id),
|
|
43
|
+
params: { content: { browser_title: 'foo' } }
|
|
44
|
+
|
|
45
|
+
content.reload
|
|
46
|
+
assert_equal('foo', content.browser_title)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def test_bulk_upserts_content
|
|
50
|
+
data = [@sample_attributes] * 10
|
|
51
|
+
|
|
52
|
+
assert_difference 'Content.count', 10 do
|
|
53
|
+
patch admin_api.bulk_content_index_path, params: { content: data }
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
module Workarea
|
|
4
|
+
module Api
|
|
5
|
+
module Admin
|
|
6
|
+
class DiscountsIntegrationTest < IntegrationTest
|
|
7
|
+
include Workarea::Admin::IntegrationTest
|
|
8
|
+
|
|
9
|
+
setup :set_sample_attributes
|
|
10
|
+
alias create_discount create_product_discount
|
|
11
|
+
|
|
12
|
+
def set_sample_attributes
|
|
13
|
+
@sample_attributes = create_discount
|
|
14
|
+
.as_json
|
|
15
|
+
.except('_id')
|
|
16
|
+
.merge('type' => 'product')
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_lists_discounts
|
|
20
|
+
discounts = [create_discount, create_discount]
|
|
21
|
+
get admin_api.discounts_path
|
|
22
|
+
result = JSON.parse(response.body)['discounts']
|
|
23
|
+
|
|
24
|
+
assert_equal(3, result.length)
|
|
25
|
+
assert_equal(discounts.second, Pricing::Discount::Product.new(result.first))
|
|
26
|
+
assert_equal(discounts.first, Pricing::Discount::Product.new(result.second))
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def test_creates_discounts
|
|
30
|
+
data = @sample_attributes
|
|
31
|
+
|
|
32
|
+
assert_difference 'Pricing::Discount.count', 1 do
|
|
33
|
+
post admin_api.discounts_path, params: { discount: data }
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_shows_discounts
|
|
38
|
+
discount = create_discount
|
|
39
|
+
get admin_api.discount_path(discount.id)
|
|
40
|
+
result = JSON.parse(response.body)['discount']
|
|
41
|
+
assert_equal(discount, Pricing::Discount::Product.new(result))
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_updates_discounts
|
|
45
|
+
discount = create_discount
|
|
46
|
+
|
|
47
|
+
patch admin_api.discount_path(discount.id),
|
|
48
|
+
params: { discount: { name: 'foo' } }
|
|
49
|
+
|
|
50
|
+
discount.reload
|
|
51
|
+
assert_equal('foo', discount.name)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def test_destroys_discounts
|
|
55
|
+
discount = create_discount
|
|
56
|
+
|
|
57
|
+
assert_difference 'Pricing::Discount.count', -1 do
|
|
58
|
+
delete admin_api.discount_path(discount.id)
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
module Workarea
|
|
4
|
+
module Api
|
|
5
|
+
module Admin
|
|
6
|
+
class EmailSignupsIntegrationTest < IntegrationTest
|
|
7
|
+
include Workarea::Admin::IntegrationTest
|
|
8
|
+
|
|
9
|
+
def test_lists_email_signups
|
|
10
|
+
email_signups = [
|
|
11
|
+
create_email_signup(email: '1@workarea.com'),
|
|
12
|
+
create_email_signup(email: '2@workarea.com')
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
get admin_api.email_signups_path
|
|
16
|
+
result = JSON.parse(response.body)['email_signups']
|
|
17
|
+
|
|
18
|
+
assert_equal(2, result.length)
|
|
19
|
+
assert_equal(email_signups.second, Email::Signup.new(result.first))
|
|
20
|
+
assert_equal(email_signups.first, Email::Signup.new(result.second))
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_shows_email_signups
|
|
24
|
+
email_signup = create_email_signup
|
|
25
|
+
get admin_api.email_signup_path(email_signup.id)
|
|
26
|
+
result = JSON.parse(response.body)['email_signup']
|
|
27
|
+
assert_equal(email_signup, Email::Signup.new(result))
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
module Workarea
|
|
4
|
+
module Api
|
|
5
|
+
module Admin
|
|
6
|
+
class ErrorHandlingIntegrationTest < IntegrationTest
|
|
7
|
+
include Workarea::Admin::IntegrationTest
|
|
8
|
+
|
|
9
|
+
def test_handles_mongoid_not_found
|
|
10
|
+
patch admin_api.product_path('FOO'), params: { product: { name: 'foo' } }
|
|
11
|
+
assert_equal(404, response.status)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
module Workarea
|
|
4
|
+
module Api
|
|
5
|
+
module Admin
|
|
6
|
+
class FulfillmentsIntegrationTest < IntegrationTest
|
|
7
|
+
include Workarea::Admin::IntegrationTest
|
|
8
|
+
|
|
9
|
+
def create_fulfillment(*args)
|
|
10
|
+
order = create_placed_order(*args)
|
|
11
|
+
Fulfillment.find(order.id)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_lists_fulfillments
|
|
15
|
+
fulfillments = [create_fulfillment(id: '1'), create_fulfillment(id: '2')]
|
|
16
|
+
get admin_api.fulfillments_path
|
|
17
|
+
result = JSON.parse(response.body)['fulfillments']
|
|
18
|
+
|
|
19
|
+
assert_equal(2, result.length)
|
|
20
|
+
assert_equal(fulfillments.second, Fulfillment.new(result.first))
|
|
21
|
+
assert_equal(fulfillments.first, Fulfillment.new(result.second))
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def test_shows_fulfillments
|
|
25
|
+
fulfillment = create_fulfillment
|
|
26
|
+
get admin_api.fulfillment_path(fulfillment.id)
|
|
27
|
+
result = JSON.parse(response.body)['fulfillment']
|
|
28
|
+
assert_equal(fulfillment, Fulfillment.new(result))
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def test_ships_items
|
|
32
|
+
fulfillment = create_fulfillment
|
|
33
|
+
former_status = fulfillment.status
|
|
34
|
+
|
|
35
|
+
post admin_api.ship_items_fulfillment_path(fulfillment.id),
|
|
36
|
+
params: {
|
|
37
|
+
tracking_number: '1Z',
|
|
38
|
+
items: [
|
|
39
|
+
{ id: fulfillment.items.first.order_item_id, quantity: 1 }
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
refute_equal(former_status, fulfillment.reload.status)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_cancels_items
|
|
47
|
+
fulfillment = create_fulfillment
|
|
48
|
+
former_status = fulfillment.status
|
|
49
|
+
|
|
50
|
+
post admin_api.cancel_items_fulfillment_path(fulfillment.id),
|
|
51
|
+
params: {
|
|
52
|
+
items: [
|
|
53
|
+
{ id: fulfillment.items.first.order_item_id, quantity: 1 }
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
refute_equal(former_status, fulfillment.reload.status)
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
module Workarea
|
|
4
|
+
module Api
|
|
5
|
+
module Admin
|
|
6
|
+
class InventorySkusIntegrationTest < IntegrationTest
|
|
7
|
+
include Workarea::Admin::IntegrationTest
|
|
8
|
+
|
|
9
|
+
setup :set_sample_attributes
|
|
10
|
+
|
|
11
|
+
def set_sample_attributes
|
|
12
|
+
@sample_attributes = create_inventory.as_json.except('_id')
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def test_lists_inventory_skus
|
|
16
|
+
inventory_skus = [create_inventory(id: '1'), create_inventory(id: '2')]
|
|
17
|
+
get admin_api.inventory_skus_path
|
|
18
|
+
result = JSON.parse(response.body)['inventory_skus']
|
|
19
|
+
|
|
20
|
+
assert_equal(3, result.length)
|
|
21
|
+
assert_equal(inventory_skus.second, Inventory::Sku.new(result.first))
|
|
22
|
+
assert_equal(inventory_skus.first, Inventory::Sku.new(result.second))
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def test_creates_inventory_skus
|
|
26
|
+
data = @sample_attributes.merge(id: '1')
|
|
27
|
+
|
|
28
|
+
assert_difference 'Inventory::Sku.count', 1 do
|
|
29
|
+
post admin_api.inventory_skus_path, params: { inventory_sku: data }
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def test_shows_inventory_skus
|
|
34
|
+
inventory_sku = create_inventory(id: 'foo')
|
|
35
|
+
get admin_api.inventory_sku_path('foo')
|
|
36
|
+
result = JSON.parse(response.body)['inventory_sku']
|
|
37
|
+
assert_equal(inventory_sku, Inventory::Sku.new(result))
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def test_updates_inventory_skus
|
|
41
|
+
inventory_sku = create_inventory(id: 'foo')
|
|
42
|
+
patch admin_api.inventory_sku_path('foo'),
|
|
43
|
+
params: { inventory_sku: { policy: 'ignore' } }
|
|
44
|
+
|
|
45
|
+
assert_equal('ignore', inventory_sku.reload.policy)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def test_bulk_upserts_inventory_skus
|
|
49
|
+
count = 0
|
|
50
|
+
data = Array.new(10) do
|
|
51
|
+
count += 1
|
|
52
|
+
@sample_attributes.merge(id: count)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
assert_difference 'Inventory::Sku.count', 10 do
|
|
56
|
+
patch admin_api.bulk_inventory_skus_path, params: { inventory_skus: data }
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def test_destroys_inventory_skus
|
|
61
|
+
create_inventory(id: 'foo')
|
|
62
|
+
|
|
63
|
+
assert_difference 'Inventory::Sku.count', -1 do
|
|
64
|
+
delete admin_api.inventory_sku_path('foo')
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
module Workarea
|
|
4
|
+
module Api
|
|
5
|
+
module Admin
|
|
6
|
+
class NavigationMenusIntegrationTest < IntegrationTest
|
|
7
|
+
include Workarea::Admin::IntegrationTest
|
|
8
|
+
|
|
9
|
+
setup :set_sample_attributes
|
|
10
|
+
|
|
11
|
+
def set_sample_attributes
|
|
12
|
+
@sample_attributes = create_menu.as_json.except('_id')
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def test_lists_menus
|
|
16
|
+
2.times { create_menu }
|
|
17
|
+
get admin_api.navigation_menus_path
|
|
18
|
+
result = JSON.parse(response.body)['navigation_menus']
|
|
19
|
+
assert_equal(3, result.length)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_creates_menus
|
|
23
|
+
assert_difference 'Navigation::Menu.count', 1 do
|
|
24
|
+
post admin_api.navigation_menus_path,
|
|
25
|
+
params: { navigation_menu: @sample_attributes }
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def test_shows_menus
|
|
30
|
+
menu = create_menu
|
|
31
|
+
get admin_api.navigation_menu_path(menu.id)
|
|
32
|
+
result = JSON.parse(response.body)['navigation_menu']
|
|
33
|
+
assert_equal(menu, Navigation::Menu.new(result))
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test_updates_menus
|
|
37
|
+
menu = create_menu
|
|
38
|
+
patch admin_api.navigation_menu_path(menu.id),
|
|
39
|
+
params: { navigation_menu: { name: 'foo' } }
|
|
40
|
+
|
|
41
|
+
assert_equal('foo', menu.reload.name)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_destroys_menus
|
|
45
|
+
menu = create_menu
|
|
46
|
+
|
|
47
|
+
assert_difference 'Navigation::Menu.count', -1 do
|
|
48
|
+
delete admin_api.navigation_menu_path(menu.id)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|