Module: GDSZendesk::TestHelpers
- Defined in:
- lib/gds_zendesk/test_helpers.rb
Instance Method Summary collapse
- #assert_created_ticket_has(ticket_options) ⇒ Object
- #assert_created_ticket_has_requester(requester_options) ⇒ Object
- #basic_auth_credentials ⇒ Object
- #stub_zendesk_ticket_creation(ticket_properties = nil) ⇒ Object
- #stub_zendesk_ticket_creation_with_body(body) ⇒ Object
- #stub_zendesk_user_creation(user_properties = nil) ⇒ Object
- #stub_zendesk_user_update(user_id, user_properties) ⇒ Object
- #valid_zendesk_credentials ⇒ Object
- #valid_zendesk_credentials=(credentials) ⇒ Object
- #zendesk_endpoint ⇒ Object
- #zendesk_has_no_user_with_email(email) ⇒ Object
- #zendesk_has_user(user_details) ⇒ Object
- #zendesk_is_unavailable ⇒ Object
- #zendesk_returns_conflict ⇒ Object
- #zendesk_returns_redirect ⇒ Object
Instance Method Details
#assert_created_ticket_has(ticket_options) ⇒ Object
79 80 81 82 |
# File 'lib/gds_zendesk/test_helpers.rb', line 79 def assert_created_ticket_has() assert_requested :post, %r{/api/v2/tickets}, body: { ticket: hash_including() }, times: 1 end |
#assert_created_ticket_has_requester(requester_options) ⇒ Object
84 85 86 87 |
# File 'lib/gds_zendesk/test_helpers.rb', line 84 def assert_created_ticket_has_requester() assert_requested :post, %r{/api/v2/tickets}, body: { ticket: hash_including(requester: hash_including()) }, times: 1 end |
#basic_auth_credentials ⇒ Object
51 52 53 |
# File 'lib/gds_zendesk/test_helpers.rb', line 51 def basic_auth_credentials [valid_zendesk_credentials['username'], valid_zendesk_credentials['password']] end |
#stub_zendesk_ticket_creation(ticket_properties = nil) ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/gds_zendesk/test_helpers.rb', line 27 def stub_zendesk_ticket_creation(ticket_properties = nil) stub = stub_request(:post, "#{zendesk_endpoint}/tickets") stub.with(body: {ticket: ticket_properties}) unless ticket_properties.nil? stub.with(basic_auth: basic_auth_credentials) stub.to_return(status: 201, body: { ticket: { id: 12345 }}.to_json, headers: {'Content-Type' => 'application/json'}) end |
#stub_zendesk_ticket_creation_with_body(body) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/gds_zendesk/test_helpers.rb', line 35 def stub_zendesk_ticket_creation_with_body(body) stub_request(:post, "#{zendesk_endpoint}/tickets"). with(body: body). with(basic_auth: basic_auth_credentials). to_return(status: 201, body: { ticket: { id: 12345 }}.to_json, headers: {'Content-Type' => 'application/json'}) end |
#stub_zendesk_user_creation(user_properties = nil) ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/gds_zendesk/test_helpers.rb', line 19 def stub_zendesk_user_creation(user_properties = nil) stub = stub_request(:post, "#{zendesk_endpoint}/users") stub.with(body: {user: user_properties}) unless user_properties.nil? stub.with(basic_auth: basic_auth_credentials) stub.to_return(status: 201, body: { user: { id: 12345, name: "abc" }}.to_json, headers: {'Content-Type' => 'application/json'}) end |
#stub_zendesk_user_update(user_id, user_properties) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/gds_zendesk/test_helpers.rb', line 43 def stub_zendesk_user_update(user_id, user_properties) stub_request(:put, "#{zendesk_endpoint}/users/#{user_id}"). with(body: {user: user_properties}). with(basic_auth: basic_auth_credentials). to_return(status: 201, body: { user: { id: 12345, name: "abc" }}.to_json, headers: {'Content-Type' => 'application/json'}) end |
#valid_zendesk_credentials ⇒ Object
75 76 77 |
# File 'lib/gds_zendesk/test_helpers.rb', line 75 def valid_zendesk_credentials @zendesk_credentials || { "username" => "abc", "password" => "def" } end |
#valid_zendesk_credentials=(credentials) ⇒ Object
71 72 73 |
# File 'lib/gds_zendesk/test_helpers.rb', line 71 def valid_zendesk_credentials=(credentials) @zendesk_credentials = credentials end |
#zendesk_endpoint ⇒ Object
67 68 69 |
# File 'lib/gds_zendesk/test_helpers.rb', line 67 def zendesk_endpoint "https://govuk.zendesk.com/api/v2" end |
#zendesk_has_no_user_with_email(email) ⇒ Object
5 6 7 8 9 10 |
# File 'lib/gds_zendesk/test_helpers.rb', line 5 def zendesk_has_no_user_with_email(email) stub_request(:get, "#{zendesk_endpoint}/users/search?query=#{email}"). with(basic_auth: basic_auth_credentials). to_return(body: {users: [], previous_page: nil, next_page: nil, count: 0}.to_json, headers: {'Content-Type' => 'application/json'}) end |
#zendesk_has_user(user_details) ⇒ Object
12 13 14 15 16 17 |
# File 'lib/gds_zendesk/test_helpers.rb', line 12 def zendesk_has_user(user_details) stub_request(:get, "#{zendesk_endpoint}/users/search?query=#{user_details[:email]}"). with(basic_auth: basic_auth_credentials). to_return(body: {users: [user_details], previous_page: nil, next_page: nil, count: 1}.to_json, headers: {'Content-Type' => 'application/json'}) end |
#zendesk_is_unavailable ⇒ Object
55 56 57 |
# File 'lib/gds_zendesk/test_helpers.rb', line 55 def zendesk_is_unavailable stub_request(:any, /#{zendesk_endpoint}\/.*/).to_return(status: 503) end |
#zendesk_returns_conflict ⇒ Object
59 60 61 |
# File 'lib/gds_zendesk/test_helpers.rb', line 59 def zendesk_returns_conflict stub_request(:any, /#{zendesk_endpoint}\/.*/).to_return(status: 409) end |
#zendesk_returns_redirect ⇒ Object
63 64 65 |
# File 'lib/gds_zendesk/test_helpers.rb', line 63 def zendesk_returns_redirect stub_request(:any, /#{zendesk_endpoint}\/.*/).to_return(status: 302) end |