resizing 1.0.3 → 1.1.0.pre
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/.github/workflows/test.yml +2 -13
- data/.gitignore +0 -6
- data/Gemfile +2 -10
- data/README.md +32 -59
- data/lib/resizing/active_storage/service/resizing_service.rb +2 -6
- data/lib/resizing/carrier_wave/storage/file.rb +24 -68
- data/lib/resizing/carrier_wave/storage/remote.rb +3 -7
- data/lib/resizing/carrier_wave.rb +11 -19
- data/lib/resizing/client.rb +24 -40
- data/lib/resizing/configurable.rb +1 -1
- data/lib/resizing/configuration.rb +16 -6
- data/lib/resizing/http_clientable.rb +3 -3
- data/lib/resizing/mock_client.rb +5 -6
- data/lib/resizing/public_id.rb +4 -5
- data/lib/resizing/version.rb +1 -1
- data/lib/resizing/video/client.rb +116 -0
- data/lib/resizing/video.rb +8 -0
- data/lib/resizing.rb +12 -24
- data/resizing.gemspec +11 -9
- data/test/resizing/carrier_wave/storage/file_test.rb +8 -149
- data/test/resizing/carrier_wave/storage/remote_test.rb +0 -75
- data/test/resizing/carrier_wave_test.rb +32 -373
- data/test/resizing/client_test.rb +11 -96
- data/test/resizing/configuration_test.rb +2 -118
- data/test/resizing/public_id_test.rb +1 -1
- data/test/resizing/video/client_test.rb +158 -0
- data/test/resizing_test.rb +0 -16
- data/test/test_helper.rb +9 -148
- data/test/vcr/video/metadata/success.yml +47 -0
- data/test/vcr/video/prepare/success.yml +47 -0
- data/test/vcr/video/upload_completed/success.yml +47 -0
- metadata +43 -56
- data/lib/resizing/active_storage/service.rb +0 -9
- data/lib/resizing/active_storage.rb +0 -7
- data/test/resizing/active_storage_service_test.rb +0 -98
- data/test/resizing/configurable_test.rb +0 -82
- data/test/resizing/constants_test.rb +0 -25
- data/test/resizing/error_test.rb +0 -73
- data/test/resizing/http_clientable_test.rb +0 -84
- data/test/resizing/mock_client_test.rb +0 -75
- data/test/resizing_module_test.rb +0 -206
- data/test/vcr/carrier_wave_test/update_image.yml +0 -63
- /data/{bin → exe}/console +0 -0
- /data/{bin → exe}/generate-changelog +0 -0
- /data/{bin → exe}/setup +0 -0
metadata
CHANGED
|
@@ -1,83 +1,71 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: resizing
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.1.0.pre
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Junichiro Kasuya
|
|
8
|
-
autorequire:
|
|
9
|
-
bindir:
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-08-31 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: '1.0'
|
|
20
|
-
- - "<"
|
|
17
|
+
- - "~>"
|
|
21
18
|
- !ruby/object:Gem::Version
|
|
22
|
-
version: '3'
|
|
19
|
+
version: '2.3'
|
|
23
20
|
type: :runtime
|
|
24
21
|
prerelease: false
|
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
26
23
|
requirements:
|
|
27
|
-
- - "
|
|
28
|
-
- !ruby/object:Gem::Version
|
|
29
|
-
version: '1.0'
|
|
30
|
-
- - "<"
|
|
24
|
+
- - "~>"
|
|
31
25
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: '3'
|
|
26
|
+
version: '2.3'
|
|
33
27
|
- !ruby/object:Gem::Dependency
|
|
34
28
|
name: faraday-multipart
|
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
|
36
30
|
requirements:
|
|
37
31
|
- - ">="
|
|
38
32
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: '
|
|
33
|
+
version: '0'
|
|
40
34
|
type: :runtime
|
|
41
35
|
prerelease: false
|
|
42
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
43
37
|
requirements:
|
|
44
38
|
- - ">="
|
|
45
39
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: '
|
|
40
|
+
version: '0'
|
|
47
41
|
- !ruby/object:Gem::Dependency
|
|
48
42
|
name: rails
|
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
|
50
44
|
requirements:
|
|
51
|
-
- - "
|
|
45
|
+
- - "~>"
|
|
52
46
|
- !ruby/object:Gem::Version
|
|
53
47
|
version: '6.0'
|
|
54
|
-
- - "<"
|
|
55
|
-
- !ruby/object:Gem::Version
|
|
56
|
-
version: '7.1'
|
|
57
48
|
type: :development
|
|
58
49
|
prerelease: false
|
|
59
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
60
51
|
requirements:
|
|
61
|
-
- - "
|
|
52
|
+
- - "~>"
|
|
62
53
|
- !ruby/object:Gem::Version
|
|
63
54
|
version: '6.0'
|
|
64
|
-
- - "<"
|
|
65
|
-
- !ruby/object:Gem::Version
|
|
66
|
-
version: '7.1'
|
|
67
55
|
- !ruby/object:Gem::Dependency
|
|
68
56
|
name: carrierwave
|
|
69
57
|
requirement: !ruby/object:Gem::Requirement
|
|
70
58
|
requirements:
|
|
71
59
|
- - "~>"
|
|
72
60
|
- !ruby/object:Gem::Version
|
|
73
|
-
version:
|
|
61
|
+
version: 2.2.5
|
|
74
62
|
type: :development
|
|
75
63
|
prerelease: false
|
|
76
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
77
65
|
requirements:
|
|
78
66
|
- - "~>"
|
|
79
67
|
- !ruby/object:Gem::Version
|
|
80
|
-
version:
|
|
68
|
+
version: 2.2.5
|
|
81
69
|
- !ruby/object:Gem::Dependency
|
|
82
70
|
name: fog-aws
|
|
83
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -96,16 +84,16 @@ dependencies:
|
|
|
96
84
|
name: minitest
|
|
97
85
|
requirement: !ruby/object:Gem::Requirement
|
|
98
86
|
requirements:
|
|
99
|
-
- - "
|
|
87
|
+
- - ">="
|
|
100
88
|
- !ruby/object:Gem::Version
|
|
101
|
-
version: '
|
|
89
|
+
version: '0'
|
|
102
90
|
type: :development
|
|
103
91
|
prerelease: false
|
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
93
|
requirements:
|
|
106
|
-
- - "
|
|
94
|
+
- - ">="
|
|
107
95
|
- !ruby/object:Gem::Version
|
|
108
|
-
version: '
|
|
96
|
+
version: '0'
|
|
109
97
|
- !ruby/object:Gem::Dependency
|
|
110
98
|
name: minitest-ci
|
|
111
99
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -121,7 +109,7 @@ dependencies:
|
|
|
121
109
|
- !ruby/object:Gem::Version
|
|
122
110
|
version: '0'
|
|
123
111
|
- !ruby/object:Gem::Dependency
|
|
124
|
-
name:
|
|
112
|
+
name: rubocop
|
|
125
113
|
requirement: !ruby/object:Gem::Requirement
|
|
126
114
|
requirements:
|
|
127
115
|
- - ">="
|
|
@@ -135,7 +123,7 @@ dependencies:
|
|
|
135
123
|
- !ruby/object:Gem::Version
|
|
136
124
|
version: '0'
|
|
137
125
|
- !ruby/object:Gem::Dependency
|
|
138
|
-
name:
|
|
126
|
+
name: timecop
|
|
139
127
|
requirement: !ruby/object:Gem::Requirement
|
|
140
128
|
requirements:
|
|
141
129
|
- - ">="
|
|
@@ -149,7 +137,7 @@ dependencies:
|
|
|
149
137
|
- !ruby/object:Gem::Version
|
|
150
138
|
version: '0'
|
|
151
139
|
- !ruby/object:Gem::Dependency
|
|
152
|
-
name:
|
|
140
|
+
name: vcr
|
|
153
141
|
requirement: !ruby/object:Gem::Requirement
|
|
154
142
|
requirements:
|
|
155
143
|
- - ">="
|
|
@@ -163,7 +151,7 @@ dependencies:
|
|
|
163
151
|
- !ruby/object:Gem::Version
|
|
164
152
|
version: '0'
|
|
165
153
|
- !ruby/object:Gem::Dependency
|
|
166
|
-
name:
|
|
154
|
+
name: mysql2
|
|
167
155
|
requirement: !ruby/object:Gem::Requirement
|
|
168
156
|
requirements:
|
|
169
157
|
- - ">="
|
|
@@ -177,7 +165,7 @@ dependencies:
|
|
|
177
165
|
- !ruby/object:Gem::Version
|
|
178
166
|
version: '0'
|
|
179
167
|
- !ruby/object:Gem::Dependency
|
|
180
|
-
name:
|
|
168
|
+
name: simplecov
|
|
181
169
|
requirement: !ruby/object:Gem::Requirement
|
|
182
170
|
requirements:
|
|
183
171
|
- - ">="
|
|
@@ -191,7 +179,7 @@ dependencies:
|
|
|
191
179
|
- !ruby/object:Gem::Version
|
|
192
180
|
version: '0'
|
|
193
181
|
- !ruby/object:Gem::Dependency
|
|
194
|
-
name:
|
|
182
|
+
name: simplecov-cobertura
|
|
195
183
|
requirement: !ruby/object:Gem::Requirement
|
|
196
184
|
requirements:
|
|
197
185
|
- - ">="
|
|
@@ -207,7 +195,10 @@ dependencies:
|
|
|
207
195
|
description: 'Client and utilities for Resizing '
|
|
208
196
|
email:
|
|
209
197
|
- junichiro.kasuya@gmail.com
|
|
210
|
-
executables:
|
|
198
|
+
executables:
|
|
199
|
+
- console
|
|
200
|
+
- generate-changelog
|
|
201
|
+
- setup
|
|
211
202
|
extensions: []
|
|
212
203
|
extra_rdoc_files: []
|
|
213
204
|
files:
|
|
@@ -219,13 +210,11 @@ files:
|
|
|
219
210
|
- LICENSE.txt
|
|
220
211
|
- README.md
|
|
221
212
|
- Rakefile
|
|
222
|
-
- bin/console
|
|
223
|
-
- bin/generate-changelog
|
|
224
|
-
- bin/setup
|
|
225
213
|
- docker-compose.yml
|
|
214
|
+
- exe/console
|
|
215
|
+
- exe/generate-changelog
|
|
216
|
+
- exe/setup
|
|
226
217
|
- lib/resizing.rb
|
|
227
|
-
- lib/resizing/active_storage.rb
|
|
228
|
-
- lib/resizing/active_storage/service.rb
|
|
229
218
|
- lib/resizing/active_storage/service/resizing_service.rb
|
|
230
219
|
- lib/resizing/carrier_wave.rb
|
|
231
220
|
- lib/resizing/carrier_wave/storage/file.rb
|
|
@@ -238,32 +227,30 @@ files:
|
|
|
238
227
|
- lib/resizing/mock_client.rb
|
|
239
228
|
- lib/resizing/public_id.rb
|
|
240
229
|
- lib/resizing/version.rb
|
|
230
|
+
- lib/resizing/video.rb
|
|
231
|
+
- lib/resizing/video/client.rb
|
|
241
232
|
- resizing.gemspec
|
|
242
233
|
- test/data/images/empty_file.jpg
|
|
243
234
|
- test/data/images/sample1.jpg
|
|
244
|
-
- test/resizing/active_storage_service_test.rb
|
|
245
235
|
- test/resizing/carrier_wave/storage/file_test.rb
|
|
246
236
|
- test/resizing/carrier_wave/storage/remote_test.rb
|
|
247
237
|
- test/resizing/carrier_wave_test.rb
|
|
248
238
|
- test/resizing/client_test.rb
|
|
249
|
-
- test/resizing/configurable_test.rb
|
|
250
239
|
- test/resizing/configuration_test.rb
|
|
251
|
-
- test/resizing/constants_test.rb
|
|
252
|
-
- test/resizing/error_test.rb
|
|
253
|
-
- test/resizing/http_clientable_test.rb
|
|
254
|
-
- test/resizing/mock_client_test.rb
|
|
255
240
|
- test/resizing/public_id_test.rb
|
|
256
|
-
- test/
|
|
241
|
+
- test/resizing/video/client_test.rb
|
|
257
242
|
- test/resizing_test.rb
|
|
258
243
|
- test/test_helper.rb
|
|
259
244
|
- test/vcr/carrier_wave_test/remove_resizing_picture.yml
|
|
260
245
|
- test/vcr/carrier_wave_test/save.yml
|
|
261
|
-
- test/vcr/carrier_wave_test/update_image.yml
|
|
262
246
|
- test/vcr/client/delete.yml
|
|
263
247
|
- test/vcr/client/error.yml
|
|
264
248
|
- test/vcr/client/metadata.yml
|
|
265
249
|
- test/vcr/client/post.yml
|
|
266
250
|
- test/vcr/client/put.yml
|
|
251
|
+
- test/vcr/video/metadata/success.yml
|
|
252
|
+
- test/vcr/video/prepare/success.yml
|
|
253
|
+
- test/vcr/video/upload_completed/success.yml
|
|
267
254
|
homepage: https://github.com/jksy/resizing-gem
|
|
268
255
|
licenses:
|
|
269
256
|
- MIT
|
|
@@ -271,7 +258,7 @@ metadata:
|
|
|
271
258
|
allowed_push_host: https://rubygems.org
|
|
272
259
|
homepage_uri: https://github.com/jksy/resizing-gem
|
|
273
260
|
source_code_uri: https://github.com/jksy/resizing-gem.
|
|
274
|
-
post_install_message:
|
|
261
|
+
post_install_message:
|
|
275
262
|
rdoc_options: []
|
|
276
263
|
require_paths:
|
|
277
264
|
- lib
|
|
@@ -279,15 +266,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
279
266
|
requirements:
|
|
280
267
|
- - ">="
|
|
281
268
|
- !ruby/object:Gem::Version
|
|
282
|
-
version: 3.0
|
|
269
|
+
version: 2.3.0
|
|
283
270
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
284
271
|
requirements:
|
|
285
|
-
- - "
|
|
272
|
+
- - ">"
|
|
286
273
|
- !ruby/object:Gem::Version
|
|
287
|
-
version:
|
|
274
|
+
version: 1.3.1
|
|
288
275
|
requirements: []
|
|
289
|
-
rubygems_version: 3.
|
|
290
|
-
signing_key:
|
|
276
|
+
rubygems_version: 3.1.6
|
|
277
|
+
signing_key:
|
|
291
278
|
specification_version: 4
|
|
292
279
|
summary: Client and utilities for Resizing
|
|
293
280
|
test_files: []
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'test_helper'
|
|
4
|
-
|
|
5
|
-
module Resizing
|
|
6
|
-
module ActiveStorage
|
|
7
|
-
module Service
|
|
8
|
-
class ResizingServiceTest < Minitest::Test
|
|
9
|
-
def setup
|
|
10
|
-
@service = Resizing::ActiveStorage::Service::ResizingService.new
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def teardown
|
|
14
|
-
# NOP
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def test_service_initialization
|
|
18
|
-
assert_instance_of Resizing::ActiveStorage::Service::ResizingService, @service
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def test_upload_raises_not_implemented_error
|
|
22
|
-
assert_raises NotImplementedError do
|
|
23
|
-
@service.upload('test_key', StringIO.new('test data'))
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def test_download_raises_not_implemented_error
|
|
28
|
-
assert_raises NotImplementedError do
|
|
29
|
-
@service.download('test_key')
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def test_download_chunk_raises_not_implemented_error
|
|
34
|
-
assert_raises NotImplementedError do
|
|
35
|
-
@service.download_chunk('test_key', 0..99)
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def test_delete_raises_not_implemented_error
|
|
40
|
-
assert_raises NotImplementedError do
|
|
41
|
-
@service.delete('test_key')
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def test_exist_raises_not_implemented_error
|
|
46
|
-
assert_raises NotImplementedError do
|
|
47
|
-
@service.exist?('test_key')
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def test_url_for_direct_upload_raises_not_implemented_error
|
|
52
|
-
assert_raises NotImplementedError do
|
|
53
|
-
@service.url_for_direct_upload(
|
|
54
|
-
'test_key',
|
|
55
|
-
expires_in: 3600,
|
|
56
|
-
content_type: 'image/png',
|
|
57
|
-
conteont_length: 1024,
|
|
58
|
-
checksum: 'test_checksum'
|
|
59
|
-
)
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def test_headers_for_direct_upload_raises_not_implemented_error
|
|
64
|
-
assert_raises NotImplementedError do
|
|
65
|
-
@service.headers_for_direct_upload(
|
|
66
|
-
'test_key',
|
|
67
|
-
content_type: 'image/png',
|
|
68
|
-
checksum: 'test_checksum'
|
|
69
|
-
)
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
def test_private_url_raises_not_implemented_error
|
|
74
|
-
assert_raises NotImplementedError do
|
|
75
|
-
@service.send(
|
|
76
|
-
:private_url,
|
|
77
|
-
'test_key',
|
|
78
|
-
expires_in: 3600,
|
|
79
|
-
filename: 'test.png',
|
|
80
|
-
content_type: 'image/png',
|
|
81
|
-
disposition: :attachment
|
|
82
|
-
)
|
|
83
|
-
end
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
def test_public_url_raises_not_implemented_error
|
|
87
|
-
assert_raises NotImplementedError do
|
|
88
|
-
@service.send(
|
|
89
|
-
:public_url,
|
|
90
|
-
'test_key',
|
|
91
|
-
filename: 'test.png'
|
|
92
|
-
)
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
end
|
|
98
|
-
end
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'test_helper'
|
|
4
|
-
|
|
5
|
-
module Resizing
|
|
6
|
-
class ConfigurableTest < Minitest::Test
|
|
7
|
-
class TestConfigurable
|
|
8
|
-
include Configurable
|
|
9
|
-
|
|
10
|
-
def initialize(config = nil)
|
|
11
|
-
initialize_config(config)
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def setup
|
|
16
|
-
# NOP
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def teardown
|
|
20
|
-
# NOP
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def test_initialize_config_with_configuration_object
|
|
24
|
-
config = Configuration.new(
|
|
25
|
-
image_host: 'https://test.example.com',
|
|
26
|
-
project_id: 'test_id',
|
|
27
|
-
secret_token: 'test_token'
|
|
28
|
-
)
|
|
29
|
-
obj = TestConfigurable.new(config)
|
|
30
|
-
|
|
31
|
-
assert_equal config, obj.config
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def test_initialize_config_with_nil_uses_global_configure
|
|
35
|
-
Resizing.configure = Configuration.new(
|
|
36
|
-
image_host: 'https://global.example.com',
|
|
37
|
-
project_id: 'global_id',
|
|
38
|
-
secret_token: 'global_token'
|
|
39
|
-
)
|
|
40
|
-
|
|
41
|
-
obj = TestConfigurable.new(nil)
|
|
42
|
-
|
|
43
|
-
assert_equal Resizing.configure.image_host, obj.config.image_host
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def test_initialize_config_with_hash
|
|
47
|
-
config_hash = {
|
|
48
|
-
image_host: 'https://hash.example.com',
|
|
49
|
-
project_id: 'hash_id',
|
|
50
|
-
secret_token: 'hash_token'
|
|
51
|
-
}
|
|
52
|
-
obj = TestConfigurable.new(config_hash)
|
|
53
|
-
|
|
54
|
-
assert_equal 'https://hash.example.com', obj.config.image_host
|
|
55
|
-
assert_equal 'hash_id', obj.config.project_id
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def test_config_is_accessible
|
|
59
|
-
config = Configuration.new(
|
|
60
|
-
image_host: 'https://test.example.com',
|
|
61
|
-
project_id: 'test_id',
|
|
62
|
-
secret_token: 'test_token'
|
|
63
|
-
)
|
|
64
|
-
obj = TestConfigurable.new(config)
|
|
65
|
-
|
|
66
|
-
assert_instance_of Configuration, obj.config
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def test_attr_reader_config_is_defined
|
|
70
|
-
config = Configuration.new(
|
|
71
|
-
image_host: 'https://test.example.com',
|
|
72
|
-
project_id: 'test_id',
|
|
73
|
-
secret_token: 'test_token'
|
|
74
|
-
)
|
|
75
|
-
obj = TestConfigurable.new(config)
|
|
76
|
-
|
|
77
|
-
# Verify that config is accessible as a reader
|
|
78
|
-
assert obj.respond_to?(:config)
|
|
79
|
-
assert !obj.respond_to?(:config=)
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
end
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'test_helper'
|
|
4
|
-
|
|
5
|
-
module Resizing
|
|
6
|
-
class ConstantsTest < Minitest::Test
|
|
7
|
-
def test_http_status_ok_is_defined
|
|
8
|
-
assert_equal 200, Resizing::Constants::HTTP_STATUS_OK
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def test_http_status_created_is_defined
|
|
12
|
-
assert_equal 201, Resizing::Constants::HTTP_STATUS_CREATED
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def test_http_status_not_found_is_defined
|
|
16
|
-
assert_equal 404, Resizing::Constants::HTTP_STATUS_NOT_FOUND
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def test_constants_are_integers
|
|
20
|
-
assert_instance_of Integer, Resizing::Constants::HTTP_STATUS_OK
|
|
21
|
-
assert_instance_of Integer, Resizing::Constants::HTTP_STATUS_CREATED
|
|
22
|
-
assert_instance_of Integer, Resizing::Constants::HTTP_STATUS_NOT_FOUND
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
data/test/resizing/error_test.rb
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'test_helper'
|
|
4
|
-
|
|
5
|
-
module Resizing
|
|
6
|
-
class ErrorTest < Minitest::Test
|
|
7
|
-
def test_error_is_standard_error_subclass
|
|
8
|
-
assert Resizing::Error < StandardError
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def test_configuration_error_is_error_subclass
|
|
12
|
-
assert Resizing::ConfigurationError < Resizing::Error
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def test_api_error_is_error_subclass
|
|
16
|
-
assert Resizing::APIError < Resizing::Error
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def test_api_error_has_decoded_body_accessor
|
|
20
|
-
error = Resizing::APIError.new('test error')
|
|
21
|
-
|
|
22
|
-
assert_respond_to error, :decoded_body
|
|
23
|
-
assert_respond_to error, :decoded_body=
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def test_api_error_decoded_body_defaults_to_empty_hash
|
|
27
|
-
error = Resizing::APIError.new('test error')
|
|
28
|
-
|
|
29
|
-
assert_equal({}, error.decoded_body)
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def test_api_error_decoded_body_can_be_set_with_hash
|
|
33
|
-
error = Resizing::APIError.new('test error')
|
|
34
|
-
body = { 'error' => 'test', 'code' => 400 }
|
|
35
|
-
|
|
36
|
-
error.decoded_body = body
|
|
37
|
-
|
|
38
|
-
assert_equal body, error.decoded_body
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def test_api_error_decoded_body_raises_argument_error_for_non_hash
|
|
42
|
-
error = Resizing::APIError.new('test error')
|
|
43
|
-
|
|
44
|
-
assert_raises ArgumentError do
|
|
45
|
-
error.decoded_body = 'not a hash'
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def test_api_error_decoded_body_raises_argument_error_for_array
|
|
50
|
-
error = Resizing::APIError.new('test error')
|
|
51
|
-
|
|
52
|
-
assert_raises ArgumentError do
|
|
53
|
-
error.decoded_body = %w[not a hash]
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def test_configuration_error_can_be_raised_with_message
|
|
58
|
-
error = assert_raises Resizing::ConfigurationError do
|
|
59
|
-
raise Resizing::ConfigurationError, 'test configuration error'
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
assert_equal 'test configuration error', error.message
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
def test_api_error_can_be_raised_with_message
|
|
66
|
-
error = assert_raises Resizing::APIError do
|
|
67
|
-
raise Resizing::APIError, 'test api error'
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
assert_equal 'test api error', error.message
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
end
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'test_helper'
|
|
4
|
-
|
|
5
|
-
module Resizing
|
|
6
|
-
class HttpClientableTest < Minitest::Test
|
|
7
|
-
class TestClient
|
|
8
|
-
include HttpClientable
|
|
9
|
-
|
|
10
|
-
def config
|
|
11
|
-
@config ||= Configuration.new(
|
|
12
|
-
image_host: 'https://image.example.com',
|
|
13
|
-
project_id: 'test_project',
|
|
14
|
-
secret_token: 'test_token'
|
|
15
|
-
)
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def setup
|
|
20
|
-
@client = TestClient.new
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def teardown
|
|
24
|
-
# NOP
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def test_http_client_initialization
|
|
28
|
-
http_client = @client.http_client
|
|
29
|
-
|
|
30
|
-
assert_instance_of Faraday::Connection, http_client
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def test_http_client_has_open_timeout
|
|
34
|
-
http_client = @client.http_client
|
|
35
|
-
|
|
36
|
-
assert_equal @client.config.open_timeout, http_client.options[:open_timeout]
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def test_http_client_has_response_timeout
|
|
40
|
-
http_client = @client.http_client
|
|
41
|
-
|
|
42
|
-
assert_equal @client.config.response_timeout, http_client.options[:timeout]
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def test_http_client_is_cached
|
|
46
|
-
http_client1 = @client.http_client
|
|
47
|
-
http_client2 = @client.http_client
|
|
48
|
-
|
|
49
|
-
assert_equal http_client1.object_id, http_client2.object_id
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def test_handle_faraday_error_yields_block
|
|
53
|
-
result = @client.handle_faraday_error { 'test_result' }
|
|
54
|
-
|
|
55
|
-
assert_equal 'test_result', result
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def test_handle_faraday_error_catches_timeout_error
|
|
59
|
-
assert_raises Resizing::APIError do
|
|
60
|
-
@client.handle_faraday_error do
|
|
61
|
-
raise Faraday::TimeoutError, 'timeout'
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def test_handle_timeout_error_raises_api_error
|
|
67
|
-
error = Faraday::TimeoutError.new('test timeout')
|
|
68
|
-
|
|
69
|
-
assert_raises Resizing::APIError do
|
|
70
|
-
@client.handle_timeout_error(error)
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
def test_handle_timeout_error_message_includes_error_info
|
|
75
|
-
error = Faraday::TimeoutError.new('test timeout')
|
|
76
|
-
|
|
77
|
-
begin
|
|
78
|
-
@client.handle_timeout_error(error)
|
|
79
|
-
rescue Resizing::APIError => e
|
|
80
|
-
assert_includes e.message, 'TimeoutError'
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
end
|