govuk_taxonomy_helpers 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e5c3007adf0ce60349335ca892e7e1dc794272fe
|
4
|
+
data.tar.gz: b33cdedec387f8fdbd42ede8a5d35c6a6cff0bcb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b3604308af84d0f683812197af5a2ccb72db718a59a797dec168756c82bf90fef5ab232432674ff66f98a33be64364f848814f75f2e1d40a2e5b583fc8402e2
|
7
|
+
data.tar.gz: f7a29142e29897c8950d2f634d1786e9a2254b272a893f31373404fbc89741a52a2888e933bcb67fb7d7ae13982da0fc3d195f7da76d9750e30a5ecfbe7eaeff
|
data/CHANGELOG.md
CHANGED
@@ -23,9 +23,11 @@ module GovukTaxonomyHelpers
|
|
23
23
|
# @param content_item [Hash] Publishing API `get_content` response hash
|
24
24
|
# @param expanded_links [Hash] Publishing API `get_expanded_links` response hash
|
25
25
|
def initialize(content_item:, expanded_links:)
|
26
|
+
details = content_item["details"] || {}
|
27
|
+
|
26
28
|
@linked_content_item = LinkedContentItem.new(
|
27
29
|
title: content_item["title"],
|
28
|
-
internal_name:
|
30
|
+
internal_name: details["internal_name"],
|
29
31
|
content_id: content_item["content_id"],
|
30
32
|
base_path: content_item["base_path"]
|
31
33
|
)
|
@@ -62,14 +64,17 @@ module GovukTaxonomyHelpers
|
|
62
64
|
end
|
63
65
|
|
64
66
|
def parse_nested_child(nested_item)
|
67
|
+
details = nested_item["details"] || {}
|
68
|
+
links = nested_item["links"] || {}
|
69
|
+
|
65
70
|
nested_linked_content_item = LinkedContentItem.new(
|
66
71
|
title: nested_item["title"],
|
67
|
-
internal_name:
|
72
|
+
internal_name: details["internal_name"],
|
68
73
|
content_id: nested_item["content_id"],
|
69
74
|
base_path: nested_item["base_path"]
|
70
75
|
)
|
71
76
|
|
72
|
-
child_taxons =
|
77
|
+
child_taxons = links["child_taxons"]
|
73
78
|
|
74
79
|
if !child_taxons.nil?
|
75
80
|
child_taxons.each do |child|
|
@@ -81,14 +86,17 @@ module GovukTaxonomyHelpers
|
|
81
86
|
end
|
82
87
|
|
83
88
|
def parse_nested_parent(nested_item)
|
89
|
+
details = nested_item["details"] || {}
|
90
|
+
links = nested_item["links"] || {}
|
91
|
+
|
84
92
|
nested_linked_content_item = LinkedContentItem.new(
|
85
93
|
title: nested_item["title"],
|
86
|
-
internal_name:
|
94
|
+
internal_name: details["internal_name"],
|
87
95
|
content_id: nested_item["content_id"],
|
88
96
|
base_path: nested_item["base_path"]
|
89
97
|
)
|
90
98
|
|
91
|
-
parent_taxons =
|
99
|
+
parent_taxons = links["parent_taxons"]
|
92
100
|
|
93
101
|
if !parent_taxons.nil?
|
94
102
|
single_parent = parent_taxons.first
|
@@ -340,4 +340,66 @@ RSpec.describe GovukTaxonomyHelpers::PublishingApiResponse do
|
|
340
340
|
)
|
341
341
|
end
|
342
342
|
end
|
343
|
+
|
344
|
+
context "minimal responses with missing links and details hashes" do
|
345
|
+
let(:minimal_taxon) do
|
346
|
+
grandchild_1 = {
|
347
|
+
"content_id" => "84aadc14-9bca-40d9-abb4-4f21f9792a05",
|
348
|
+
"base_path" => "/grandchild-1",
|
349
|
+
"title" => "Grandchild 1",
|
350
|
+
}
|
351
|
+
|
352
|
+
grandchild_2 = {
|
353
|
+
"content_id" => "94aadc14-9bca-40d9-abb4-4f21f9792a05",
|
354
|
+
"base_path" => "/grandchild-2",
|
355
|
+
"title" => "Grandchild 2",
|
356
|
+
}
|
357
|
+
|
358
|
+
child_1 = {
|
359
|
+
"content_id" => "74aadc14-9bca-40d9-abb4-4f21f9792a05",
|
360
|
+
"base_path" => "/child-1",
|
361
|
+
"title" => "Child 1",
|
362
|
+
"links" => {
|
363
|
+
"child_taxons" => [
|
364
|
+
grandchild_1,
|
365
|
+
grandchild_2
|
366
|
+
]
|
367
|
+
}
|
368
|
+
}
|
369
|
+
|
370
|
+
content_item = {
|
371
|
+
"content_id" => "aaaaaa14-9bca-40d9-abb4-4f21f9792a05",
|
372
|
+
"base_path" => "/minimal-taxon",
|
373
|
+
"title" => "Minimal Taxon",
|
374
|
+
}
|
375
|
+
|
376
|
+
expanded_links = {
|
377
|
+
"content_id" => "64aadc14-9bca-40d9-abb4-4f21f9792a05",
|
378
|
+
"expanded_links" => {
|
379
|
+
"child_taxons" => [child_1],
|
380
|
+
"parent_taxons" => [
|
381
|
+
{
|
382
|
+
"content_id" => "ffaadc14-9bca-40d9-abb4-4f21f9792aff",
|
383
|
+
"title" => "Parent Taxon",
|
384
|
+
"base_path" => "/parent"
|
385
|
+
}
|
386
|
+
]
|
387
|
+
}
|
388
|
+
}
|
389
|
+
|
390
|
+
GovukTaxonomyHelpers::LinkedContentItem.from_publishing_api(
|
391
|
+
content_item: content_item,
|
392
|
+
expanded_links: expanded_links
|
393
|
+
)
|
394
|
+
end
|
395
|
+
|
396
|
+
it "parses taxons with nil internal names" do
|
397
|
+
expect(minimal_taxon.title).to eq("Minimal Taxon")
|
398
|
+
expect(minimal_taxon.internal_name).to be_nil
|
399
|
+
expect(minimal_taxon.parent.title).to eq("Parent Taxon")
|
400
|
+
expect(minimal_taxon.parent.internal_name).to be_nil
|
401
|
+
expect(minimal_taxon.descendants.map(&:title)).to eq(["Child 1", "Grandchild 1", "Grandchild 2"])
|
402
|
+
expect(minimal_taxon.descendants.map(&:internal_name)).to all(be_nil)
|
403
|
+
end
|
404
|
+
end
|
343
405
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: govuk_taxonomy_helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Government Digital Service
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-03-
|
11
|
+
date: 2017-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|