rails-response-dumper 3.0.1 → 4.0.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
  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