rails-response-dumper 3.0.1 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 33844c7b9a9480388327762b8a297daab7e464c47933b8559325283aa29fc5b3
4
- data.tar.gz: 6b8984033d0040101a4577e9a8c9aedfb3bba372510c03655ddbc402eb07e016
3
+ metadata.gz: 22c747acb9c14801e9dcb12be0d5dc1031932f8b5111620b8599903294116b1d
4
+ data.tar.gz: 5c97ba8bc6bdab090c0b6e93f01fede4638fe3e16f3e52abe9b1c0020bee7c9d
5
5
  SHA512:
6
- metadata.gz: 4c4aa80837f7f3ec7d70b5e245692e50ac8d612499deba1d269dc54800bae589aa9143ee33ad2f665b6a647b1a741bb77ffb83acc9aa1b12169150fcd543a796
7
- data.tar.gz: 033d6714b3e5febebbf5aa063e7a538bda9ae101a4cbef7b196a446c567c5f4b4341bd6dca328f2ba084e8e3a378462b9c8caa909b111545e165de656db703fc
6
+ metadata.gz: ae56654d82cd2dae48600ca54fcb4f07a9b2b2e02656f16db68326ed8c01b378b5b7ad2dc82202cdb6cb393d63037144068c12245fe80f02995448015bbd699f
7
+ data.tar.gz: b2f9e80a7069deec3e36d182bf3c4ed2e45838a3909c5633951e7bb1a728425d72e9533c6d7befe12caca9e84da55326913c2317ea03493f4a18d3901aaa7a7b
@@ -22,8 +22,12 @@ module RailsResponseDumper
22
22
  self.class.dumpers << self
23
23
  end
24
24
 
25
- def dump(name, status_code: :ok, &block)
26
- blocks << DumpBlock.new(name, Rack::Utils::SYMBOL_TO_STATUS_CODE[status_code], block)
25
+ def dump(name, status_codes: [:ok], &block)
26
+ blocks << DumpBlock.new(
27
+ name,
28
+ status_codes.map { |status_code| Rack::Utils::SYMBOL_TO_STATUS_CODE[status_code] },
29
+ block
30
+ )
27
31
  end
28
32
 
29
33
  def blocks
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsResponseDumper
4
- DumpBlock = Struct.new('DumpBlock', :name, :expected_status_code, :block)
4
+ DumpBlock = Struct.new('DumpBlock', :name, :expected_status_codes, :block)
5
5
  end
@@ -26,22 +26,34 @@ module RailsResponseDumper
26
26
  dumper.mock_teardown
27
27
  end
28
28
 
29
+ unless dumper.responses.count == dump_block.expected_status_codes.count
30
+ raise <<~ERROR.squish
31
+ #{defined.name}.#{dump_block.name} received
32
+ #{dumper.responses.count} responses
33
+ (expected #{dump_block.expected_status_codes.count})
34
+ ERROR
35
+ end
36
+
29
37
  klass_path = defined.name.underscore
30
38
  dumper_dir = "#{dumps_dir}/#{klass_path}/#{dump_block.name}"
31
39
  FileUtils.mkdir_p dumper_dir
32
40
 
33
41
  dumper.responses.each_with_index do |response, index|
34
- unless response.status == dump_block.expected_status_code
42
+ unless response.status == dump_block.expected_status_codes[index]
35
43
  raise <<~ERROR.squish
36
44
  #{defined.name}.#{dump_block.name} has unexpected status
37
45
  code #{response.status} #{response.status_message}
38
- (expected #{dump_block.expected_status_code})
46
+ (expected #{dump_block.expected_status_codes[index]})
39
47
  ERROR
40
48
  end
41
49
 
42
- mime = response.content_type.split(/ *; */).first
43
- extension = MIME::Types[mime].first.preferred_extension
44
- File.write("#{dumper_dir}/#{index}.#{extension}", response.body)
50
+ if response.content_type
51
+ mime = response.content_type.split(/ *; */).first
52
+ extension = ".#{MIME::Types[mime].first.preferred_extension}"
53
+ else
54
+ extension = ''
55
+ end
56
+ File.write("#{dumper_dir}/#{index}#{extension}", response.body)
45
57
  end
46
58
  end
47
59
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-response-dumper
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pioneer Valley Books
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-29 00:00:00.000000000 Z
11
+ date: 2022-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mime-types