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
- #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
Instance Method Details
#assert_created_ticket_has(ticket_options) ⇒ Object
61 62 63 64 |
# File 'lib/gds_zendesk/test_helpers.rb', line 61 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
66 67 68 69 |
# File 'lib/gds_zendesk/test_helpers.rb', line 66 def assert_created_ticket_has_requester() assert_requested :post, %r{/api/v2/tickets}, body: { ticket: hash_including(requester: hash_including()) }, times: 1 end |
#stub_zendesk_ticket_creation(ticket_properties = nil) ⇒ Object
24 25 26 27 28 29 |
# File 'lib/gds_zendesk/test_helpers.rb', line 24 def stub_zendesk_ticket_creation(ticket_properties = nil) stub = stub_http_request(:post, "#{zendesk_endpoint}/tickets") stub.with(body: {ticket: ticket_properties}) unless ticket_properties.nil? 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
31 32 33 34 35 36 |
# File 'lib/gds_zendesk/test_helpers.rb', line 31 def stub_zendesk_ticket_creation_with_body(body) stub_http_request(:post, "#{zendesk_endpoint}/tickets"). with(body: body). to_return(status: 201, body: { ticket: { id: 12345 }}.to_json, headers: {'Content-Type' => 'application/json'}) end |
#stub_zendesk_user_creation(user_properties = nil) ⇒ Object
17 18 19 20 21 22 |
# File 'lib/gds_zendesk/test_helpers.rb', line 17 def stub_zendesk_user_creation(user_properties = nil) stub = stub_http_request(:post, "#{zendesk_endpoint}/users") stub.with(body: {user: user_properties}) unless user_properties.nil? 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
38 39 40 41 42 43 |
# File 'lib/gds_zendesk/test_helpers.rb', line 38 def stub_zendesk_user_update(user_id, user_properties) stub_http_request(:put, "#{zendesk_endpoint}/users/#{user_id}"). with(body: {user: user_properties}). to_return(status: 201, body: { user: { id: 12345, name: "abc" }}.to_json, headers: {'Content-Type' => 'application/json'}) end |
#valid_zendesk_credentials ⇒ Object
57 58 59 |
# File 'lib/gds_zendesk/test_helpers.rb', line 57 def valid_zendesk_credentials @zendesk_credentials || { "username" => "abc", "password" => "def" } end |
#valid_zendesk_credentials=(credentials) ⇒ Object
53 54 55 |
# File 'lib/gds_zendesk/test_helpers.rb', line 53 def valid_zendesk_credentials=(credentials) @zendesk_credentials = credentials end |
#zendesk_endpoint ⇒ Object
49 50 51 |
# File 'lib/gds_zendesk/test_helpers.rb', line 49 def zendesk_endpoint "https://#{valid_zendesk_credentials["username"]}:#{valid_zendesk_credentials["password"]}@govuk.zendesk.com/api/v2" end |
#zendesk_has_no_user_with_email(email) ⇒ Object
5 6 7 8 9 |
# 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}"). 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
11 12 13 14 15 |
# File 'lib/gds_zendesk/test_helpers.rb', line 11 def zendesk_has_user(user_details) stub_request(:get, "#{zendesk_endpoint}/users/search?query=#{user_details[:email]}"). 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
45 46 47 |
# File 'lib/gds_zendesk/test_helpers.rb', line 45 def zendesk_is_unavailable stub_request(:any, /#{zendesk_endpoint}\/.*/).to_return(status: 503) end |