Module: GdsApi::TestHelpers::SupportApi

Defined in:
lib/gds_api/test_helpers/support_api.rb

Constant Summary collapse

SUPPORT_API_ENDPOINT =
Plek.current.find('support-api')

Instance Method Summary collapse

Instance Method Details

#stub_anonymous_feedback(params, response_body = {}) ⇒ Object



45
46
47
48
49
# File 'lib/gds_api/test_helpers/support_api.rb', line 45

def stub_anonymous_feedback(params, response_body = {})
  stub_http_request(:get, "#{SUPPORT_API_ENDPOINT}/anonymous-feedback").
    with(query: params).
    to_return(status: 200, body: response_body.to_json)
end

#stub_anonymous_feedback_organisation_summary(slug, ordering = nil, response_body = {}) ⇒ Object



51
52
53
54
55
56
# File 'lib/gds_api/test_helpers/support_api.rb', line 51

def stub_anonymous_feedback_organisation_summary(slug, ordering = nil, response_body = {})
  uri = "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/organisations/#{slug}"
  uri << "?ordering=#{ordering}" if ordering
  stub_http_request(:get, uri).
    to_return(status: 200, body: response_body.to_json)
end

#stub_organisation(slug = "cabinet-office", response_body = nil) ⇒ Object



71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/gds_api/test_helpers/support_api.rb', line 71

def stub_organisation(slug = "cabinet-office", response_body = nil)
  response_body ||= {
    slug: slug,
    web_url: "https://www.gov.uk/government/organisations/#{slug}",
    title: "Cabinet Office",
    acronym: "CO",
    govuk_status: "live"
  }

  stub_http_request(:get, "#{SUPPORT_API_ENDPOINT}/organisations/#{slug}").
    to_return(status: 200, body: response_body.to_json)
end

#stub_organisations_list(response_body = nil) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/gds_api/test_helpers/support_api.rb', line 58

def stub_organisations_list(response_body = nil)
  response_body ||= [{
    slug: "cabinet-office",
    web_url: "https://www.gov.uk/government/organisations/cabinet-office",
    title: "Cabinet Office",
    acronym: "CO",
    govuk_status: "live"
  }]

  stub_http_request(:get, "#{SUPPORT_API_ENDPOINT}/organisations").
    to_return(status: 200, body: response_body.to_json)
end

#stub_problem_report_daily_totals_for(date, expected_results = nil) ⇒ Object



33
34
35
36
37
38
39
# File 'lib/gds_api/test_helpers/support_api.rb', line 33

def stub_problem_report_daily_totals_for(date, expected_results = nil)
  date_string = date.strftime("%Y-%m-%d")
  get_stub = stub_http_request(:get, "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/problem-reports/#{date_string}/totals")
  response = { status: 200 }
  response[:body] = expected_results if expected_results
  get_stub.to_return(response)
end

#stub_support_api_problem_report_creation(request_details = nil) ⇒ Object



9
10
11
12
13
# File 'lib/gds_api/test_helpers/support_api.rb', line 9

def stub_support_api_problem_report_creation(request_details = nil)
  post_stub = stub_http_request(:post, "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/problem-reports")
  post_stub.with(:body => { problem_report: request_details }) unless request_details.nil?
  post_stub.to_return(:status => 202)
end

#stub_support_api_service_feedback_creation(feedback_details = nil) ⇒ Object



15
16
17
18
19
# File 'lib/gds_api/test_helpers/support_api.rb', line 15

def stub_support_api_service_feedback_creation(feedback_details = nil)
  post_stub = stub_http_request(:post, "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/service-feedback")
  post_stub.with(:body => { service_feedback: feedback_details }) unless feedback_details.nil?
  post_stub.to_return(:status => 201)
end

#stub_support_feedback_export_request(id, response_body = nil) ⇒ Object



84
85
86
87
88
89
90
91
92
# File 'lib/gds_api/test_helpers/support_api.rb', line 84

def stub_support_feedback_export_request(id, response_body = nil)
  response_body ||= {
    filename: "feedex_0000-00-00_2015-01-01.csv",
    ready: true
  }

  stub_http_request(:get, "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/export-requests/#{id}").
    to_return(status: 200, body: response_body.to_json)
end

#stub_support_feedback_export_request_creation(request_details = nil) ⇒ Object



27
28
29
30
31
# File 'lib/gds_api/test_helpers/support_api.rb', line 27

def stub_support_feedback_export_request_creation(request_details = nil)
  post_stub = stub_http_request(:post, "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/export-requests")
  post_stub.with(:body => { export_request: request_details }) unless request_details.nil?
  post_stub.to_return(:status => 202)
end

#stub_support_long_form_anonymous_contact_creation(request_details = nil) ⇒ Object



21
22
23
24
25
# File 'lib/gds_api/test_helpers/support_api.rb', line 21

def stub_support_long_form_anonymous_contact_creation(request_details = nil)
  post_stub = stub_http_request(:post, "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/long-form-contacts")
  post_stub.with(:body => { long_form_contact: request_details }) unless request_details.nil?
  post_stub.to_return(:status => 202)
end

#support_api_isnt_availableObject



41
42
43
# File 'lib/gds_api/test_helpers/support_api.rb', line 41

def support_api_isnt_available
  stub_request(:post, /#{SUPPORT_API_ENDPOINT}\/.*/).to_return(:status => 503)
end