openfoodfacts 0.6.0 → 0.9.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 +4 -4
- data/README.md +26 -8
- data/Rakefile +7 -5
- data/lib/openfoodfacts/additive.rb +9 -13
- data/lib/openfoodfacts/allergen.rb +4 -6
- data/lib/openfoodfacts/brand.rb +5 -7
- data/lib/openfoodfacts/category.rb +4 -6
- data/lib/openfoodfacts/city.rb +4 -6
- data/lib/openfoodfacts/contributor.rb +4 -6
- data/lib/openfoodfacts/country.rb +4 -6
- data/lib/openfoodfacts/entry_date.rb +5 -7
- data/lib/openfoodfacts/faq.rb +11 -16
- data/lib/openfoodfacts/ingredient_that_may_be_from_palm_oil.rb +4 -6
- data/lib/openfoodfacts/label.rb +4 -6
- data/lib/openfoodfacts/language.rb +5 -7
- data/lib/openfoodfacts/last_edit_date.rb +5 -7
- data/lib/openfoodfacts/locale.rb +12 -14
- data/lib/openfoodfacts/manufacturing_place.rb +4 -6
- data/lib/openfoodfacts/mission.rb +20 -21
- data/lib/openfoodfacts/number_of_ingredients.rb +5 -7
- data/lib/openfoodfacts/nutrition_grade.rb +5 -7
- data/lib/openfoodfacts/origin.rb +4 -6
- data/lib/openfoodfacts/packager_code.rb +4 -6
- data/lib/openfoodfacts/packaging.rb +4 -6
- data/lib/openfoodfacts/press.rb +16 -13
- data/lib/openfoodfacts/product.rb +138 -62
- data/lib/openfoodfacts/product_state.rb +5 -7
- data/lib/openfoodfacts/purchase_place.rb +4 -6
- data/lib/openfoodfacts/store.rb +4 -6
- data/lib/openfoodfacts/trace.rb +4 -6
- data/lib/openfoodfacts/user.rb +16 -15
- data/lib/openfoodfacts/version.rb +3 -1
- data/lib/openfoodfacts.rb +9 -2
- metadata +19 -22
- data/test/minitest_helper.rb +0 -18
- data/test/test_openfoodfacts.rb +0 -329
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openfoodfacts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicolas Leger
|
8
|
-
|
8
|
+
- Pierre Slamich
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hashie
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '3.4'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
22
|
+
version: '6.0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,21 +29,21 @@ dependencies:
|
|
29
29
|
version: '3.4'
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
32
|
+
version: '6.0'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: nokogiri
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '1.
|
39
|
+
version: '1.16'
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '1.
|
46
|
+
version: '1.16'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: bundler
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,47 +59,47 @@ dependencies:
|
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '2.1'
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
|
-
name:
|
62
|
+
name: minitest
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
65
|
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
67
|
+
version: '5.25'
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
74
|
+
version: '5.25'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
|
-
name:
|
76
|
+
name: rake
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
79
|
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version: '
|
81
|
+
version: '13.0'
|
82
82
|
type: :development
|
83
83
|
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
86
|
- - "~>"
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version: '
|
88
|
+
version: '13.0'
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
90
|
name: vcr
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
92
92
|
requirements:
|
93
93
|
- - "~>"
|
94
94
|
- !ruby/object:Gem::Version
|
95
|
-
version: '
|
95
|
+
version: '6.0'
|
96
96
|
type: :development
|
97
97
|
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
100
|
- - "~>"
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version: '
|
102
|
+
version: '6.0'
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: webmock
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -116,7 +116,7 @@ dependencies:
|
|
116
116
|
version: '3.11'
|
117
117
|
description: Open Food Facts API Wrapper, the open database about food.
|
118
118
|
email:
|
119
|
-
-
|
119
|
+
- contact@openfoodfacts.org
|
120
120
|
executables: []
|
121
121
|
extensions: []
|
122
122
|
extra_rdoc_files: []
|
@@ -154,13 +154,11 @@ files:
|
|
154
154
|
- lib/openfoodfacts/trace.rb
|
155
155
|
- lib/openfoodfacts/user.rb
|
156
156
|
- lib/openfoodfacts/version.rb
|
157
|
-
- test/minitest_helper.rb
|
158
|
-
- test/test_openfoodfacts.rb
|
159
157
|
homepage: https://github.com/openfoodfacts/openfoodfacts-ruby
|
160
158
|
licenses:
|
161
159
|
- MIT
|
162
|
-
metadata:
|
163
|
-
|
160
|
+
metadata:
|
161
|
+
rubygems_mfa_required: 'true'
|
164
162
|
rdoc_options: []
|
165
163
|
require_paths:
|
166
164
|
- lib
|
@@ -175,8 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
175
173
|
- !ruby/object:Gem::Version
|
176
174
|
version: '0'
|
177
175
|
requirements: []
|
178
|
-
rubygems_version: 3.
|
179
|
-
signing_key:
|
176
|
+
rubygems_version: 3.6.9
|
180
177
|
specification_version: 4
|
181
178
|
summary: Open Food Facts API Wrapper
|
182
179
|
test_files: []
|
data/test/minitest_helper.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
2
|
-
require 'openfoodfacts'
|
3
|
-
|
4
|
-
require 'minitest/autorun'
|
5
|
-
|
6
|
-
require 'webmock/minitest'
|
7
|
-
require 'vcr'
|
8
|
-
|
9
|
-
# Avoid OpenSSL certificate verify failed error
|
10
|
-
if ENV.has_key?('APPVEYOR') && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.4')
|
11
|
-
require 'openssl'
|
12
|
-
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
|
13
|
-
end
|
14
|
-
|
15
|
-
VCR.configure do |c|
|
16
|
-
c.cassette_library_dir = "test/fixtures"
|
17
|
-
c.hook_into :webmock
|
18
|
-
end
|
data/test/test_openfoodfacts.rb
DELETED
@@ -1,329 +0,0 @@
|
|
1
|
-
require_relative 'minitest_helper'
|
2
|
-
|
3
|
-
class TestOpenfoodfacts < Minitest::Test
|
4
|
-
|
5
|
-
# Gem
|
6
|
-
|
7
|
-
def test_that_it_has_a_version_number
|
8
|
-
refute_nil ::Openfoodfacts::VERSION
|
9
|
-
end
|
10
|
-
|
11
|
-
# Locale
|
12
|
-
|
13
|
-
def test_it_fetches_locales
|
14
|
-
VCR.use_cassette("index") do
|
15
|
-
locales = ::Openfoodfacts::Locale.all
|
16
|
-
assert_includes locales.map { |locale| locale['code'] }, "gd"
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
# User
|
21
|
-
|
22
|
-
def test_it_login_user
|
23
|
-
VCR.use_cassette("login_user", record: :once, match_requests_on: [:host, :path]) do
|
24
|
-
user = ::Openfoodfacts::User.login("wrong", "absolutely")
|
25
|
-
assert_nil user
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
# Product
|
30
|
-
|
31
|
-
def test_it_returns_product_url
|
32
|
-
product = ::Openfoodfacts::Product.new(code: "3029330003533")
|
33
|
-
assert_equal ::Openfoodfacts::Product.url(product.code, locale: 'ca'), product.url(locale: 'ca')
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_it_returns_product_weburl
|
37
|
-
product = ::Openfoodfacts::Product.new(code: "3029330003533")
|
38
|
-
assert_equal "https://world.openfoodfacts.org/product/#{product.code}", product.weburl(locale: 'world')
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_it_fetches_product
|
42
|
-
product_code = "3029330003533"
|
43
|
-
|
44
|
-
VCR.use_cassette("fetch_product_#{product_code}", record: :once, match_requests_on: [:host, :path]) do
|
45
|
-
product = ::Openfoodfacts::Product.new(code: product_code)
|
46
|
-
product.fetch
|
47
|
-
refute_empty product.brands_tags
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_it_get_product
|
52
|
-
product_code = "3029330003533"
|
53
|
-
|
54
|
-
VCR.use_cassette("product_#{product_code}", record: :once, match_requests_on: [:host, :path]) do
|
55
|
-
assert_equal ::Openfoodfacts::Product.get(product_code).code, product_code
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
def test_that_it_search
|
60
|
-
term = "coca"
|
61
|
-
first_product = nil
|
62
|
-
|
63
|
-
VCR.use_cassette("search_#{term}") do
|
64
|
-
products = ::Openfoodfacts::Product.search(term, page_size: 42)
|
65
|
-
first_product = products.first
|
66
|
-
|
67
|
-
assert_match(/#{term}/i, products.last["product_name"])
|
68
|
-
assert_match(/#{term}/i, ::Openfoodfacts::Product.search(term).last["product_name"])
|
69
|
-
assert_equal products.size, 42
|
70
|
-
end
|
71
|
-
|
72
|
-
VCR.use_cassette("search_#{term}_1_000_000") do
|
73
|
-
refute_equal ::Openfoodfacts::Product.search(term, page: 2).first.code, first_product.code
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
=begin
|
78
|
-
# Test disable in order to wait for a dedicated test account to not alter real data
|
79
|
-
def test_it_updates_product
|
80
|
-
product_code = "3029330003533"
|
81
|
-
product = ::Openfoodfacts::Product.new(code: product_code)
|
82
|
-
product_last_modified_t = nil
|
83
|
-
|
84
|
-
VCR.use_cassette("fetch_product_#{product_code}", record: :all, match_requests_on: [:host, :path]) do
|
85
|
-
product.fetch
|
86
|
-
product_last_modified_t = product.last_modified_t
|
87
|
-
end
|
88
|
-
|
89
|
-
VCR.use_cassette("update_product_#{product_code}", record: :all, match_requests_on: [:host, :path]) do
|
90
|
-
product.update # Empty update are accepted, allow testing without altering data.
|
91
|
-
end
|
92
|
-
|
93
|
-
VCR.use_cassette("refetch_product_#{product_code}", record: :all, match_requests_on: [:host, :path]) do
|
94
|
-
product.fetch
|
95
|
-
end
|
96
|
-
|
97
|
-
refute_equal product_last_modified_t, product.last_modified_t
|
98
|
-
end
|
99
|
-
=end
|
100
|
-
|
101
|
-
|
102
|
-
# Additives
|
103
|
-
|
104
|
-
def test_it_fetches_additives
|
105
|
-
VCR.use_cassette("additives") do
|
106
|
-
additives = ::Openfoodfacts::Additive.all # World to have riskiness
|
107
|
-
assert_includes additives.map { |additive| additive['url'] }, "https://world.openfoodfacts.org/additive/e330-citric-acid"
|
108
|
-
refute_nil additives.detect { |additive| !additive['riskiness'].nil? }
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
def test_it_fetches_additives_for_locale
|
113
|
-
VCR.use_cassette("additives_locale") do
|
114
|
-
additives = ::Openfoodfacts::Additive.all(locale: 'fr')
|
115
|
-
assert_includes additives.map { |additive| additive['url'] }, "https://fr.openfoodfacts.org/additif/e330-acide-citrique"
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
def test_it_fetches_products_with_additive
|
120
|
-
additive = ::Openfoodfacts::Additive.new("url" => "https://world.openfoodfacts.org/additive/e452i-sodium-polyphosphate")
|
121
|
-
VCR.use_cassette("products_with_additive") do
|
122
|
-
products_with_additive = additive.products(page: 1)
|
123
|
-
refute_empty products_with_additive
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
|
-
# Brands
|
128
|
-
|
129
|
-
def test_it_fetches_brands
|
130
|
-
VCR.use_cassette("brands") do
|
131
|
-
brands = ::Openfoodfacts::Brand.all
|
132
|
-
assert_includes brands.map { |brand| brand['name'] }, "Carrefour"
|
133
|
-
end
|
134
|
-
end
|
135
|
-
|
136
|
-
def test_it_fetches_brands_for_locale
|
137
|
-
VCR.use_cassette("brands_locale") do
|
138
|
-
brands = ::Openfoodfacts::Brand.all(locale: 'fr')
|
139
|
-
assert_includes brands.map { |brand| brand['name'] }, "Loue"
|
140
|
-
end
|
141
|
-
end
|
142
|
-
|
143
|
-
def test_it_fetches_products_for_brand
|
144
|
-
brand = ::Openfoodfacts::Brand.new("url" => "https://world.openfoodfacts.org/brand/bel")
|
145
|
-
VCR.use_cassette("products_for_brand") do
|
146
|
-
products_for_brand = brand.products(page: 1)
|
147
|
-
refute_empty products_for_brand
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
|
-
# Nutrition Grades
|
152
|
-
|
153
|
-
def test_it_fetches_nutrition_grades
|
154
|
-
VCR.use_cassette("nutrition_grades") do
|
155
|
-
nutrition_grades = ::Openfoodfacts::NutritionGrade.all
|
156
|
-
assert_includes nutrition_grades.map { |nutrition_grade| nutrition_grade['name'] }, "Unknown"
|
157
|
-
end
|
158
|
-
end
|
159
|
-
|
160
|
-
def test_it_fetches_nutrition_grades_for_locale
|
161
|
-
VCR.use_cassette("nutrition_grades_locale") do
|
162
|
-
nutrition_grades = ::Openfoodfacts::NutritionGrade.all(locale: 'fr')
|
163
|
-
assert_includes nutrition_grades.map { |nutrition_grade| nutrition_grade['name'] }, "Inconnu"
|
164
|
-
end
|
165
|
-
end
|
166
|
-
|
167
|
-
def test_it_fetches_products_for_nutrition_grade
|
168
|
-
nutrition_grade = ::Openfoodfacts::NutritionGrade.new("url" => "https://world.openfoodfacts.org/nutrition-grade/c")
|
169
|
-
VCR.use_cassette("products_for_nutrition_grade") do
|
170
|
-
products_for_nutrition_grade = nutrition_grade.products(page: 1)
|
171
|
-
refute_empty products_for_nutrition_grade
|
172
|
-
end
|
173
|
-
end
|
174
|
-
|
175
|
-
# Languages
|
176
|
-
|
177
|
-
def test_it_fetches_languages
|
178
|
-
VCR.use_cassette("languages") do
|
179
|
-
languages = ::Openfoodfacts::Language.all
|
180
|
-
assert_includes languages.map { |language| language['name'] }, "French"
|
181
|
-
end
|
182
|
-
end
|
183
|
-
|
184
|
-
def test_it_fetches_languages_for_locale
|
185
|
-
VCR.use_cassette("languages_locale") do
|
186
|
-
languages = ::Openfoodfacts::Language.all(locale: 'fr')
|
187
|
-
assert_includes languages.map { |language| language['name'] }, "Anglais"
|
188
|
-
end
|
189
|
-
end
|
190
|
-
|
191
|
-
def test_it_fetches_products_for_language
|
192
|
-
language = ::Openfoodfacts::Language.new("url" => "https://world.openfoodfacts.org/language/french")
|
193
|
-
VCR.use_cassette("products_for_language") do
|
194
|
-
products_for_language = language.products(page: 1)
|
195
|
-
refute_empty products_for_language
|
196
|
-
end
|
197
|
-
end
|
198
|
-
|
199
|
-
# Product states
|
200
|
-
|
201
|
-
def test_it_fetches_product_states
|
202
|
-
VCR.use_cassette("product_states") do
|
203
|
-
product_states = ::Openfoodfacts::ProductState.all
|
204
|
-
assert_equal "https://world.openfoodfacts.org/state/front-photo-not-selected", product_states.last.url
|
205
|
-
end
|
206
|
-
end
|
207
|
-
|
208
|
-
def test_it_fetches_product_states_for_locale
|
209
|
-
VCR.use_cassette("product_states_locale") do
|
210
|
-
product_states = ::Openfoodfacts::ProductState.all(locale: 'fr')
|
211
|
-
assert_equal "https://fr.openfoodfacts.org/etat/en:front-photo-not-selected", product_states.last.url
|
212
|
-
end
|
213
|
-
end
|
214
|
-
|
215
|
-
def test_it_fetches_products_for_state
|
216
|
-
product_state = ::Openfoodfacts::ProductState.new("url" => "https://world.openfoodfacts.org/state/photos-uploaded", "products_count" => 22)
|
217
|
-
VCR.use_cassette("products_for_state") do
|
218
|
-
products_for_state = product_state.products(page: 1)
|
219
|
-
refute_empty products_for_state
|
220
|
-
end
|
221
|
-
end
|
222
|
-
|
223
|
-
# Entry date
|
224
|
-
|
225
|
-
def test_it_fetches_entry_dates
|
226
|
-
VCR.use_cassette("entry_dates") do
|
227
|
-
entry_dates = ::Openfoodfacts::EntryDate.all
|
228
|
-
assert_includes entry_dates.map { |entry_date| entry_date['name'] }, "2017-03-09"
|
229
|
-
end
|
230
|
-
end
|
231
|
-
|
232
|
-
def test_it_fetches_entry_dates_for_locale
|
233
|
-
VCR.use_cassette("entry_dates_locale") do
|
234
|
-
entry_dates = ::Openfoodfacts::EntryDate.all(locale: 'fr')
|
235
|
-
assert_includes entry_dates.map { |entry_date| entry_date['name'] }, "2017-03-09"
|
236
|
-
end
|
237
|
-
end
|
238
|
-
|
239
|
-
def test_it_fetches_products_for_entry_date
|
240
|
-
entry_date = ::Openfoodfacts::EntryDate.new("url" => "https://world.openfoodfacts.org/entry-date/2014-04-17")
|
241
|
-
VCR.use_cassette("products_for_entry_date") do
|
242
|
-
products_for_entry_date = entry_date.products(page: 1)
|
243
|
-
refute_empty products_for_entry_date
|
244
|
-
end
|
245
|
-
end
|
246
|
-
|
247
|
-
# Last edit date
|
248
|
-
|
249
|
-
def test_it_fetches_last_edit_dates
|
250
|
-
VCR.use_cassette("last_edit_dates") do
|
251
|
-
last_edit_dates = ::Openfoodfacts::LastEditDate.all
|
252
|
-
assert_includes last_edit_dates.map { |last_edit_date| last_edit_date['name'] }, "2017-03-23"
|
253
|
-
end
|
254
|
-
end
|
255
|
-
|
256
|
-
def test_it_fetches_last_edit_dates_for_locale
|
257
|
-
VCR.use_cassette("last_edit_dates_locale") do
|
258
|
-
last_edit_dates = ::Openfoodfacts::LastEditDate.all(locale: 'fr')
|
259
|
-
assert_includes last_edit_dates.map { |last_edit_date| last_edit_date['name'] }, "2017-03-23"
|
260
|
-
end
|
261
|
-
end
|
262
|
-
|
263
|
-
def test_it_fetches_products_for_last_edit_date
|
264
|
-
last_edit_date = ::Openfoodfacts::LastEditDate.new("url" => "https://world.openfoodfacts.org/last-edit-date/2020-04")
|
265
|
-
VCR.use_cassette("products_for_last_edit_date") do
|
266
|
-
products_for_last_edit_date = last_edit_date.products(page: 1)
|
267
|
-
refute_empty products_for_last_edit_date
|
268
|
-
end
|
269
|
-
end
|
270
|
-
|
271
|
-
# Number of Ingredients
|
272
|
-
|
273
|
-
def test_it_fetches_numbers_of_ingredients
|
274
|
-
VCR.use_cassette("numbers_of_ingredients") do
|
275
|
-
numbers_of_ingredients = ::Openfoodfacts::NumberOfIngredients.all
|
276
|
-
assert_includes numbers_of_ingredients.map { |number_of_ingredients| number_of_ingredients['name'] }, "38"
|
277
|
-
end
|
278
|
-
end
|
279
|
-
|
280
|
-
def test_it_fetches_numbers_of_ingredients_for_locale
|
281
|
-
VCR.use_cassette("number_of_ingredients_locale") do
|
282
|
-
numbers_of_ingredients = ::Openfoodfacts::NumberOfIngredients.all(locale: 'fr')
|
283
|
-
assert_includes numbers_of_ingredients.map { |number_of_ingredients| number_of_ingredients['name'] }, "38"
|
284
|
-
end
|
285
|
-
end
|
286
|
-
|
287
|
-
def test_it_fetches_products_for_number_of_ingredients
|
288
|
-
number_of_ingredients = ::Openfoodfacts::NumberOfIngredients.new("url" => "https://world.openfoodfacts.org/number-of-ingredients/38")
|
289
|
-
VCR.use_cassette("products_for_number_of_ingredients") do
|
290
|
-
products_for_number_of_ingredients = number_of_ingredients.products(page: 1)
|
291
|
-
refute_empty products_for_number_of_ingredients
|
292
|
-
end
|
293
|
-
end
|
294
|
-
|
295
|
-
# FAQ
|
296
|
-
|
297
|
-
def test_it_fetches_faq
|
298
|
-
VCR.use_cassette("faq") do
|
299
|
-
refute_empty ::Openfoodfacts::Faq.items(locale: 'fr')
|
300
|
-
end
|
301
|
-
end
|
302
|
-
|
303
|
-
# Mission
|
304
|
-
|
305
|
-
def test_it_fetches_missions
|
306
|
-
VCR.use_cassette("missions") do
|
307
|
-
skip("Website have a bug with Missions page on https://fr.openfoodfacts.org/missions")
|
308
|
-
refute_empty ::Openfoodfacts::Mission.all(locale: 'fr')
|
309
|
-
end
|
310
|
-
end
|
311
|
-
|
312
|
-
def test_it_fetches_mission
|
313
|
-
VCR.use_cassette("mission", record: :once, match_requests_on: [:host, :path]) do
|
314
|
-
skip("Website have a bug with Mission page on https://fr.openfoodfacts.org/mission/informateur-100-produits")
|
315
|
-
mission = ::Openfoodfacts::Mission.new(url: "https://fr.openfoodfacts.org/mission/informateur-100-produits")
|
316
|
-
mission.fetch
|
317
|
-
refute_empty mission.users
|
318
|
-
end
|
319
|
-
end
|
320
|
-
|
321
|
-
# Press
|
322
|
-
|
323
|
-
def test_it_fetches_press
|
324
|
-
VCR.use_cassette("press") do
|
325
|
-
refute_empty ::Openfoodfacts::Press.items(locale: 'fr')
|
326
|
-
end
|
327
|
-
end
|
328
|
-
|
329
|
-
end
|