workarea-api-admin 4.4.7 → 4.5.0

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.
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