rails-response-dumper 4.1.0 → 5.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: 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