braze_ruby 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +57 -0
  3. data/.circleci/gem_credentials +2 -0
  4. data/.circleci/setup-rubygems +6 -0
  5. data/.gitignore +12 -19
  6. data/.standard.yml +1 -0
  7. data/Gemfile +1 -2
  8. data/LICENSE.txt +17 -18
  9. data/README.md +4 -1
  10. data/Rakefile +2 -1
  11. data/bin/release +16 -0
  12. data/braze_ruby.gemspec +28 -31
  13. data/lib/braze_ruby.rb +4 -4
  14. data/lib/braze_ruby/api.rb +12 -12
  15. data/lib/braze_ruby/deprecated.rb +4 -4
  16. data/lib/braze_ruby/endpoints.rb +10 -10
  17. data/lib/braze_ruby/endpoints/remove_external_ids.rb +2 -2
  18. data/lib/braze_ruby/endpoints/rename_external_ids.rb +2 -2
  19. data/lib/braze_ruby/endpoints/subscription.rb +0 -1
  20. data/lib/braze_ruby/http.rb +8 -8
  21. data/lib/braze_ruby/rest.rb +20 -20
  22. data/lib/braze_ruby/rest/base.rb +3 -3
  23. data/lib/braze_ruby/rest/canvas_details.rb +1 -1
  24. data/lib/braze_ruby/rest/create_user_aliases.rb +2 -2
  25. data/lib/braze_ruby/rest/delete_users.rb +2 -2
  26. data/lib/braze_ruby/rest/email_hard_bounces.rb +1 -1
  27. data/lib/braze_ruby/rest/email_status.rb +3 -3
  28. data/lib/braze_ruby/rest/email_unsubscribes.rb +1 -1
  29. data/lib/braze_ruby/rest/export_users.rb +4 -4
  30. data/lib/braze_ruby/rest/identify_users.rb +2 -2
  31. data/lib/braze_ruby/rest/list_segments.rb +1 -1
  32. data/lib/braze_ruby/rest/remove_external_ids.rb +2 -2
  33. data/lib/braze_ruby/rest/rename_external_ids.rb +2 -2
  34. data/lib/braze_ruby/rest/schedule_messages.rb +6 -6
  35. data/lib/braze_ruby/rest/send_messages.rb +3 -3
  36. data/lib/braze_ruby/rest/subscription_status_get.rb +1 -1
  37. data/lib/braze_ruby/rest/subscription_status_set.rb +1 -1
  38. data/lib/braze_ruby/rest/subscription_user_status.rb +1 -1
  39. data/lib/braze_ruby/rest/track_users.rb +4 -4
  40. data/lib/braze_ruby/rest/trigger_campaign_send.rb +1 -1
  41. data/lib/braze_ruby/rest/trigger_canvas_send.rb +1 -1
  42. data/lib/braze_ruby/version.rb +1 -1
  43. metadata +45 -197
  44. data/.github/workflows/ci.yml +0 -30
  45. data/Gemfile.lock +0 -82
  46. data/spec/braze_ruby/api_spec.rb +0 -6
  47. data/spec/braze_ruby/endpoints/delete_users_spec.rb +0 -31
  48. data/spec/braze_ruby/endpoints/track_users_spec.rb +0 -74
  49. data/spec/braze_ruby/http_spec.rb +0 -48
  50. data/spec/braze_ruby/rest/create_user_aliases_spec.rb +0 -23
  51. data/spec/braze_ruby/rest/delete_users_spec.rb +0 -22
  52. data/spec/braze_ruby/rest/email_status_spec.rb +0 -20
  53. data/spec/braze_ruby/rest/export_users_spec.rb +0 -21
  54. data/spec/braze_ruby/rest/identify_users_spec.rb +0 -23
  55. data/spec/braze_ruby/rest/remove_external_ids_spec.rb +0 -22
  56. data/spec/braze_ruby/rest/rename_external_ids_spec.rb +0 -22
  57. data/spec/braze_ruby/rest/schedule_messages_spec.rb +0 -37
  58. data/spec/braze_ruby/rest/send_messages_spec.rb +0 -30
  59. data/spec/braze_ruby/rest/track_users_spec.rb +0 -27
  60. data/spec/factories.rb +0 -38
  61. data/spec/fixtures/responses/campaigns/trigger_send/sends_an_email.yml +0 -71
  62. data/spec/fixtures/responses/canvas/details/returns_error_when_no_canvas.yml +0 -69
  63. data/spec/fixtures/responses/canvas/trigger_send/sends_a_canvas.yml +0 -71
  64. data/spec/fixtures/responses/create_user_aliases/unauthorized/responds_with_unauthorized.yml +0 -67
  65. data/spec/fixtures/responses/create_user_aliases/with_success/responds_with_created.yml +0 -71
  66. data/spec/fixtures/responses/create_user_aliases/with_success/responds_with_success_message.yml +0 -71
  67. data/spec/fixtures/responses/delete_users/unauthorized/responds_with_unauthorized.yml +0 -68
  68. data/spec/fixtures/responses/delete_users/with_success/responds_with_created.yml +0 -71
  69. data/spec/fixtures/responses/delete_users/with_success/responds_with_success_message.yml +0 -71
  70. data/spec/fixtures/responses/email_status/existing_email/responds_with_created.yml +0 -71
  71. data/spec/fixtures/responses/email_status/existing_email/responds_with_success_message.yml +0 -71
  72. data/spec/fixtures/responses/email_status/unknown_email/responds_with_bad_request.yml +0 -71
  73. data/spec/fixtures/responses/email_status/unknown_email/responds_with_success_message.yml +0 -71
  74. data/spec/fixtures/responses/email_sync/hard_bounces/responds_with_empty_array_when_no_hard_bounces.yml +0 -75
  75. data/spec/fixtures/responses/email_sync/unsubscribes/responds_with_empty_array_when_no_unsubscribes.yml +0 -75
  76. data/spec/fixtures/responses/email_sync/unsubscribes/responds_with_unsubscribed_emails.yml +0 -75
  77. data/spec/fixtures/responses/export_users/by_ids/with_success/responds_with_created.yml +0 -72
  78. data/spec/fixtures/responses/export_users/by_segment/with_success/responds_with_created.yml +0 -71
  79. data/spec/fixtures/responses/identify_users/unauthorized/responds_with_unauthorized.yml +0 -68
  80. data/spec/fixtures/responses/identify_users/with_success/responds_with_created.yml +0 -71
  81. data/spec/fixtures/responses/identify_users/with_success/responds_with_success_message.yml +0 -71
  82. data/spec/fixtures/responses/list_segments/with_success/responds_with_a_list_of_segments.yml +0 -81
  83. data/spec/fixtures/responses/list_segments/with_success/responds_with_success.yml +0 -81
  84. data/spec/fixtures/responses/remove_external_ids/unauthorized/responds_with_unauthorized.yml +0 -67
  85. data/spec/fixtures/responses/remove_external_ids/with_success/responds_with_created.yml +0 -69
  86. data/spec/fixtures/responses/remove_external_ids/with_success/responds_with_success_message.yml +0 -69
  87. data/spec/fixtures/responses/rename_external_ids/unauthorized/responds_with_unauthorized.yml +0 -67
  88. data/spec/fixtures/responses/rename_external_ids/with_success/responds_with_created.yml +0 -69
  89. data/spec/fixtures/responses/rename_external_ids/with_success/responds_with_success_message.yml +0 -69
  90. data/spec/fixtures/responses/schedule_messages/unauthorized/responds_with_unauthorize.yml +0 -68
  91. data/spec/fixtures/responses/schedule_messages/with_success/responds_with_created.yml +0 -71
  92. data/spec/fixtures/responses/schedule_messages/with_success/responds_with_success_message.yml +0 -71
  93. data/spec/fixtures/responses/send_messages/unauthorized/responds_with_unauthorized.yml +0 -68
  94. data/spec/fixtures/responses/send_messages/with_success/responds_with_created.yml +0 -71
  95. data/spec/fixtures/responses/send_messages/with_success/responds_with_success_message.yml +0 -71
  96. data/spec/fixtures/responses/subscription/subscription_status_set/when_subscribing/subscribes_the_user.yml +0 -71
  97. data/spec/fixtures/responses/subscription/subscription_status_set/when_subscription_group_does_not_exist/returns_an_error_status.yml +0 -68
  98. data/spec/fixtures/responses/subscription/subscription_status_set/when_unsubscribing/unsubscribes_the_user.yml +0 -139
  99. data/spec/fixtures/responses/subscription/when_getting_subscription_group_statuses/subscription_status_get/when_checking_subscribed_and_unsubscribed_user_status/returns_only_users_that_were_once_subscribed.yml +0 -211
  100. data/spec/fixtures/responses/subscription/when_getting_subscription_group_statuses/subscription_status_get/when_group_does_not_exist/returns_an_error.yml +0 -199
  101. data/spec/fixtures/responses/subscription/when_getting_subscription_group_statuses/subscription_user_status/returns_subscription_groups_and_status_for_every_group.yml +0 -211
  102. data/spec/fixtures/responses/track_users/unauthorized/responds_with_unauthorized.yml +0 -70
  103. data/spec/fixtures/responses/track_users/with_success/responds_with_created.yml +0 -73
  104. data/spec/fixtures/responses/track_users/with_success/responds_with_success_message.yml +0 -73
  105. data/spec/integrations/campaigns_spec.rb +0 -19
  106. data/spec/integrations/canvas_spec.rb +0 -28
  107. data/spec/integrations/create_user_aliases_spec.rb +0 -32
  108. data/spec/integrations/delete_users_spec.rb +0 -32
  109. data/spec/integrations/email_status_spec.rb +0 -38
  110. data/spec/integrations/email_sync_spec.rb +0 -31
  111. data/spec/integrations/export_users_spec.rb +0 -29
  112. data/spec/integrations/identify_users_spec.rb +0 -32
  113. data/spec/integrations/list_segments_spec.rb +0 -21
  114. data/spec/integrations/remove_external_ids_spec.rb +0 -33
  115. data/spec/integrations/rename_external_ids_spec.rb +0 -37
  116. data/spec/integrations/schedule_messages_spec.rb +0 -34
  117. data/spec/integrations/send_messages_spec.rb +0 -33
  118. data/spec/integrations/subscription_spec.rb +0 -149
  119. data/spec/integrations/track_users_spec.rb +0 -38
  120. data/spec/spec_helper.rb +0 -25
  121. data/spec/support/factory_bot.rb +0 -12
  122. data/spec/support/integrations.rb +0 -27
  123. data/spec/support/vcr.rb +0 -20
@@ -1,70 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: "<BRAZE_REST_URL>/users/track"
6
- body:
7
- encoding: UTF-8
8
- string: '{"attributes":[{"external_id":1,"foo":"bar"}],"events":[{"external_id":1,"name":"baz","time":"2019-02-15
9
- 00:00:00 -0500"}],"purchases":[{"external_id":1,"product_id":1,"time":"2019-02-15
10
- 00:00:00 -0500","currency":"CAD","price":1.0}]}'
11
- headers:
12
- Content-Type:
13
- - application/json
14
- Accept:
15
- - application/json
16
- User-Agent:
17
- - Braze Ruby gem v0.3.3
18
- Authorization:
19
- - Bearer non-existent
20
- Accept-Encoding:
21
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
22
- response:
23
- status:
24
- code: 401
25
- message: Unauthorized
26
- headers:
27
- Connection:
28
- - keep-alive
29
- Content-Length:
30
- - '69'
31
- Cache-Control:
32
- - no-cache
33
- Content-Type:
34
- - application/json
35
- Server:
36
- - nginx
37
- Strict-Transport-Security:
38
- - max-age=0; includeSubDomains
39
- X-Ratelimit-Limit:
40
- - ''
41
- X-Ratelimit-Remaining:
42
- - ''
43
- X-Ratelimit-Reset:
44
- - ''
45
- X-Request-Id:
46
- - 455108aa-0cf4-438f-8d27-489896ca716b
47
- X-Runtime:
48
- - '0.001106'
49
- Accept-Ranges:
50
- - bytes
51
- Date:
52
- - Wed, 17 Jun 2020 20:31:42 GMT
53
- Via:
54
- - 1.1 varnish
55
- X-Served-By:
56
- - cache-hhn4044-HHN
57
- X-Cache:
58
- - MISS
59
- X-Cache-Hits:
60
- - '0'
61
- X-Timer:
62
- - S1592425903.848710,VS0,VE4
63
- Vary:
64
- - Origin,Accept-Encoding
65
- body:
66
- encoding: ASCII-8BIT
67
- string: '{"message":"Invalid API key: non-existent"}'
68
- http_version:
69
- recorded_at: Wed, 17 Jun 2020 20:31:42 GMT
70
- recorded_with: VCR 5.0.0
@@ -1,73 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: "<BRAZE_REST_URL>/users/track"
6
- body:
7
- encoding: UTF-8
8
- string: '{"attributes":[{"external_id":1,"foo":"bar"}],"events":[{"external_id":1,"name":"baz","time":"2019-02-15
9
- 00:00:00 -0500"}],"purchases":[{"external_id":1,"product_id":1,"time":"2019-02-15
10
- 00:00:00 -0500","currency":"CAD","price":1.0}]}'
11
- headers:
12
- Content-Type:
13
- - application/json
14
- Accept:
15
- - application/json
16
- User-Agent:
17
- - Braze Ruby gem v0.3.3
18
- Authorization:
19
- - Bearer <BRAZE_REST_API_KEY>
20
- Accept-Encoding:
21
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
22
- response:
23
- status:
24
- code: 201
25
- message: Created
26
- headers:
27
- Connection:
28
- - keep-alive
29
- Content-Length:
30
- - '85'
31
- Cache-Control:
32
- - max-age=0, private, must-revalidate
33
- Content-Type:
34
- - application/json
35
- Etag:
36
- - W/"68b326343749fed4d6cc5dda395b5367"
37
- Server:
38
- - nginx
39
- Strict-Transport-Security:
40
- - max-age=0; includeSubDomains
41
- - max-age=31536000; includeSubDomains
42
- X-Ratelimit-Limit:
43
- - '250000'
44
- X-Ratelimit-Remaining:
45
- - '250000'
46
- X-Ratelimit-Reset:
47
- - '1592427600'
48
- X-Request-Id:
49
- - 2e7a73fc-7efe-4c04-b837-c696cb10735a
50
- X-Runtime:
51
- - '0.007710'
52
- Accept-Ranges:
53
- - bytes
54
- Date:
55
- - Wed, 17 Jun 2020 20:31:42 GMT
56
- Via:
57
- - 1.1 varnish
58
- X-Served-By:
59
- - cache-hhn4030-HHN
60
- X-Cache:
61
- - MISS
62
- X-Cache-Hits:
63
- - '0'
64
- X-Timer:
65
- - S1592425903.632582,VS0,VE10
66
- Vary:
67
- - Origin,Accept-Encoding
68
- body:
69
- encoding: ASCII-8BIT
70
- string: '{"attributes_processed":1,"events_processed":1,"purchases_processed":1,"message":"success"}'
71
- http_version:
72
- recorded_at: Wed, 17 Jun 2020 20:31:42 GMT
73
- recorded_with: VCR 5.0.0
@@ -1,73 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: "<BRAZE_REST_URL>/users/track"
6
- body:
7
- encoding: UTF-8
8
- string: '{"attributes":[{"external_id":1,"foo":"bar"}],"events":[{"external_id":1,"name":"baz","time":"2019-02-15
9
- 00:00:00 -0500"}],"purchases":[{"external_id":1,"product_id":1,"time":"2019-02-15
10
- 00:00:00 -0500","currency":"CAD","price":1.0}]}'
11
- headers:
12
- Content-Type:
13
- - application/json
14
- Accept:
15
- - application/json
16
- User-Agent:
17
- - Braze Ruby gem v0.3.3
18
- Authorization:
19
- - Bearer <BRAZE_REST_API_KEY>
20
- Accept-Encoding:
21
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
22
- response:
23
- status:
24
- code: 201
25
- message: Created
26
- headers:
27
- Connection:
28
- - keep-alive
29
- Content-Length:
30
- - '85'
31
- Cache-Control:
32
- - max-age=0, private, must-revalidate
33
- Content-Type:
34
- - application/json
35
- Etag:
36
- - W/"68b326343749fed4d6cc5dda395b5367"
37
- Server:
38
- - nginx
39
- Strict-Transport-Security:
40
- - max-age=0; includeSubDomains
41
- - max-age=31536000; includeSubDomains
42
- X-Ratelimit-Limit:
43
- - '250000'
44
- X-Ratelimit-Remaining:
45
- - '250000'
46
- X-Ratelimit-Reset:
47
- - '1592427600'
48
- X-Request-Id:
49
- - 75dc3ac0-d4d2-4278-89d0-b29e540dc719
50
- X-Runtime:
51
- - '0.008741'
52
- Accept-Ranges:
53
- - bytes
54
- Date:
55
- - Wed, 17 Jun 2020 20:31:42 GMT
56
- Via:
57
- - 1.1 varnish
58
- X-Served-By:
59
- - cache-hhn4063-HHN
60
- X-Cache:
61
- - MISS
62
- X-Cache-Hits:
63
- - '0'
64
- X-Timer:
65
- - S1592425903.749169,VS0,VE11
66
- Vary:
67
- - Origin,Accept-Encoding
68
- body:
69
- encoding: ASCII-8BIT
70
- string: '{"attributes_processed":1,"events_processed":1,"purchases_processed":1,"message":"success"}'
71
- http_version:
72
- recorded_at: Wed, 17 Jun 2020 20:31:42 GMT
73
- recorded_with: VCR 5.0.0
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe 'campaigns' do
6
- describe 'trigger_send' do
7
- it 'sends an email', vcr: true do
8
- response = api.trigger_campaign_send(
9
- campaign_id: 'd8b73da7-0b7c-fc72-1d80-e59c7f20f0d3',
10
- recipients: [
11
- external_user_id: 12345,
12
- trigger_properties: {first_name: 'John'}
13
- ]
14
- )
15
-
16
- expect(response.success?).to eq(true)
17
- end
18
- end
19
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe 'canvas' do
6
- describe 'trigger_send' do
7
- it 'sends a canvas', vcr: true do
8
- response = api.trigger_canvas_send(
9
- canvas_id: '70a7fb99-cbcb-451a-8224-5f8b8c63e03f',
10
- recipients: [
11
- external_user_id: 12345,
12
- canvas_entry_properties: {first_name: 'John'}
13
- ]
14
- )
15
-
16
- expect(response.success?).to eq(true)
17
- end
18
- end
19
-
20
- describe 'details' do
21
- it 'returns error when no canvas', vcr: true do
22
- response = api.canvas_details(
23
- canvas_id: 'non-existing'
24
- )
25
- expect(response.status).to eq(400)
26
- end
27
- end
28
- end
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe 'create user aliases' do
6
- let(:user) { { user_alias: { alias_name: 'abc', alias_label: 'foo' } } }
7
-
8
- subject(:create_user_aliases) do
9
- api.create_user_aliases(user_aliases: [user])
10
- end
11
-
12
- context 'with success', vcr: true do
13
- it 'responds with created' do
14
- expect(create_user_aliases.status).to be 201
15
- end
16
-
17
- it 'responds with success message' do
18
- expect(JSON.parse(create_user_aliases.body)).to eq(
19
- 'aliases_processed' => 1,
20
- 'message' => 'success'
21
- )
22
- end
23
- end
24
-
25
- context 'unauthorized', vcr: true do
26
- let(:api_key) { 'non-existent' }
27
-
28
- it 'responds with unauthorized' do
29
- expect(create_user_aliases.status).to be 401
30
- end
31
- end
32
- end
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe 'delete users' do
6
- let(:external_ids) { [400, 401, 402] }
7
-
8
- subject(:delete_users) do
9
- api.delete_users(external_ids)
10
- end
11
-
12
- context 'with success', vcr: true do
13
- it 'responds with created' do
14
- expect(delete_users.status).to be 201
15
- end
16
-
17
- it 'responds with success message' do
18
- expect(JSON.parse(delete_users.body)).to include(
19
- 'deleted' => 3,
20
- 'message' => 'success'
21
- )
22
- end
23
- end
24
-
25
- context 'unauthorized', vcr: true do
26
- let(:api_key) { 'non-existent' }
27
-
28
- it 'responds with unauthorized' do
29
- expect(delete_users.status).to be 401
30
- end
31
- end
32
- end
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe 'email status' do
6
- let(:email) { 'john@example.com' }
7
- let(:status) { :unsubscribed }
8
-
9
- subject do
10
- api.email_status(email: email, status: status)
11
- end
12
-
13
- context 'existing email', vcr: true do
14
- it 'responds with created' do
15
- expect(subject.status).to be 201
16
- end
17
-
18
- it 'responds with success message' do
19
- expect(JSON.parse(subject.body)).to eq(
20
- 'message' => 'success'
21
- )
22
- end
23
- end
24
-
25
- context 'unknown email', vcr: true do
26
- let(:email) { 'notthere@example.com' }
27
-
28
- it 'responds with bad request' do
29
- expect(subject.status).to be 201
30
- end
31
-
32
- it 'responds with success message' do
33
- expect(JSON.parse(subject.body)).to eq(
34
- 'message' => 'success'
35
- )
36
- end
37
- end
38
- end
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe 'email sync' do
6
- describe 'unsubscribes' do
7
- it 'responds with unsubscribed emails', vcr: true do
8
- response = api.email_unsubscribes(start_date: '2020-06-17', end_date: '2020-06-18')
9
- emails = JSON.parse(response.body)['emails']
10
-
11
- expect(emails.size).to eq(1)
12
- expect(emails.first['email']).to eq('example@123.com')
13
- end
14
-
15
- it 'responds with empty array when no unsubscribes', vcr: true do
16
- response = api.email_unsubscribes(start_date: '2019-02-20', end_date: '2019-02-25')
17
- emails = JSON.parse(response.body)['emails']
18
-
19
- expect(emails.size).to eq(0)
20
- end
21
- end
22
-
23
- describe 'hard_bounces' do
24
- it 'responds with empty array when no hard bounces', vcr: true do
25
- response = api.email_hard_bounces(start_date: '2019-02-20', end_date: '2019-02-25')
26
- emails = JSON.parse(response.body)['emails']
27
-
28
- expect(emails.size).to eq(0)
29
- end
30
- end
31
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe 'export users' do
6
- context 'by ids' do
7
- subject(:export_users) { api.export_users(external_ids: [12345]) }
8
-
9
- context 'with success', :vcr do
10
- it 'responds with created' do
11
- expect(export_users).to be_success
12
- end
13
- end
14
- end
15
-
16
- context 'by segment' do
17
- context 'with success', :vcr do
18
- let(:segment_id) { "3aca937b-9bbc-4e42-9370-05e411967b2b" }
19
-
20
- subject(:export_users) do
21
- api.export_users(segment_id: segment_id, callback_endpoint: 'https://example.com')
22
- end
23
-
24
- it 'responds with created' do
25
- expect(export_users).to be_success
26
- end
27
- end
28
- end
29
- end
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe 'identify users' do
6
- let(:user) { { external_id: 12345, user_alias: { alias_name: 'abc', alias_label: 'foo' } } }
7
-
8
- subject(:identify_users) do
9
- api.identify_users(aliases_to_identify: [user])
10
- end
11
-
12
- context 'with success', vcr: true do
13
- it 'responds with created' do
14
- expect(identify_users.status).to be 201
15
- end
16
-
17
- it 'responds with success message' do
18
- expect(JSON.parse(identify_users.body)).to eq(
19
- 'aliases_processed' => 1,
20
- 'message' => 'success'
21
- )
22
- end
23
- end
24
-
25
- context 'unauthorized', vcr: true do
26
- let(:api_key) { 'non-existent' }
27
-
28
- it 'responds with unauthorized' do
29
- expect(identify_users.status).to be 401
30
- end
31
- end
32
- end