rails-response-dumper 4.1.0 → 5.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: b36497e5dbc803078e07b1303d4df1ec11d23deb80881a3ab9ec76fe4ed532bf
4
- data.tar.gz: 93643ba27e9f5c10d41595466d1864a194fb9409dd55f046bb9b01fdc1c327fb
3
+ metadata.gz: bfe1595c9662696463fa4e649f35a69a186c905a76938b25fea441626b83aa71
4
+ data.tar.gz: 77318d3db4e2be51449859b86b13b384b9215307a51e5d70b672c42fe887c4b8
5
5
  SHA512:
6
- metadata.gz: c2ecfb86d177c8564eaec6f131397fd3ec3724895b1eb689e0a526b532055e638f36d908942b424efe727bb0646327be7948a064c5305121de7bd27bd6f0d652
7
- data.tar.gz: 43aae543d827a60d995f5ff28db8308ed511b0d2f3a099d9694a7bbb4f5e21652a000bef0b753b10677c0f24518f62c4358f8e1e20d38ffffbc7cdf271a03cf1
6
+ metadata.gz: f8c59e64e7a1d88e6475f3b8705eed1e667cbf1297ac110c7cf706f590b67aecc9cd2e18ad214eed484a70fe6ee13fdfd906445e76d667ed44de4916f5a00948
7
+ data.tar.gz: 5e5bb5ea43bbecdc5eca986b087fdf87e36efd3208b679df4bfec35cc02a85b963a510dc142043b27c0167c7a348f071c9aab1357441291d1a2328ef03ea74eb
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'mime/types'
4
3
  require_relative 'defined'
5
4
 
6
5
  module RailsResponseDumper
@@ -12,10 +11,11 @@ module RailsResponseDumper
12
11
 
13
12
  Dir[Rails.root.join('dumpers/**/*.rb')].each { |f| require f }
14
13
 
14
+ errors = []
15
+
15
16
  RailsResponseDumper::Defined.dumpers.each do |defined|
16
17
  defined.blocks.each do |dump_block|
17
18
  defined.reset_models!
18
-
19
19
  dumper = defined.klass.new
20
20
  dumper.mock_setup
21
21
  begin
@@ -33,7 +33,6 @@ module RailsResponseDumper
33
33
 
34
34
  unless dumper.responses.count == dump_block.expected_status_codes.count
35
35
  raise <<~ERROR.squish
36
- #{defined.name}.#{dump_block.name} received
37
36
  #{dumper.responses.count} responses
38
37
  (expected #{dump_block.expected_status_codes.count})
39
38
  ERROR
@@ -46,22 +45,48 @@ module RailsResponseDumper
46
45
  dumper.responses.each_with_index do |response, index|
47
46
  unless response.status == dump_block.expected_status_codes[index]
48
47
  raise <<~ERROR.squish
49
- #{defined.name}.#{dump_block.name} has unexpected status
50
- code #{response.status} #{response.status_message}
48
+ unexpected status code #{response.status} #{response.status_message}
51
49
  (expected #{dump_block.expected_status_codes[index]})
52
50
  ERROR
53
51
  end
54
52
 
55
- if response.content_type
56
- mime = response.content_type.split(/ *; */).first
57
- extension = ".#{MIME::Types[mime].first.preferred_extension}"
58
- else
59
- extension = ''
60
- end
61
- File.write("#{dumper_dir}/#{index}#{extension}", response.body)
53
+ request = response.request
54
+ dump = {
55
+ request: {
56
+ method: request.method,
57
+ url: request.url
58
+ },
59
+ response: {
60
+ status: response.status,
61
+ headers: response.headers,
62
+ body: response.body
63
+ }
64
+ }
65
+ File.write("#{dumper_dir}/#{index}.json", JSON.pretty_generate(dump))
62
66
  end
67
+
68
+ print '.'
69
+ rescue StandardError => e
70
+ errors << {
71
+ dumper_location: dump_block.block.source_location.join(':'),
72
+ name: "#{defined.name}.#{dump_block.name}",
73
+ message: e.exception.message,
74
+ backtrace: e.cause&.backtrace || e.exception.backtrace
75
+ }
76
+
77
+ print 'F'
63
78
  end
64
79
  end
80
+
81
+ puts
82
+ return if errors.blank?
83
+
84
+ errors.each do |error|
85
+ $stderr.print "#{error[:dumper_location]} #{error[:name]} received #{error[:message]}\n"
86
+ $stderr.print "#{error[:backtrace][0]}\n\n"
87
+ end
88
+
89
+ exit(false)
65
90
  end
66
91
 
67
92
  private
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-response-dumper
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0
4
+ version: 5.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-10-18 00:00:00.000000000 Z
11
+ date: 2022-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: mime-types
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '3.0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '3.0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: rails
29
15
  requirement: !ruby/object:Gem::Requirement