gds-api-adapters 63.6.0 → 67.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +0 -1
- data/Rakefile +3 -4
- data/lib/gds_api.rb +2 -14
- data/lib/gds_api/asset_manager.rb +1 -1
- data/lib/gds_api/base.rb +8 -3
- data/lib/gds_api/email_alert_api.rb +12 -13
- data/lib/gds_api/imminence.rb +3 -3
- data/lib/gds_api/json_client.rb +6 -6
- data/lib/gds_api/list_response.rb +6 -6
- data/lib/gds_api/performance_platform/data_out.rb +21 -21
- data/lib/gds_api/publishing_api.rb +2 -2
- data/lib/gds_api/publishing_api/special_route_publisher.rb +1 -1
- data/lib/gds_api/response.rb +80 -6
- data/lib/gds_api/test_helpers/asset_manager.rb +0 -17
- data/lib/gds_api/test_helpers/calendars.rb +0 -9
- data/lib/gds_api/test_helpers/content_store.rb +0 -9
- data/lib/gds_api/test_helpers/email_alert_api.rb +28 -39
- data/lib/gds_api/test_helpers/imminence.rb +11 -14
- data/lib/gds_api/test_helpers/licence_application.rb +8 -16
- data/lib/gds_api/test_helpers/link_checker_api.rb +0 -8
- data/lib/gds_api/test_helpers/local_links_manager.rb +0 -13
- data/lib/gds_api/test_helpers/mapit.rb +15 -26
- data/lib/gds_api/test_helpers/organisations.rb +13 -18
- data/lib/gds_api/test_helpers/performance_platform/data_out.rb +34 -34
- data/lib/gds_api/test_helpers/publishing_api.rb +32 -51
- data/lib/gds_api/test_helpers/support.rb +0 -5
- data/lib/gds_api/test_helpers/support_api.rb +16 -20
- data/lib/gds_api/test_helpers/worldwide.rb +51 -31
- data/lib/gds_api/version.rb +1 -1
- metadata +14 -31
- data/lib/gds_api/publishing_api_v2.rb +0 -14
- data/lib/gds_api/test_helpers/alias_deprecated.rb +0 -13
- data/lib/gds_api/test_helpers/publishing_api_v2.rb +0 -13
@@ -5,13 +5,13 @@ module GdsApi
|
|
5
5
|
PP_DATA_OUT_ENDPOINT = "https://www.performance.service.gov.uk".freeze
|
6
6
|
|
7
7
|
def stub_service_feedback(slug, response_body = {})
|
8
|
-
stub_http_request(:get, "#{PP_DATA_OUT_ENDPOINT}/data/#{slug}/customer-satisfaction")
|
9
|
-
to_return(status: 200, body: response_body.to_json)
|
8
|
+
stub_http_request(:get, "#{PP_DATA_OUT_ENDPOINT}/data/#{slug}/customer-satisfaction")
|
9
|
+
.to_return(status: 200, body: response_body.to_json)
|
10
10
|
end
|
11
11
|
|
12
12
|
def stub_data_set_not_available(slug)
|
13
|
-
stub_http_request(:get, "#{PP_DATA_OUT_ENDPOINT}/data/#{slug}/customer-satisfaction")
|
14
|
-
to_return(status: 404)
|
13
|
+
stub_http_request(:get, "#{PP_DATA_OUT_ENDPOINT}/data/#{slug}/customer-satisfaction")
|
14
|
+
.to_return(status: 404)
|
15
15
|
end
|
16
16
|
|
17
17
|
def stub_service_not_available
|
@@ -20,51 +20,51 @@ module GdsApi
|
|
20
20
|
|
21
21
|
def stub_search_terms(slug, response_body = {})
|
22
22
|
options = {
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
slug: slug,
|
24
|
+
transaction: "search-terms",
|
25
|
+
group_by: "searchKeyword",
|
26
|
+
collect: "searchUniques:sum",
|
27
27
|
}
|
28
28
|
stub_statistics(options, false, response_body)
|
29
29
|
end
|
30
30
|
|
31
31
|
def stub_searches(slug, is_multipart, response_body = {})
|
32
32
|
options = {
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
33
|
+
slug: slug,
|
34
|
+
transaction: "search-terms",
|
35
|
+
group_by: "pagePath",
|
36
|
+
collect: "searchUniques:sum",
|
37
37
|
}
|
38
38
|
stub_statistics(options, is_multipart, response_body)
|
39
39
|
end
|
40
40
|
|
41
41
|
def stub_page_views(slug, is_multipart, response_body = {})
|
42
42
|
options = {
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
43
|
+
slug: slug,
|
44
|
+
transaction: "page-statistics",
|
45
|
+
group_by: "pagePath",
|
46
|
+
collect: "uniquePageviews:sum",
|
47
47
|
}
|
48
48
|
stub_statistics(options, is_multipart, response_body)
|
49
49
|
end
|
50
50
|
|
51
51
|
def stub_problem_reports(slug, is_multipart, response_body = {})
|
52
52
|
options = {
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
53
|
+
slug: slug,
|
54
|
+
transaction: "page-contacts",
|
55
|
+
group_by: "pagePath",
|
56
|
+
collect: "total:sum",
|
57
57
|
}
|
58
58
|
stub_statistics(options, is_multipart, response_body)
|
59
59
|
end
|
60
60
|
|
61
61
|
def stub_statistics(options, is_multipart, response_body = {})
|
62
62
|
params = {
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
63
|
+
group_by: options[:group_by],
|
64
|
+
collect: options[:collect],
|
65
|
+
duration: 42,
|
66
|
+
period: "day",
|
67
|
+
end_at: Date.today.to_time.getutc.iso8601,
|
68
68
|
}
|
69
69
|
|
70
70
|
filter_param = is_multipart ? :filter_by_prefix : :filter_by
|
@@ -76,21 +76,21 @@ module GdsApi
|
|
76
76
|
end
|
77
77
|
|
78
78
|
def stub_search_404(slug)
|
79
|
-
stub_request(:get, "#{PP_DATA_OUT_ENDPOINT}/data/govuk-info/search-terms")
|
80
|
-
with(query: hash_including(filter_by: slug))
|
81
|
-
to_return(status: 404, headers: { content_type: "application/json" })
|
79
|
+
stub_request(:get, "#{PP_DATA_OUT_ENDPOINT}/data/govuk-info/search-terms")
|
80
|
+
.with(query: hash_including(filter_by: slug))
|
81
|
+
.to_return(status: 404, headers: { content_type: "application/json" })
|
82
82
|
end
|
83
83
|
|
84
84
|
def stub_page_views_404(slug)
|
85
|
-
stub_request(:get, "#{PP_DATA_OUT_ENDPOINT}/data/govuk-info/page-statistics")
|
86
|
-
with(query: hash_including(filter_by: slug))
|
87
|
-
to_return(status: 404, headers: { content_type: "application/json" })
|
85
|
+
stub_request(:get, "#{PP_DATA_OUT_ENDPOINT}/data/govuk-info/page-statistics")
|
86
|
+
.with(query: hash_including(filter_by: slug))
|
87
|
+
.to_return(status: 404, headers: { content_type: "application/json" })
|
88
88
|
end
|
89
89
|
|
90
90
|
def stub_problem_reports_404(slug)
|
91
|
-
stub_request(:get, "#{PP_DATA_OUT_ENDPOINT}/data/govuk-info/page-contacts")
|
92
|
-
with(query: hash_including(filter_by: slug))
|
93
|
-
to_return(status: 404, headers: { content_type: "application/json" })
|
91
|
+
stub_request(:get, "#{PP_DATA_OUT_ENDPOINT}/data/govuk-info/page-contacts")
|
92
|
+
.with(query: hash_including(filter_by: slug))
|
93
|
+
.to_return(status: 404, headers: { content_type: "application/json" })
|
94
94
|
end
|
95
95
|
end
|
96
96
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require "gds_api/test_helpers/alias_deprecated"
|
2
1
|
require "gds_api/test_helpers/json_client_helper"
|
3
2
|
require "gds_api/test_helpers/content_item_helpers"
|
4
3
|
require "json"
|
@@ -7,7 +6,6 @@ module GdsApi
|
|
7
6
|
module TestHelpers
|
8
7
|
# @api documented
|
9
8
|
module PublishingApi
|
10
|
-
extend AliasDeprecated
|
11
9
|
include ContentItemHelpers
|
12
10
|
|
13
11
|
PUBLISHING_API_V2_ENDPOINT = Plek.current.find("publishing-api") + "/v2"
|
@@ -281,16 +279,16 @@ module GdsApi
|
|
281
279
|
|
282
280
|
# Get a request matcher that checks if a JSON request includes a set of attributes
|
283
281
|
def request_json_includes(required_attributes)
|
284
|
-
|
282
|
+
lambda do |request|
|
285
283
|
data = JSON.parse(request.body)
|
286
|
-
deep_stringify_keys(required_attributes)
|
287
|
-
to_a.all? { |key, value| data[key] == value }
|
284
|
+
deep_stringify_keys(required_attributes)
|
285
|
+
.to_a.all? { |key, value| data[key] == value }
|
288
286
|
end
|
289
287
|
end
|
290
288
|
|
291
289
|
# Get a request matcher that checks if a JSON request matches a hash
|
292
290
|
def request_json_matches(required_attributes)
|
293
|
-
|
291
|
+
lambda do |request|
|
294
292
|
data = JSON.parse(request.body)
|
295
293
|
deep_stringify_keys(required_attributes) == data
|
296
294
|
end
|
@@ -345,13 +343,13 @@ module GdsApi
|
|
345
343
|
# This method has been refactored into publishing_api_has_content (above)
|
346
344
|
# publishing_api_has_content allows for flexible passing in of arguments, please use instead
|
347
345
|
def stub_publishing_api_has_fields_for_document(document_type, items, fields)
|
348
|
-
body = Array(items).map
|
346
|
+
body = Array(items).map do |item|
|
349
347
|
deep_stringify_keys(item).slice(*fields)
|
350
|
-
|
348
|
+
end
|
351
349
|
|
352
|
-
query_params = fields.map
|
350
|
+
query_params = fields.map do |f|
|
353
351
|
"&fields%5B%5D=#{f}"
|
354
|
-
|
352
|
+
end
|
355
353
|
|
356
354
|
url = PUBLISHING_API_V2_ENDPOINT + "/content?document_type=#{document_type}#{query_params.join('')}"
|
357
355
|
|
@@ -396,9 +394,11 @@ module GdsApi
|
|
396
394
|
# Stub GET /v2/content/:content_id to return a 404 response
|
397
395
|
#
|
398
396
|
# @param content_id [UUID]
|
399
|
-
def stub_publishing_api_does_not_have_item(content_id)
|
397
|
+
def stub_publishing_api_does_not_have_item(content_id, params = {})
|
400
398
|
url = PUBLISHING_API_V2_ENDPOINT + "/content/" + content_id
|
401
|
-
stub_request(:get, url)
|
399
|
+
stub_request(:get, url)
|
400
|
+
.with(query: hash_including(params))
|
401
|
+
.to_return(status: 404, body: resource_not_found(content_id, "content item").to_json, headers: {})
|
402
402
|
end
|
403
403
|
|
404
404
|
# Stub a request to links endpoint
|
@@ -494,7 +494,7 @@ module GdsApi
|
|
494
494
|
def stub_publishing_api_has_expanded_links(links, with_drafts: true, generate: false)
|
495
495
|
links = deep_transform_keys(links, &:to_sym)
|
496
496
|
request_params = {}
|
497
|
-
request_params["with_drafts"] = false
|
497
|
+
request_params["with_drafts"] = false unless with_drafts
|
498
498
|
request_params["generate"] = true if generate
|
499
499
|
|
500
500
|
url = PUBLISHING_API_V2_ENDPOINT + "/expanded-links/" + links[:content_id]
|
@@ -576,7 +576,7 @@ module GdsApi
|
|
576
576
|
def stub_publishing_api_has_linked_items(items, params = {})
|
577
577
|
content_id = params.fetch(:content_id)
|
578
578
|
link_type = params.fetch(:link_type)
|
579
|
-
fields = params.fetch(:fields, %w
|
579
|
+
fields = params.fetch(:fields, %w[base_path content_id document_type title])
|
580
580
|
|
581
581
|
url = PUBLISHING_API_V2_ENDPOINT + "/linked/#{content_id}"
|
582
582
|
|
@@ -698,14 +698,14 @@ module GdsApi
|
|
698
698
|
end
|
699
699
|
|
700
700
|
def request_json_matching(required_attributes)
|
701
|
-
|
701
|
+
lambda do |request|
|
702
702
|
data = JSON.parse(request.body)
|
703
703
|
required_attributes.to_a.all? { |key, value| data[key.to_s] == value }
|
704
704
|
end
|
705
705
|
end
|
706
706
|
|
707
707
|
def request_json_including(required_attributes)
|
708
|
-
|
708
|
+
lambda do |request|
|
709
709
|
data = JSON.parse(request.body)
|
710
710
|
values_match_recursively(required_attributes, data)
|
711
711
|
end
|
@@ -739,7 +739,7 @@ module GdsApi
|
|
739
739
|
# @example
|
740
740
|
# stub_any_publishing_api_path_reservation
|
741
741
|
def stub_any_publishing_api_path_reservation
|
742
|
-
stub_request(:put, %r
|
742
|
+
stub_request(:put, %r{\A#{PUBLISHING_API_ENDPOINT}/paths/}).to_return do |request|
|
743
743
|
base_path = request.uri.path.sub(%r{\A/paths}, "")
|
744
744
|
body = JSON.parse(request.body).merge(base_path: base_path)
|
745
745
|
{
|
@@ -765,16 +765,16 @@ module GdsApi
|
|
765
765
|
message: "Base path #{message}",
|
766
766
|
fields: { base_path: [message] } }
|
767
767
|
|
768
|
-
stub_request(:put, "#{PUBLISHING_API_ENDPOINT}/paths#{path}")
|
769
|
-
to_return(status: 422,
|
770
|
-
|
771
|
-
|
768
|
+
stub_request(:put, "#{PUBLISHING_API_ENDPOINT}/paths#{path}")
|
769
|
+
.to_return(status: 422,
|
770
|
+
headers: { content_type: "application/json" },
|
771
|
+
body: { error: error }.to_json)
|
772
772
|
|
773
|
-
stub_request(:put, "#{PUBLISHING_API_ENDPOINT}/paths#{path}")
|
774
|
-
with(body: { "publishing_app" => publishing_app })
|
775
|
-
to_return(status: 200,
|
776
|
-
|
777
|
-
|
773
|
+
stub_request(:put, "#{PUBLISHING_API_ENDPOINT}/paths#{path}")
|
774
|
+
.with(body: { "publishing_app" => publishing_app })
|
775
|
+
.to_return(status: 200,
|
776
|
+
headers: { content_type: "application/json" },
|
777
|
+
body: { publishing_app: publishing_app, base_path: path }.to_json)
|
778
778
|
end
|
779
779
|
|
780
780
|
# Stub a PUT /paths/:base_path request for a particular publishing
|
@@ -797,30 +797,11 @@ module GdsApi
|
|
797
797
|
|
798
798
|
error = { code: 422, message: message, fields: error_fields }
|
799
799
|
|
800
|
-
stub_request(:put, "#{PUBLISHING_API_ENDPOINT}/paths#{base_path}")
|
801
|
-
to_return(status: 422,
|
802
|
-
|
803
|
-
|
804
|
-
end
|
805
|
-
|
806
|
-
alias_deprecated :publishing_api_isnt_available, :stub_publishing_api_isnt_available
|
807
|
-
alias_deprecated :publishing_api_has_content, :stub_publishing_api_has_content
|
808
|
-
alias_deprecated :publishing_api_has_fields_for_document, :stub_publishing_api_has_fields_for_document
|
809
|
-
alias_deprecated :publishing_api_has_linkables, :stub_publishing_api_has_linkables
|
810
|
-
alias_deprecated :publishing_api_has_item, :stub_publishing_api_has_item
|
811
|
-
alias_deprecated :publishing_api_has_item_in_sequence, :stub_publishing_api_has_item_in_sequence
|
812
|
-
alias_deprecated :publishing_api_does_not_have_item, :stub_publishing_api_does_not_have_item
|
813
|
-
alias_deprecated :publishing_api_has_links, :stub_publishing_api_has_links
|
814
|
-
alias_deprecated :publishing_api_has_expanded_links, :stub_publishing_api_has_expanded_links
|
815
|
-
alias_deprecated :publishing_api_has_links_for_content_ids, :stub_publishing_api_has_links_for_content_ids
|
816
|
-
alias_deprecated :publishing_api_does_not_have_links, :stub_publishing_api_does_not_have_links
|
817
|
-
alias_deprecated :publishing_api_has_lookups, :stub_publishing_api_has_lookups
|
818
|
-
alias_deprecated :publishing_api_has_linked_items, :stub_publishing_api_has_linked_items
|
819
|
-
alias_deprecated :publishing_api_get_editions, :stub_publishing_api_get_editions
|
820
|
-
alias_deprecated :publishing_api_has_path_reservation_for, :stub_publishing_api_has_path_reservation_for
|
821
|
-
alias_deprecated :publishing_api_returns_path_reservation_validation_error_for, :stub_publishing_api_returns_path_reservation_validation_error_for
|
822
|
-
alias_deprecated :stub_default_publishing_api_path_reservation, :stub_any_publishing_api_path_reservation
|
823
|
-
alias_deprecated :stub_default_publishing_api_put_intent, :stub_any_publishing_api_put_intent
|
800
|
+
stub_request(:put, "#{PUBLISHING_API_ENDPOINT}/paths#{base_path}")
|
801
|
+
.to_return(status: 422,
|
802
|
+
headers: { content_type: "application/json" },
|
803
|
+
body: { error: error }.to_json)
|
804
|
+
end
|
824
805
|
|
825
806
|
private
|
826
807
|
|
@@ -888,7 +869,7 @@ module GdsApi
|
|
888
869
|
return false unless actual_value.is_a?(Hash)
|
889
870
|
|
890
871
|
expected_value.all? do |expected_sub_key, expected_sub_value|
|
891
|
-
actual_value.
|
872
|
+
actual_value.key?(expected_sub_key.to_s) &&
|
892
873
|
values_match_recursively(expected_sub_value, actual_value[expected_sub_key.to_s])
|
893
874
|
end
|
894
875
|
when Array
|
@@ -1,9 +1,6 @@
|
|
1
|
-
require "gds_api/test_helpers/alias_deprecated"
|
2
|
-
|
3
1
|
module GdsApi
|
4
2
|
module TestHelpers
|
5
3
|
module Support
|
6
|
-
extend AliasDeprecated
|
7
4
|
SUPPORT_ENDPOINT = Plek.current.find("support")
|
8
5
|
|
9
6
|
def stub_support_foi_request_creation(request_details = nil)
|
@@ -21,8 +18,6 @@ module GdsApi
|
|
21
18
|
def stub_support_isnt_available
|
22
19
|
stub_request(:post, /#{SUPPORT_ENDPOINT}\/.*/).to_return(status: 503)
|
23
20
|
end
|
24
|
-
|
25
|
-
alias_deprecated :support_isnt_available, :stub_support_isnt_available
|
26
21
|
end
|
27
22
|
end
|
28
23
|
end
|
@@ -1,11 +1,9 @@
|
|
1
|
-
require "gds_api/test_helpers/alias_deprecated"
|
2
1
|
require "cgi"
|
3
2
|
require "plek"
|
4
3
|
|
5
4
|
module GdsApi
|
6
5
|
module TestHelpers
|
7
6
|
module SupportApi
|
8
|
-
extend AliasDeprecated
|
9
7
|
SUPPORT_API_ENDPOINT = Plek.current.find("support-api")
|
10
8
|
|
11
9
|
def stub_support_api_problem_report_creation(request_details = nil)
|
@@ -65,9 +63,9 @@ module GdsApi
|
|
65
63
|
end
|
66
64
|
|
67
65
|
def stub_support_api_problem_reports(params, response_body = {})
|
68
|
-
stub_http_request(:get, "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/problem-reports")
|
69
|
-
with(query: params)
|
70
|
-
to_return(status: 200, body: response_body.to_json)
|
66
|
+
stub_http_request(:get, "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/problem-reports")
|
67
|
+
.with(query: params)
|
68
|
+
.to_return(status: 200, body: response_body.to_json)
|
71
69
|
end
|
72
70
|
|
73
71
|
def stub_support_api_mark_reviewed_for_spam(request_details = nil, response_body = {})
|
@@ -89,8 +87,8 @@ module GdsApi
|
|
89
87
|
def stub_support_api_anonymous_feedback_organisation_summary(slug, ordering = nil, response_body = {})
|
90
88
|
uri = "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/organisations/#{slug}"
|
91
89
|
uri << "?ordering=#{ordering}" if ordering
|
92
|
-
stub_http_request(:get, uri)
|
93
|
-
to_return(status: 200, body: response_body.to_json)
|
90
|
+
stub_http_request(:get, uri)
|
91
|
+
.to_return(status: 200, body: response_body.to_json)
|
94
92
|
end
|
95
93
|
|
96
94
|
def stub_support_api_organisations_list(response_body = nil)
|
@@ -111,8 +109,8 @@ module GdsApi
|
|
111
109
|
},
|
112
110
|
]
|
113
111
|
|
114
|
-
stub_http_request(:get, "#{SUPPORT_API_ENDPOINT}/organisations")
|
115
|
-
to_return(status: 200, body: response_body.to_json)
|
112
|
+
stub_http_request(:get, "#{SUPPORT_API_ENDPOINT}/organisations")
|
113
|
+
.to_return(status: 200, body: response_body.to_json)
|
116
114
|
end
|
117
115
|
|
118
116
|
def stub_support_api_organisation(slug = "cabinet-office", response_body = nil)
|
@@ -124,22 +122,22 @@ module GdsApi
|
|
124
122
|
govuk_status: "live",
|
125
123
|
}
|
126
124
|
|
127
|
-
stub_http_request(:get, "#{SUPPORT_API_ENDPOINT}/organisations/#{slug}")
|
128
|
-
to_return(status: 200, body: response_body.to_json)
|
125
|
+
stub_http_request(:get, "#{SUPPORT_API_ENDPOINT}/organisations/#{slug}")
|
126
|
+
.to_return(status: 200, body: response_body.to_json)
|
129
127
|
end
|
130
128
|
|
131
129
|
def stub_support_api_document_type_list(response_body = nil)
|
132
|
-
response_body ||= %w
|
130
|
+
response_body ||= %w[case_study detailed_guide smart_answer]
|
133
131
|
|
134
|
-
stub_http_request(:get, "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/document-types")
|
135
|
-
to_return(status: 200, body: response_body.to_json)
|
132
|
+
stub_http_request(:get, "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/document-types")
|
133
|
+
.to_return(status: 200, body: response_body.to_json)
|
136
134
|
end
|
137
135
|
|
138
136
|
def stub_support_api_anonymous_feedback_doc_type_summary(document_type, ordering = nil, response_body = nil)
|
139
137
|
uri = "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/document-types/#{document_type}"
|
140
138
|
uri << "?ordering=#{ordering}" if ordering
|
141
|
-
stub_http_request(:get, uri)
|
142
|
-
to_return(status: 200, body: response_body.to_json)
|
139
|
+
stub_http_request(:get, uri)
|
140
|
+
.to_return(status: 200, body: response_body.to_json)
|
143
141
|
end
|
144
142
|
|
145
143
|
def stub_support_api_feedback_export_request(id, response_body = nil)
|
@@ -148,15 +146,13 @@ module GdsApi
|
|
148
146
|
ready: true,
|
149
147
|
}
|
150
148
|
|
151
|
-
stub_http_request(:get, "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/export-requests/#{id}")
|
152
|
-
to_return(status: 200, body: response_body.to_json)
|
149
|
+
stub_http_request(:get, "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/export-requests/#{id}")
|
150
|
+
.to_return(status: 200, body: response_body.to_json)
|
153
151
|
end
|
154
152
|
|
155
153
|
def stub_any_support_api_call
|
156
154
|
stub_request(:any, %r{\A#{SUPPORT_API_ENDPOINT}})
|
157
155
|
end
|
158
|
-
|
159
|
-
alias_deprecated :support_api_isnt_available, :stub_support_api_isnt_available
|
160
156
|
end
|
161
157
|
end
|
162
158
|
end
|
@@ -1,11 +1,9 @@
|
|
1
|
-
require "gds_api/test_helpers/alias_deprecated"
|
2
1
|
require "gds_api/test_helpers/json_client_helper"
|
3
2
|
require "gds_api/test_helpers/common_responses"
|
4
3
|
|
5
4
|
module GdsApi
|
6
5
|
module TestHelpers
|
7
6
|
module Worldwide
|
8
|
-
extend AliasDeprecated
|
9
7
|
include GdsApi::TestHelpers::CommonResponses
|
10
8
|
|
11
9
|
WORLDWIDE_API_ENDPOINT = Plek.new.website_root
|
@@ -23,12 +21,14 @@ module GdsApi
|
|
23
21
|
end
|
24
22
|
|
25
23
|
pages.each_with_index do |page, i|
|
26
|
-
page_details = plural_response_base.merge(
|
24
|
+
page_details = plural_response_base.merge(
|
25
|
+
"results" => page,
|
27
26
|
"total" => location_slugs.size,
|
28
27
|
"pages" => pages.size,
|
29
28
|
"current_page" => i + 1,
|
30
29
|
"page_size" => 20,
|
31
|
-
"start_index" => i * 20 + 1
|
30
|
+
"start_index" => i * 20 + 1,
|
31
|
+
)
|
32
32
|
|
33
33
|
links = { self: "#{WORLDWIDE_API_ENDPOINT}/api/world-locations?page=#{i + 1}" }
|
34
34
|
links[:next] = "#{WORLDWIDE_API_ENDPOINT}/api/world-locations?page=#{i + 2}" if pages[i + 1]
|
@@ -40,32 +40,59 @@ module GdsApi
|
|
40
40
|
link_headers << "<#{href}>; rel=\"#{rel}\""
|
41
41
|
end
|
42
42
|
|
43
|
-
stub_request(:get, links[:self])
|
44
|
-
to_return(status: 200, body: page_details.to_json, headers: { "Link" => link_headers.join(", ") })
|
43
|
+
stub_request(:get, links[:self])
|
44
|
+
.to_return(status: 200, body: page_details.to_json, headers: { "Link" => link_headers.join(", ") })
|
45
45
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
46
|
+
next unless i.zero?
|
47
|
+
|
48
|
+
# First page exists at URL with and without page param
|
49
|
+
stub_request(:get, links[:self].sub(/\?page=1/, ""))
|
50
|
+
.to_return(status: 200, body: page_details.to_json, headers: { "Link" => link_headers.join(", ") })
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
54
|
def stub_worldwide_api_has_selection_of_locations
|
55
|
-
stub_worldwide_api_has_locations %w
|
56
|
-
afghanistan
|
57
|
-
|
58
|
-
|
59
|
-
|
55
|
+
stub_worldwide_api_has_locations %w[
|
56
|
+
afghanistan
|
57
|
+
angola
|
58
|
+
australia
|
59
|
+
bahamas
|
60
|
+
belarus
|
61
|
+
brazil
|
62
|
+
brunei
|
63
|
+
cambodia
|
64
|
+
chad
|
65
|
+
croatia
|
66
|
+
denmark
|
67
|
+
eritrea
|
68
|
+
france
|
69
|
+
ghana
|
70
|
+
iceland
|
71
|
+
japan
|
72
|
+
laos
|
73
|
+
luxembourg
|
74
|
+
malta
|
75
|
+
micronesia
|
76
|
+
mozambique
|
77
|
+
nicaragua
|
78
|
+
panama
|
79
|
+
portugal
|
80
|
+
sao-tome-and-principe
|
81
|
+
singapore
|
82
|
+
south-korea
|
83
|
+
sri-lanka
|
84
|
+
uk-delegation-to-council-of-europe
|
60
85
|
uk-delegation-to-organization-for-security-and-co-operation-in-europe
|
61
|
-
united-kingdom
|
62
|
-
|
86
|
+
united-kingdom
|
87
|
+
venezuela
|
88
|
+
vietnam
|
89
|
+
]
|
63
90
|
end
|
64
91
|
|
65
92
|
def stub_worldwide_api_has_location(location_slug, details = nil)
|
66
93
|
details ||= world_location_for_slug(location_slug)
|
67
|
-
stub_request(:get, "#{WORLDWIDE_API_ENDPOINT}/api/world-locations/#{location_slug}")
|
68
|
-
to_return(status: 200, body: details.to_json)
|
94
|
+
stub_request(:get, "#{WORLDWIDE_API_ENDPOINT}/api/world-locations/#{location_slug}")
|
95
|
+
.to_return(status: 200, body: details.to_json)
|
69
96
|
end
|
70
97
|
|
71
98
|
def stub_worldwide_api_does_not_have_location(location_slug)
|
@@ -75,15 +102,15 @@ module GdsApi
|
|
75
102
|
def stub_worldwide_api_has_organisations_for_location(location_slug, json_or_hash)
|
76
103
|
json = json_or_hash.is_a?(Hash) ? json_or_hash.to_json : json_or_hash
|
77
104
|
url = "#{WORLDWIDE_API_ENDPOINT}/api/world-locations/#{location_slug}/organisations"
|
78
|
-
stub_request(:get, url)
|
79
|
-
to_return(status: 200, body: json, headers: { "Link" => "<#{url}; rel\"self\"" })
|
105
|
+
stub_request(:get, url)
|
106
|
+
.to_return(status: 200, body: json, headers: { "Link" => "<#{url}; rel\"self\"" })
|
80
107
|
end
|
81
108
|
|
82
109
|
def stub_worldwide_api_has_no_organisations_for_location(location_slug)
|
83
110
|
details = { "results" => [], "total" => 0, "_response_info" => { "status" => "ok" } }
|
84
111
|
url = "#{WORLDWIDE_API_ENDPOINT}/api/world-locations/#{location_slug}/organisations"
|
85
|
-
stub_request(:get, url)
|
86
|
-
to_return(status: 200, body: details.to_json, headers: { "Link" => "<#{url}; rel\"self\"" })
|
112
|
+
stub_request(:get, url)
|
113
|
+
.to_return(status: 200, body: details.to_json, headers: { "Link" => "<#{url}; rel\"self\"" })
|
87
114
|
end
|
88
115
|
|
89
116
|
def world_location_for_slug(slug)
|
@@ -112,13 +139,6 @@ module GdsApi
|
|
112
139
|
"content_id" => "content_id_for_#{slug}",
|
113
140
|
}
|
114
141
|
end
|
115
|
-
|
116
|
-
alias_deprecated :worldwide_api_has_locations, :stub_worldwide_api_has_locations
|
117
|
-
alias_deprecated :worldwide_api_has_selection_of_locations, :stub_worldwide_api_has_selection_of_locations
|
118
|
-
alias_deprecated :worldwide_api_has_location, :stub_worldwide_api_has_location
|
119
|
-
alias_deprecated :worldwide_api_has_does_not_have_location, :stub_worldwide_api_does_not_have_location
|
120
|
-
alias_deprecated :worldwide_api_has_organisations_for_location, :stub_worldwide_api_has_organisations_for_location
|
121
|
-
alias_deprecated :worldwide_api_has_no_organisations_for_location, :stub_worldwide_api_has_no_organisations_for_location
|
122
142
|
end
|
123
143
|
end
|
124
144
|
end
|