workarea-api-admin 4.4.7 → 4.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/workarea/api/admin/categories_controller.rb +6 -0
  3. data/app/controllers/workarea/api/admin/content_assets_controller.rb +6 -0
  4. data/app/controllers/workarea/api/admin/content_controller.rb +6 -0
  5. data/app/controllers/workarea/api/admin/discounts_controller.rb +7 -0
  6. data/app/controllers/workarea/api/admin/email_signups_controller.rb +20 -4
  7. data/app/controllers/workarea/api/admin/fulfillments_controller.rb +6 -1
  8. data/app/controllers/workarea/api/admin/inventory_skus_controller.rb +7 -0
  9. data/app/controllers/workarea/api/admin/navigation_menus_controller.rb +7 -0
  10. data/app/controllers/workarea/api/admin/navigation_taxons_controller.rb +7 -0
  11. data/app/controllers/workarea/api/admin/orders_controller.rb +19 -1
  12. data/app/controllers/workarea/api/admin/pages_controller.rb +7 -0
  13. data/app/controllers/workarea/api/admin/payment_profiles_controller.rb +7 -0
  14. data/app/controllers/workarea/api/admin/payment_transactions_controller.rb +7 -0
  15. data/app/controllers/workarea/api/admin/payments_controller.rb +7 -0
  16. data/app/controllers/workarea/api/admin/pricing_skus_controller.rb +7 -0
  17. data/app/controllers/workarea/api/admin/products_controller.rb +11 -4
  18. data/app/controllers/workarea/api/admin/promo_code_lists_controller.rb +7 -0
  19. data/app/controllers/workarea/api/admin/redirects_controller.rb +7 -0
  20. data/app/controllers/workarea/api/admin/releases_controller.rb +7 -0
  21. data/app/controllers/workarea/api/admin/shipping_services_controller.rb +7 -0
  22. data/app/controllers/workarea/api/admin/shippings_controller.rb +7 -0
  23. data/app/controllers/workarea/api/admin/swagger_controller.rb +33 -0
  24. data/app/controllers/workarea/api/admin/tax_categories_controller.rb +2 -0
  25. data/app/controllers/workarea/api/admin/users_controller.rb +28 -14
  26. data/app/models/workarea/api/admin/date_filtering.rb +27 -0
  27. data/lib/workarea/api/admin/engine.rb +11 -0
  28. data/test/documentation/workarea/api/admin/email_signups_documentation_test.rb +14 -2
  29. data/test/documentation/workarea/api/admin/global_functionality_documentation_test.rb +140 -0
  30. data/test/documentation/workarea/api/admin/orders_documentation_test.rb +13 -6
  31. data/test/documentation/workarea/api/admin/users_documentation_test.rb +14 -2
  32. data/test/dummy/config/initializers/session_store.rb +3 -1
  33. data/test/integration/workarea/api/admin/categories_integration_test.rb +32 -0
  34. data/test/integration/workarea/api/admin/content_assets_integration_test.rb +32 -0
  35. data/test/integration/workarea/api/admin/content_integration_test.rb +32 -0
  36. data/test/integration/workarea/api/admin/discounts_integration_test.rb +32 -0
  37. data/test/integration/workarea/api/admin/email_signups_integration_test.rb +38 -1
  38. data/test/integration/workarea/api/admin/fulfillments_integration_test.rb +22 -0
  39. data/test/integration/workarea/api/admin/inventory_skus_integration_test.rb +32 -0
  40. data/test/integration/workarea/api/admin/navigation_menus_integration_test.rb +32 -0
  41. data/test/integration/workarea/api/admin/navigation_taxons_integration_test.rb +32 -0
  42. data/test/integration/workarea/api/admin/orders_integration_test.rb +41 -2
  43. data/test/integration/workarea/api/admin/pages_integration_test.rb +32 -0
  44. data/test/integration/workarea/api/admin/payment_profiles_integration_test.rb +32 -0
  45. data/test/integration/workarea/api/admin/payment_transactions_integration_test.rb +32 -0
  46. data/test/integration/workarea/api/admin/payments_integration_test.rb +32 -0
  47. data/test/integration/workarea/api/admin/pricing_skus_integration_test.rb +32 -0
  48. data/test/integration/workarea/api/admin/products_integration_test.rb +35 -0
  49. data/test/integration/workarea/api/admin/promo_code_lists_integration_test.rb +31 -0
  50. data/test/integration/workarea/api/admin/redirects_integration_test.rb +31 -0
  51. data/test/integration/workarea/api/admin/releases_integration_test.rb +31 -0
  52. data/test/integration/workarea/api/admin/shipping_services_integration_test.rb +31 -0
  53. data/test/integration/workarea/api/admin/shippings_integration_test.rb +31 -0
  54. data/test/integration/workarea/api/admin/tax_categories_integration_test.rb +31 -0
  55. data/test/integration/workarea/api/admin/users_integration_test.rb +44 -1
  56. metadata +5 -3
@@ -46,8 +46,8 @@ module Workarea
46
46
  end
47
47
  end
48
48
 
49
- def test_and_document_show
50
- description 'Showing a user'
49
+ def test_and_document_show_by_id
50
+ description 'Showing a user by ID'
51
51
  route admin_api.user_path(':id')
52
52
 
53
53
  record_request do
@@ -56,6 +56,18 @@ module Workarea
56
56
  end
57
57
  end
58
58
 
59
+ def test_and_document_show_by_email
60
+ description 'Showing a user by email'
61
+ route admin_api.user_path(':email')
62
+
63
+ user = create_user(email: 'test@workarea.com')
64
+
65
+ record_request do
66
+ get admin_api.user_path(URI.escape(user.email, '+@.'))
67
+ assert_equal(200, response.status)
68
+ end
69
+ end
70
+
59
71
  def test_and_document_update
60
72
  description 'Updating a user'
61
73
  route admin_api.user_path(':id')
@@ -1,3 +1,5 @@
1
1
  # Be sure to restart your server when you modify this file.
2
2
 
3
- Rails.application.config.session_store :cookie_store, key: '_dummy_session'
3
+ Rails.application.config.session_store :cookie_store,
4
+ key: '_dummy_session',
5
+ expire_after: 30.minutes
@@ -20,6 +20,38 @@ module Workarea
20
20
  assert_equal(3, result.length)
21
21
  assert_equal(categories.second, Catalog::Category.new(result.first))
22
22
  assert_equal(categories.first, Catalog::Category.new(result.second))
23
+
24
+ travel_to 1.week.from_now
25
+
26
+ get admin_api.categories_path(
27
+ updated_at_starts_at: 5.days.ago,
28
+ updated_at_ends_at: 4.days.ago
29
+ )
30
+ result = JSON.parse(response.body)['categories']
31
+
32
+ assert_equal(0, result.length)
33
+
34
+ get admin_api.categories_path(
35
+ created_at_starts_at: 5.days.ago,
36
+ created_at_ends_at: 4.days.ago
37
+ )
38
+ result = JSON.parse(response.body)['categories']
39
+
40
+ assert_equal(0, result.length)
41
+
42
+ get admin_api.categories_path(
43
+ updated_at_starts_at: 8.days.ago,
44
+ updated_at_ends_at: 6.days.ago
45
+ )
46
+ result = JSON.parse(response.body)['categories']
47
+ assert_equal(3, result.length)
48
+
49
+ get admin_api.categories_path(
50
+ created_at_starts_at: 8.days.ago,
51
+ created_at_ends_at: 6.days.ago
52
+ )
53
+ result = JSON.parse(response.body)['categories']
54
+ assert_equal(3, result.length)
23
55
  end
24
56
 
25
57
  def test_creates_categories
@@ -20,6 +20,38 @@ module Workarea
20
20
  assert_equal(3, result.length)
21
21
  assert_equal(assets.second, Content::Asset.new(result.first))
22
22
  assert_equal(assets.first, Content::Asset.new(result.second))
23
+
24
+ travel_to 1.week.from_now
25
+
26
+ get admin_api.content_assets_path(
27
+ updated_at_starts_at: 5.days.ago,
28
+ updated_at_ends_at: 4.days.ago
29
+ )
30
+ result = JSON.parse(response.body)['assets']
31
+
32
+ assert_equal(0, result.length)
33
+
34
+ get admin_api.content_assets_path(
35
+ created_at_starts_at: 5.days.ago,
36
+ created_at_ends_at: 4.days.ago
37
+ )
38
+ result = JSON.parse(response.body)['assets']
39
+
40
+ assert_equal(0, result.length)
41
+
42
+ get admin_api.content_assets_path(
43
+ updated_at_starts_at: 8.days.ago,
44
+ updated_at_ends_at: 6.days.ago
45
+ )
46
+ result = JSON.parse(response.body)['assets']
47
+ assert_equal(3, result.length)
48
+
49
+ get admin_api.content_assets_path(
50
+ created_at_starts_at: 8.days.ago,
51
+ created_at_ends_at: 6.days.ago
52
+ )
53
+ result = JSON.parse(response.body)['assets']
54
+ assert_equal(3, result.length)
23
55
  end
24
56
 
25
57
  def test_creates_assets
@@ -20,6 +20,38 @@ module Workarea
20
20
  assert_equal(3, result.length)
21
21
  assert_equal(content.second, Content.new(result.first))
22
22
  assert_equal(content.first, Content.new(result.second))
23
+
24
+ travel_to 1.week.from_now
25
+
26
+ get admin_api.content_index_path(
27
+ updated_at_starts_at: 5.days.ago,
28
+ updated_at_ends_at: 4.days.ago
29
+ )
30
+ result = JSON.parse(response.body)['content']
31
+
32
+ assert_equal(0, result.length)
33
+
34
+ get admin_api.content_index_path(
35
+ created_at_starts_at: 5.days.ago,
36
+ created_at_ends_at: 4.days.ago
37
+ )
38
+ result = JSON.parse(response.body)['content']
39
+
40
+ assert_equal(0, result.length)
41
+
42
+ get admin_api.content_index_path(
43
+ updated_at_starts_at: 8.days.ago,
44
+ updated_at_ends_at: 6.days.ago
45
+ )
46
+ result = JSON.parse(response.body)['content']
47
+ assert_equal(3, result.length)
48
+
49
+ get admin_api.content_index_path(
50
+ created_at_starts_at: 8.days.ago,
51
+ created_at_ends_at: 6.days.ago
52
+ )
53
+ result = JSON.parse(response.body)['content']
54
+ assert_equal(3, result.length)
23
55
  end
24
56
 
25
57
  def test_creates_content
@@ -24,6 +24,38 @@ module Workarea
24
24
  assert_equal(3, result.length)
25
25
  assert_equal(discounts.second, Pricing::Discount::Product.new(result.first))
26
26
  assert_equal(discounts.first, Pricing::Discount::Product.new(result.second))
27
+
28
+ travel_to 1.week.from_now
29
+
30
+ get admin_api.discounts_path(
31
+ updated_at_starts_at: 5.days.ago,
32
+ updated_at_ends_at: 4.days.ago
33
+ )
34
+ result = JSON.parse(response.body)['discounts']
35
+
36
+ assert_equal(0, result.length)
37
+
38
+ get admin_api.discounts_path(
39
+ created_at_starts_at: 5.days.ago,
40
+ created_at_ends_at: 4.days.ago
41
+ )
42
+ result = JSON.parse(response.body)['discounts']
43
+
44
+ assert_equal(0, result.length)
45
+
46
+ get admin_api.discounts_path(
47
+ updated_at_starts_at: 8.days.ago,
48
+ updated_at_ends_at: 6.days.ago
49
+ )
50
+ result = JSON.parse(response.body)['discounts']
51
+ assert_equal(3, result.length)
52
+
53
+ get admin_api.discounts_path(
54
+ created_at_starts_at: 8.days.ago,
55
+ created_at_ends_at: 6.days.ago
56
+ )
57
+ result = JSON.parse(response.body)['discounts']
58
+ assert_equal(3, result.length)
27
59
  end
28
60
 
29
61
  def test_creates_discounts
@@ -18,13 +18,50 @@ module Workarea
18
18
  assert_equal(2, result.length)
19
19
  assert_equal(email_signups.second, Email::Signup.new(result.first))
20
20
  assert_equal(email_signups.first, Email::Signup.new(result.second))
21
+
22
+ travel_to 1.week.from_now
23
+
24
+ get admin_api.email_signups_path(
25
+ updated_at_starts_at: 5.days.ago,
26
+ updated_at_ends_at: 4.days.ago
27
+ )
28
+ result = JSON.parse(response.body)['email_signups']
29
+
30
+ assert_equal(0, result.length)
31
+
32
+ get admin_api.email_signups_path(
33
+ created_at_starts_at: 5.days.ago,
34
+ created_at_ends_at: 4.days.ago
35
+ )
36
+ result = JSON.parse(response.body)['email_signups']
37
+
38
+ assert_equal(0, result.length)
39
+
40
+ get admin_api.email_signups_path(
41
+ updated_at_starts_at: 8.days.ago,
42
+ updated_at_ends_at: 6.days.ago
43
+ )
44
+ result = JSON.parse(response.body)['email_signups']
45
+ assert_equal(2, result.length)
46
+
47
+ get admin_api.email_signups_path(
48
+ created_at_starts_at: 8.days.ago,
49
+ created_at_ends_at: 6.days.ago
50
+ )
51
+ result = JSON.parse(response.body)['email_signups']
52
+ assert_equal(2, result.length)
21
53
  end
22
54
 
23
55
  def test_shows_email_signups
24
- email_signup = create_email_signup
56
+ email_signup = create_email_signup(email: 'test@workarea.com')
57
+
25
58
  get admin_api.email_signup_path(email_signup.id)
26
59
  result = JSON.parse(response.body)['email_signup']
27
60
  assert_equal(email_signup, Email::Signup.new(result))
61
+
62
+ get admin_api.email_signup_path(URI.escape(email_signup.email, '+@.'))
63
+ result = JSON.parse(response.body)['email_signup']
64
+ assert_equal(email_signup, Email::Signup.new(result))
28
65
  end
29
66
  end
30
67
  end
@@ -21,6 +21,28 @@ module Workarea
21
21
  assert_equal(fulfillments.first, Fulfillment.new(result.second))
22
22
  end
23
23
 
24
+ def test_lists_fulfillments_by_date
25
+ fulfillments = [create_fulfillment(id: '1'), create_fulfillment(id: '2')]
26
+ get admin_api.fulfillments_path(
27
+ updated_at_starts_at: 2.days.ago,
28
+ updated_at_ends_at: 1.day.ago
29
+ )
30
+ result = JSON.parse(response.body)['fulfillments']
31
+
32
+ assert_equal(0, result.length)
33
+
34
+ get admin_api.fulfillments_path(
35
+ updated_at_starts_at: 2.days.ago,
36
+ updated_at_ends_at: 1.day.from_now
37
+ )
38
+ result = JSON.parse(response.body)['fulfillments']
39
+
40
+ assert_equal(2, result.length)
41
+ assert_equal(fulfillments.second, Fulfillment.new(result.first))
42
+ assert_equal(fulfillments.first, Fulfillment.new(result.second))
43
+ end
44
+
45
+
24
46
  def test_shows_fulfillments
25
47
  fulfillment = create_fulfillment
26
48
  get admin_api.fulfillment_path(fulfillment.id)
@@ -20,6 +20,38 @@ module Workarea
20
20
  assert_equal(3, result.length)
21
21
  assert_equal(inventory_skus.second, Inventory::Sku.new(result.first))
22
22
  assert_equal(inventory_skus.first, Inventory::Sku.new(result.second))
23
+
24
+ travel_to 1.week.from_now
25
+
26
+ get admin_api.inventory_skus_path(
27
+ updated_at_starts_at: 5.days.ago,
28
+ updated_at_ends_at: 4.days.ago
29
+ )
30
+ result = JSON.parse(response.body)['inventory_skus']
31
+
32
+ assert_equal(0, result.length)
33
+
34
+ get admin_api.inventory_skus_path(
35
+ created_at_starts_at: 5.days.ago,
36
+ created_at_ends_at: 4.days.ago
37
+ )
38
+ result = JSON.parse(response.body)['inventory_skus']
39
+
40
+ assert_equal(0, result.length)
41
+
42
+ get admin_api.inventory_skus_path(
43
+ updated_at_starts_at: 8.days.ago,
44
+ updated_at_ends_at: 6.days.ago
45
+ )
46
+ result = JSON.parse(response.body)['inventory_skus']
47
+ assert_equal(3, result.length)
48
+
49
+ get admin_api.inventory_skus_path(
50
+ created_at_starts_at: 8.days.ago,
51
+ created_at_ends_at: 6.days.ago
52
+ )
53
+ result = JSON.parse(response.body)['inventory_skus']
54
+ assert_equal(3, result.length)
23
55
  end
24
56
 
25
57
  def test_creates_inventory_skus
@@ -17,6 +17,38 @@ module Workarea
17
17
  get admin_api.navigation_menus_path
18
18
  result = JSON.parse(response.body)['navigation_menus']
19
19
  assert_equal(3, result.length)
20
+
21
+ travel_to 1.week.from_now
22
+
23
+ get admin_api.navigation_menus_path(
24
+ updated_at_starts_at: 5.days.ago,
25
+ updated_at_ends_at: 4.days.ago
26
+ )
27
+ result = JSON.parse(response.body)['navigation_menus']
28
+
29
+ assert_equal(0, result.length)
30
+
31
+ get admin_api.navigation_menus_path(
32
+ created_at_starts_at: 5.days.ago,
33
+ created_at_ends_at: 4.days.ago
34
+ )
35
+ result = JSON.parse(response.body)['navigation_menus']
36
+
37
+ assert_equal(0, result.length)
38
+
39
+ get admin_api.navigation_menus_path(
40
+ updated_at_starts_at: 8.days.ago,
41
+ updated_at_ends_at: 6.days.ago
42
+ )
43
+ result = JSON.parse(response.body)['navigation_menus']
44
+ assert_equal(3, result.length)
45
+
46
+ get admin_api.navigation_menus_path(
47
+ created_at_starts_at: 8.days.ago,
48
+ created_at_ends_at: 6.days.ago
49
+ )
50
+ result = JSON.parse(response.body)['navigation_menus']
51
+ assert_equal(3, result.length)
20
52
  end
21
53
 
22
54
  def test_creates_menus
@@ -17,6 +17,38 @@ module Workarea
17
17
  get admin_api.navigation_taxons_path
18
18
  result = JSON.parse(response.body)['navigation_taxons']
19
19
  assert_equal(4, result.length)
20
+
21
+ travel_to 1.week.from_now
22
+
23
+ get admin_api.navigation_taxons_path(
24
+ updated_at_starts_at: 5.days.ago,
25
+ updated_at_ends_at: 4.days.ago
26
+ )
27
+ result = JSON.parse(response.body)['navigation_taxons']
28
+
29
+ assert_equal(0, result.length)
30
+
31
+ get admin_api.navigation_taxons_path(
32
+ created_at_starts_at: 5.days.ago,
33
+ created_at_ends_at: 4.days.ago
34
+ )
35
+ result = JSON.parse(response.body)['navigation_taxons']
36
+
37
+ assert_equal(0, result.length)
38
+
39
+ get admin_api.navigation_taxons_path(
40
+ updated_at_starts_at: 8.days.ago,
41
+ updated_at_ends_at: 6.days.ago
42
+ )
43
+ result = JSON.parse(response.body)['navigation_taxons']
44
+ assert_equal(4, result.length)
45
+
46
+ get admin_api.navigation_taxons_path(
47
+ created_at_starts_at: 8.days.ago,
48
+ created_at_ends_at: 6.days.ago
49
+ )
50
+ result = JSON.parse(response.body)['navigation_taxons']
51
+ assert_equal(4, result.length)
20
52
  end
21
53
 
22
54
  def test_creates_taxons
@@ -18,8 +18,8 @@ module Workarea
18
18
 
19
19
  def test_filters_orders
20
20
  orders = [
21
- create_order(placed_at: 1.week.ago),
22
- create_order(placed_at: 2.days.ago)
21
+ create_order(email: 'foo@workarea.com', placed_at: 1.week.ago),
22
+ create_order(email: 'bar@workarea.com', placed_at: 2.days.ago)
23
23
  ]
24
24
 
25
25
  get admin_api.orders_path(
@@ -31,6 +31,45 @@ module Workarea
31
31
 
32
32
  assert_equal(1, result.length)
33
33
  assert_equal(orders.second, Order.new(result.first))
34
+
35
+ get admin_api.orders_path(email: 'foo@workarea.com')
36
+
37
+ result = JSON.parse(response.body)['orders']
38
+
39
+ assert_equal(1, result.length)
40
+ assert_equal(orders.first, Order.new(result.first))
41
+
42
+ travel_to 1.week.from_now
43
+
44
+ get admin_api.orders_path(
45
+ updated_at_starts_at: 5.days.ago,
46
+ updated_at_ends_at: 4.days.ago
47
+ )
48
+ result = JSON.parse(response.body)['orders']
49
+
50
+ assert_equal(0, result.length)
51
+
52
+ get admin_api.orders_path(
53
+ created_at_starts_at: 5.days.ago,
54
+ created_at_ends_at: 4.days.ago
55
+ )
56
+ result = JSON.parse(response.body)['orders']
57
+
58
+ assert_equal(0, result.length)
59
+
60
+ get admin_api.orders_path(
61
+ updated_at_starts_at: 8.days.ago,
62
+ updated_at_ends_at: 6.days.ago
63
+ )
64
+ result = JSON.parse(response.body)['orders']
65
+ assert_equal(2, result.length)
66
+
67
+ get admin_api.orders_path(
68
+ created_at_starts_at: 8.days.ago,
69
+ created_at_ends_at: 6.days.ago
70
+ )
71
+ result = JSON.parse(response.body)['orders']
72
+ assert_equal(2, result.length)
34
73
  end
35
74
 
36
75
  def test_shows_orders