noun-project-api 0.2.2 → 3.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.
Files changed (32) hide show
  1. checksums.yaml +5 -5
  2. data/Rakefile +9 -7
  3. data/lib/noun_project_api.rb +38 -0
  4. data/lib/noun_project_api/base_item.rb +30 -0
  5. data/lib/noun_project_api/collection.rb +36 -0
  6. data/lib/noun_project_api/collection_retriever.rb +14 -0
  7. data/lib/{noun-project-api → noun_project_api}/connection.rb +3 -1
  8. data/lib/noun_project_api/errors.rb +14 -0
  9. data/lib/noun_project_api/icon.rb +41 -0
  10. data/lib/noun_project_api/icon_retriever.rb +14 -0
  11. data/lib/noun_project_api/icons_retriever.rb +66 -0
  12. data/lib/noun_project_api/reporter.rb +22 -0
  13. data/lib/noun_project_api/retriever.rb +18 -0
  14. data/spec/lib/noun_project_api/base_item_spec.rb +13 -0
  15. data/spec/lib/noun_project_api/collection_retriever_spec.rb +87 -0
  16. data/spec/lib/noun_project_api/collection_spec.rb +66 -0
  17. data/spec/lib/{noun-project-api → noun_project_api}/icon_retriever_spec.rb +20 -18
  18. data/spec/lib/{noun-project-api → noun_project_api}/icon_spec.rb +21 -19
  19. data/spec/lib/{noun-project-api → noun_project_api}/icons_retriever_spec.rb +27 -25
  20. data/spec/lib/{noun-project-api → noun_project_api}/reporter_spec.rb +24 -24
  21. data/spec/lib/noun_project_api/retriever_spec.rb +22 -0
  22. data/spec/lib/{nount_project_api_spec.rb → noun_project_api_spec.rb} +5 -3
  23. data/spec/spec_helper.rb +3 -4
  24. data/spec/support/fakes.rb +93 -10
  25. metadata +90 -45
  26. data/lib/noun-project-api.rb +0 -30
  27. data/lib/noun-project-api/icon.rb +0 -52
  28. data/lib/noun-project-api/icon_retriever.rb +0 -20
  29. data/lib/noun-project-api/icons_retriever.rb +0 -51
  30. data/lib/noun-project-api/reporter.rb +0 -20
  31. data/lib/noun-project-api/retriever.rb +0 -6
  32. data/spec/lib/noun-project-api/retriever_spec.rb +0 -20
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+ require "ostruct"
5
+
6
+ RSpec.describe NounProjectApi::CollectionRetriever do
7
+ it "raises an error on empty initialization input" do
8
+ expect { NounProjectApi::Collection.new }.to raise_error(ArgumentError)
9
+ end
10
+
11
+ it "accepts JSON string input" do
12
+ data = JSON.parse(Fakes::Results::COLLECTION_VALID)
13
+ expect { NounProjectApi::Collection.new(JSON.dump(data["collection"])) }.to_not raise_error
14
+ end
15
+
16
+ it "accepts JSON string input with collection encapsulation" do
17
+ expect { NounProjectApi::Collection.new(Fakes::Results::COLLECTION_VALID) }.to_not raise_error
18
+ end
19
+
20
+ it "accepts hash input" do
21
+ data = JSON.parse(Fakes::Results::COLLECTION_VALID)
22
+ expect { NounProjectApi::Collection.new(data) }.to_not raise_error
23
+ end
24
+
25
+ context "exposed attributes" do
26
+ before :each do
27
+ @json = JSON.parse(Fakes::Results::COLLECTION_VALID)
28
+ @valid_collection = NounProjectApi::Collection.new(Fakes::Results::COLLECTION_VALID)
29
+ end
30
+
31
+ it "id as number" do
32
+ expect(@valid_collection.id).to be_a(Integer)
33
+ expect(@valid_collection.id).to eq(@json["collection"]["id"].to_i)
34
+ end
35
+
36
+ it "author id as number" do
37
+ expect(@valid_collection.author_id).to eq(@json["collection"]["author_id"].to_i)
38
+ end
39
+
40
+ it "author name" do
41
+ expect(@valid_collection.author_name).to eq(@json["collection"]["author"]["name"])
42
+ end
43
+
44
+ it "icon count as number" do
45
+ expect(@valid_collection.icon_count).to eq(@json["collection"]["icon_count"].to_i)
46
+ end
47
+
48
+ it "is published" do
49
+ expect(@valid_collection.published?).to eq(@json["collection"]["is_published"].to_i == 1)
50
+ end
51
+
52
+ it "builds a simple hash" do
53
+ expect(@valid_collection.to_hash).to eq(
54
+ id: @valid_collection.id,
55
+ author_id: @valid_collection.author_id,
56
+ author_name: @valid_collection.author_name,
57
+ icon_count: @valid_collection.icon_count,
58
+ published: @valid_collection.published?
59
+ )
60
+ end
61
+
62
+ it "json formats the hash" do
63
+ expect(@valid_collection.to_json).to eq JSON.dump @valid_collection.to_hash
64
+ end
65
+ end
66
+ end
@@ -1,26 +1,28 @@
1
- require 'spec_helper'
2
- require 'ostruct'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+ require "ostruct"
3
5
 
4
6
  RSpec.describe NounProjectApi::IconRetriever do
5
7
  before :each do
6
- @icon = NounProjectApi::IconRetriever.new(Faker::Internet.password(16), Faker::Internet.password(16))
7
- @valid_hash = JSON.parse(Fakes::Results::ICON_VALID)
8
+ @icon = NounProjectApi::IconRetriever.new(Faker::Internet.password(min_length: 16), Faker::Internet.password(min_length: 16))
9
+ @valid_hash = JSON.parse(Fakes::Results::ICON_VALID, symbolize_names: true)
8
10
  @valid_response = OpenStruct.new(
9
11
  body: Fakes::Results::ICON_VALID,
10
- code: '200'
12
+ code: "200"
11
13
  )
12
14
 
13
15
  @missing_response = OpenStruct.new(
14
- code: '404'
16
+ code: "404"
15
17
  )
16
18
  end
17
19
 
18
20
  context "id" do
19
- it 'raises an error when no id is provided' do
21
+ it "raises an error when no id is provided" do
20
22
  expect { @icon.find(nil) }.to raise_error(ArgumentError)
21
23
  end
22
24
 
23
- it 'returns a proper result with a correct id' do
25
+ it "returns a proper result with a correct id" do
24
26
  id = 1
25
27
  expect(@icon.access_token).to receive(
26
28
  :get
@@ -32,10 +34,10 @@ RSpec.describe NounProjectApi::IconRetriever do
32
34
 
33
35
  result = @icon.find(id)
34
36
  expect(result).to be_a(NounProjectApi::Icon)
35
- expect(result.original_hash).to eq(@valid_hash["icon"])
37
+ expect(result.original_hash).to eq(@valid_hash[:icon])
36
38
  end
37
39
 
38
- it 'raises an error with a missing id' do
40
+ it "raises an error with a missing id" do
39
41
  id = 1
40
42
  expect(@icon.access_token).to receive(
41
43
  :get
@@ -45,17 +47,17 @@ RSpec.describe NounProjectApi::IconRetriever do
45
47
  @missing_response
46
48
  )
47
49
 
48
- expect { @icon.find(id) }.to raise_error(ArgumentError)
50
+ expect { @icon.find(id) }.to raise_error(NounProjectApi::ServiceError)
49
51
  end
50
52
  end
51
53
 
52
54
  context "slug" do
53
- it 'raises an error when no slug is provided' do
55
+ it "raises an error when no slug is provided" do
54
56
  expect { @icon.find_by_slug(nil) }.to raise_error(ArgumentError)
55
57
  end
56
58
 
57
- it 'returns a proper result with a correct slug' do
58
- slug = 'existing_slug'
59
+ it "returns a proper result with a correct slug" do
60
+ slug = "existing_slug"
59
61
  expect(@icon.access_token).to receive(
60
62
  :get
61
63
  ).with(
@@ -66,11 +68,11 @@ RSpec.describe NounProjectApi::IconRetriever do
66
68
 
67
69
  result = @icon.find(slug)
68
70
  expect(result).to be_a(NounProjectApi::Icon)
69
- expect(result.original_hash).to eq(@valid_hash["icon"])
71
+ expect(result.original_hash).to eq(@valid_hash[:icon])
70
72
  end
71
73
 
72
- it 'raises an error with a missing slug' do
73
- slug = 'missing_slug'
74
+ it "raises an error with a missing slug" do
75
+ slug = "missing_slug"
74
76
  expect(@icon.access_token).to receive(
75
77
  :get
76
78
  ).with(
@@ -79,7 +81,7 @@ RSpec.describe NounProjectApi::IconRetriever do
79
81
  @missing_response
80
82
  )
81
83
 
82
- expect { @icon.find_by_slug(slug) }.to raise_error(ArgumentError)
84
+ expect { @icon.find_by_slug(slug) }.to raise_error(NounProjectApi::ServiceError)
83
85
  end
84
86
  end
85
87
  end
@@ -1,21 +1,23 @@
1
- require 'spec_helper'
2
- require 'ostruct'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+ require "ostruct"
3
5
 
4
6
  RSpec.describe NounProjectApi::IconRetriever do
5
- it 'raises an error on empty initialization input' do
7
+ it "raises an error on empty initialization input" do
6
8
  expect { NounProjectApi::Icon.new }.to raise_error(ArgumentError)
7
9
  end
8
10
 
9
- it 'accepts JSON string input' do
11
+ it "accepts JSON string input" do
10
12
  data = JSON.parse(Fakes::Results::ICON_VALID)
11
13
  expect { NounProjectApi::Icon.new(JSON.dump(data["icon"])) }.to_not raise_error
12
14
  end
13
15
 
14
- it 'accepts JSON string input with icon encapsulation' do
16
+ it "accepts JSON string input with icon encapsulation" do
15
17
  expect { NounProjectApi::Icon.new(Fakes::Results::ICON_VALID) }.to_not raise_error
16
18
  end
17
19
 
18
- it 'accepts hash input' do
20
+ it "accepts hash input" do
19
21
  data = JSON.parse(Fakes::Results::ICON_VALID)
20
22
  expect { NounProjectApi::Icon.new(data) }.to_not raise_error
21
23
  end
@@ -26,51 +28,51 @@ RSpec.describe NounProjectApi::IconRetriever do
26
28
  @valid_icon = NounProjectApi::Icon.new(Fakes::Results::ICON_VALID)
27
29
  end
28
30
 
29
- it 'public domain' do
31
+ it "public domain" do
30
32
  expect(@valid_icon.public_domain?).to eq(@json["icon"]["license_description"] == "public-domain")
31
33
  end
32
34
 
33
- it 'SVG url' do
35
+ it "SVG url" do
34
36
  expect(@valid_icon.svg_url).to eq(@json["icon"]["icon_url"])
35
37
  end
36
38
 
37
- it 'nil on missing SVG url' do
39
+ it "nil on missing SVG url" do
38
40
  @json["icon"].delete("icon_url")
39
41
  icon = NounProjectApi::Icon.new(@json)
40
42
  expect(icon.svg_url).to be_nil
41
43
  end
42
44
 
43
- it 'preview url defaults at 200 size' do
45
+ it "preview url defaults at 200 size" do
44
46
  expect(@valid_icon.preview_url).to eq(@json["icon"]["preview_url"])
45
47
  end
46
48
 
47
- it 'preview url for 200 size' do
49
+ it "preview url for 200 size" do
48
50
  expect(@valid_icon.preview_url(NounProjectApi::Icon::PREVIEW_SIZE_200)).to eq(@json["icon"]["preview_url"])
49
51
  end
50
52
 
51
- it 'preview url for 84 size' do
53
+ it "preview url for 84 size" do
52
54
  expect(@valid_icon.preview_url(NounProjectApi::Icon::PREVIEW_SIZE_84)).to eq(@json["icon"]["preview_url_84"])
53
55
  end
54
56
 
55
- it 'preview url for 42 size' do
57
+ it "preview url for 42 size" do
56
58
  expect(@valid_icon.preview_url(NounProjectApi::Icon::PREVIEW_SIZE_42)).to eq(@json["icon"]["preview_url_42"])
57
59
  end
58
60
 
59
- it 'id as number' do
60
- expect(@valid_icon.id).to be_a(Fixnum)
61
+ it "id as number" do
62
+ expect(@valid_icon.id).to be_a(Integer)
61
63
  expect(@valid_icon.id).to eq(@json["icon"]["id"].to_i)
62
64
  end
63
65
 
64
- it 'builds a simple hash' do
65
- expect(@valid_icon.to_hash).to eq({
66
+ it "builds a simple hash" do
67
+ expect(@valid_icon.to_hash).to eq(
66
68
  id: @valid_icon.id,
67
69
  preview_url_200: @valid_icon.preview_url(NounProjectApi::Icon::PREVIEW_SIZE_200),
68
70
  preview_url_84: @valid_icon.preview_url(NounProjectApi::Icon::PREVIEW_SIZE_84),
69
71
  preview_url_42: @valid_icon.preview_url(NounProjectApi::Icon::PREVIEW_SIZE_42)
70
- })
72
+ )
71
73
  end
72
74
 
73
- it 'json formats the hash' do
75
+ it "json formats the hash" do
74
76
  expect(@valid_icon.to_json).to eq JSON.dump @valid_icon.to_hash
75
77
  end
76
78
  end
@@ -1,8 +1,10 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe NounProjectApi::IconsRetriever do
4
6
  before :each do
5
- @icons = NounProjectApi::IconsRetriever.new(Faker::Internet.password(16), Faker::Internet.password(16))
7
+ @icons = NounProjectApi::IconsRetriever.new(Faker::Internet.password(min_length: 16), Faker::Internet.password(min_length: 16))
6
8
  end
7
9
 
8
10
  context "recent uploads" do
@@ -10,7 +12,7 @@ RSpec.describe NounProjectApi::IconsRetriever do
10
12
  valid_hash = JSON.parse(Fakes::Results::ICONS_RECENT_VALID)
11
13
  valid_response = OpenStruct.new(
12
14
  body: Fakes::Results::ICONS_RECENT_VALID,
13
- code: '200'
15
+ code: "200"
14
16
  )
15
17
 
16
18
  expect(@icons.access_token).to receive(
@@ -31,7 +33,7 @@ RSpec.describe NounProjectApi::IconsRetriever do
31
33
  it "returns the recent uploads and passes limit when passed" do
32
34
  valid_response = OpenStruct.new(
33
35
  body: Fakes::Results::ICONS_RECENT_VALID,
34
- code: '200'
36
+ code: "200"
35
37
  )
36
38
 
37
39
  limit = 3
@@ -53,22 +55,22 @@ RSpec.describe NounProjectApi::IconsRetriever do
53
55
  end
54
56
 
55
57
  context "Icons search" do
56
- it 'raises an error when no phrase is provided' do
58
+ it "raises an error when no phrase is provided" do
57
59
  expect { @icons.find(nil) }.to raise_error(ArgumentError)
58
60
  end
59
61
 
60
- it 'properly URI encodes search patterns' do
62
+ it "properly URI encodes search patterns" do
61
63
  valid_hash = JSON.parse(Fakes::Results::ICONS_VALID)
62
64
  valid_response = OpenStruct.new(
63
65
  body: Fakes::Results::ICONS_VALID,
64
- code: '200'
66
+ code: "200"
65
67
  )
66
68
 
67
- term = 'some search with \',] bad chars'
69
+ term = 'some search with ",] bad chars'
68
70
  expect(@icons.access_token).to receive(
69
71
  :get
70
72
  ).with(
71
- "#{NounProjectApi::API_BASE}#{NounProjectApi::IconsRetriever::API_PATH}#{OAuth::Helper::escape(term)}?limit_to_public_domain=0"
73
+ "#{NounProjectApi::API_BASE}#{NounProjectApi::IconsRetriever::API_PATH}#{OAuth::Helper.escape(term)}?limit_to_public_domain=0"
72
74
  ).and_return(
73
75
  valid_response
74
76
  )
@@ -80,18 +82,18 @@ RSpec.describe NounProjectApi::IconsRetriever do
80
82
  end
81
83
  end
82
84
 
83
- it 'returns a proper result with a correct phrase' do
85
+ it "returns a proper result with a correct phrase" do
84
86
  valid_hash = JSON.parse(Fakes::Results::ICONS_VALID)
85
87
  valid_response = OpenStruct.new(
86
88
  body: Fakes::Results::ICONS_VALID,
87
- code: '200'
89
+ code: "200"
88
90
  )
89
91
 
90
- term = 'some search'
92
+ term = "some search"
91
93
  expect(@icons.access_token).to receive(
92
94
  :get
93
95
  ).with(
94
- "#{NounProjectApi::API_BASE}#{NounProjectApi::IconsRetriever::API_PATH}#{OAuth::Helper::escape(term)}?limit_to_public_domain=0"
96
+ "#{NounProjectApi::API_BASE}#{NounProjectApi::IconsRetriever::API_PATH}#{OAuth::Helper.escape(term)}?limit_to_public_domain=0"
95
97
  ).and_return(
96
98
  valid_response
97
99
  )
@@ -103,18 +105,18 @@ RSpec.describe NounProjectApi::IconsRetriever do
103
105
  end
104
106
  end
105
107
 
106
- it 'properly handles public domain only config' do
108
+ it "properly handles public domain only config" do
107
109
  valid_hash = JSON.parse(Fakes::Results::ICONS_VALID)
108
110
  valid_response = OpenStruct.new(
109
111
  body: Fakes::Results::ICONS_VALID,
110
- code: '200'
112
+ code: "200"
111
113
  )
112
114
 
113
- term = 'some search'
115
+ term = "some search"
114
116
  expect(@icons.access_token).to receive(
115
117
  :get
116
118
  ).with(
117
- "#{NounProjectApi::API_BASE}#{NounProjectApi::IconsRetriever::API_PATH}#{OAuth::Helper::escape(term)}?limit_to_public_domain=1"
119
+ "#{NounProjectApi::API_BASE}#{NounProjectApi::IconsRetriever::API_PATH}#{OAuth::Helper.escape(term)}?limit_to_public_domain=1"
118
120
  ).and_return(
119
121
  valid_response
120
122
  )
@@ -128,18 +130,18 @@ RSpec.describe NounProjectApi::IconsRetriever do
128
130
  NounProjectApi.configuration.public_domain = false
129
131
  end
130
132
 
131
- it 'returns a proper result with a correct phrase and passes along the args' do
133
+ it "returns a proper result with a correct phrase and passes the args" do
132
134
  valid_response = OpenStruct.new(
133
135
  body: Fakes::Results::ICONS_VALID,
134
- code: '200'
136
+ code: "200"
135
137
  )
136
138
 
137
- term = 'some search'
139
+ term = "some search"
138
140
  limit = 4
139
141
  expect(@icons.access_token).to receive(
140
142
  :get
141
143
  ).with(
142
- "#{NounProjectApi::API_BASE}#{NounProjectApi::IconsRetriever::API_PATH}#{OAuth::Helper::escape(term)}?limit_to_public_domain=0&limit=#{limit}"
144
+ "#{NounProjectApi::API_BASE}#{NounProjectApi::IconsRetriever::API_PATH}#{OAuth::Helper.escape(term)}?limit_to_public_domain=0&limit=#{limit}"
143
145
  ).and_return(
144
146
  valid_response
145
147
  )
@@ -151,16 +153,16 @@ RSpec.describe NounProjectApi::IconsRetriever do
151
153
  end
152
154
  end
153
155
 
154
- it 'returns an empty array for no result' do
156
+ it "returns an empty array for no result" do
155
157
  missing_response = OpenStruct.new(
156
- code: '404'
158
+ code: "404"
157
159
  )
158
160
 
159
- term = 'missing search'
161
+ term = "missing search"
160
162
  expect(@icons.access_token).to receive(
161
163
  :get
162
164
  ).with(
163
- "#{NounProjectApi::API_BASE}#{NounProjectApi::IconsRetriever::API_PATH}#{OAuth::Helper::escape(term)}?limit_to_public_domain=0"
165
+ "#{NounProjectApi::API_BASE}#{NounProjectApi::IconsRetriever::API_PATH}#{OAuth::Helper.escape(term)}?limit_to_public_domain=0"
164
166
  ).and_return(
165
167
  missing_response
166
168
  )
@@ -1,34 +1,36 @@
1
- require 'spec_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
2
4
 
3
5
  RSpec.describe NounProjectApi::Reporter do
4
- it 'raises an error when initialized without token' do
5
- expect { NounProjectApi::Reporter.new(nil, Faker::Internet.password(16)) }.to raise_error(ArgumentError)
6
+ it "raises an error when initialized without token" do
7
+ expect { NounProjectApi::Reporter.new(nil, Faker::Internet.password(min_length: 16)) }.to raise_error(ArgumentError)
6
8
  end
7
9
 
8
- it 'raises an error when initialized without secret' do
9
- expect { NounProjectApi::Reporter.new(Faker::Internet.password(16), nil) }.to raise_error(ArgumentError)
10
+ it "raises an error when initialized without secret" do
11
+ expect { NounProjectApi::Reporter.new(Faker::Internet.password(min_length: 16), nil) }.to raise_error(ArgumentError)
10
12
  end
11
13
 
12
- it 'initializes the values properly' do
13
- token = Faker::Internet.password(16)
14
- secret = Faker::Internet.password(16)
14
+ it "initializes the values properly" do
15
+ token = Faker::Internet.password(min_length: 16)
16
+ secret = Faker::Internet.password(min_length: 16)
15
17
  reporter = NounProjectApi::Reporter.new(token, secret)
16
18
 
17
19
  expect(reporter.token).to eq(token)
18
20
  expect(reporter.secret).to eq(secret)
19
21
  end
20
22
 
21
- context 'reports ids usage' do
23
+ context "reports ids usage" do
22
24
  before :each do
23
- token = Faker::Internet.password(16)
24
- secret = Faker::Internet.password(16)
25
+ token = Faker::Internet.password(min_length: 16)
26
+ secret = Faker::Internet.password(min_length: 16)
25
27
  @reporter = NounProjectApi::Reporter.new(token, secret)
26
28
  end
27
29
 
28
- it 'reports a singular id' do
30
+ it "reports a singular id" do
29
31
  valid_response = OpenStruct.new(
30
32
  body: Fakes::Results::REPORTED_ONE,
31
- code: '200'
33
+ code: "200"
32
34
  )
33
35
 
34
36
  id = 122
@@ -38,7 +40,7 @@ RSpec.describe NounProjectApi::Reporter do
38
40
  ).with(
39
41
  "#{NounProjectApi::API_BASE}#{NounProjectApi::Reporter::API_PATH}",
40
42
  { icons: id.to_s }.to_json,
41
- { 'Accept' => 'application/json', 'Content-Type' => 'application/json' }
43
+ "Accept" => "application/json", "Content-Type" => "application/json"
42
44
  ).and_return(
43
45
  valid_response
44
46
  )
@@ -47,20 +49,20 @@ RSpec.describe NounProjectApi::Reporter do
47
49
  expect(result).to be true
48
50
  end
49
51
 
50
- it 'reports a singular id for a string' do
52
+ it "reports a singular id for a string" do
51
53
  valid_response = OpenStruct.new(
52
54
  body: Fakes::Results::REPORTED_ONE,
53
- code: '200'
55
+ code: "200"
54
56
  )
55
57
 
56
- id = '122'
58
+ id = "122"
57
59
 
58
60
  expect(@reporter.access_token).to receive(
59
61
  :post
60
62
  ).with(
61
63
  "#{NounProjectApi::API_BASE}#{NounProjectApi::Reporter::API_PATH}",
62
64
  { icons: id }.to_json,
63
- { 'Accept' => 'application/json', 'Content-Type' => 'application/json' }
65
+ "Accept" => "application/json", "Content-Type" => "application/json"
64
66
  ).and_return(
65
67
  valid_response
66
68
  )
@@ -69,12 +71,10 @@ RSpec.describe NounProjectApi::Reporter do
69
71
  expect(result).to be true
70
72
  end
71
73
 
72
-
73
-
74
- it 'reports multiple ids' do
74
+ it "reports multiple ids" do
75
75
  valid_response = OpenStruct.new(
76
76
  body: Fakes::Results::REPORTED_ONE,
77
- code: '200'
77
+ code: "200"
78
78
  )
79
79
 
80
80
  ids = [122, 4541, 342_11, 4352]
@@ -83,8 +83,8 @@ RSpec.describe NounProjectApi::Reporter do
83
83
  :post
84
84
  ).with(
85
85
  "#{NounProjectApi::API_BASE}#{NounProjectApi::Reporter::API_PATH}",
86
- { icons: ids.join(',') }.to_json,
87
- { 'Accept' => 'application/json', 'Content-Type' => 'application/json' }
86
+ { icons: ids.join(",") }.to_json,
87
+ "Accept" => "application/json", "Content-Type" => "application/json"
88
88
  ).and_return(
89
89
  valid_response
90
90
  )