rspec-html_messages 0.2.0 → 0.2.2

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: fc3b59ac0f83077258fad4cb42234bc719e03c9546bc538ea18df41f6b86dced
4
- data.tar.gz: a635ad05e6f767d73e5a824cec99478e5bd23753cd3e34fc3ce4ece324dd1cc6
3
+ metadata.gz: 1c4c35f34261c53e8f42c4830301e0b20301efa5a4401baa4cc95fb449c2b2d2
4
+ data.tar.gz: f349219144db99d3d0c4ad1d4502a6043e5ec142fd357cd517b8deef4227ab93
5
5
  SHA512:
6
- metadata.gz: c2ca977899e3481b5bed885c536153a2dc3f1b6c3483112b820059ad8cf3c414c2ccbab1ebdae6294d713a9eff4ae3216c267b03a17ac365dac2b88b42d719fb
7
- data.tar.gz: 3e28af8ae246b95686960a4b52da458780dcc16d69707f9777b83532eac074331204e00ce40ccb5fe4b0637d14a7ac1db82572dbd6e7978734c6688572c64a9e
6
+ metadata.gz: eb2d677dd22241cd9f08401cca7a11220d9d042341fa293decfd511ab8b66f7afd653dbf6ce79c2efe32e6ad03d0f4a389fdb85057bc09a8df291dea1ed54919
7
+ data.tar.gz: 204d97cb0a94581e1b9b4e766ede8a8f73612665d1c2e0133d530d68133cfe1718e9adc53cdd9af01e9538eee20f817a790772bba05625046a93d0f70178beb2
data/README.md CHANGED
@@ -267,8 +267,11 @@ Renders just the exception details section. Returns `nil` if no exception.
267
267
  #### `backtrace_html(**options)`
268
268
  Renders just the backtrace section. Returns `nil` if no backtrace.
269
269
 
270
+ #### `status_html(**options)`
271
+ Renders just the status section.
272
+
270
273
  #### `render_html(**options)`
271
- Convenience method that renders all three sections in a standard layout.
274
+ Convenience method that renders all four sections in a standard layout.
272
275
 
273
276
  ### Class Methods
274
277
 
@@ -0,0 +1,3 @@
1
+ <div class="alert <%= css_class %>" role="alert">
2
+ <%= message %>
3
+ </div>
@@ -1,6 +1,12 @@
1
1
  <div class="rspec-html-messages">
2
- <% if output_content = output_html(**@options) %>
2
+ <% if status_content = status_html(**@options) %>
3
3
  <div>
4
+ <%= status_content %>
5
+ </div>
6
+ <% end %>
7
+
8
+ <% if output_content = output_html(**@options) %>
9
+ <div class="mt-3">
4
10
  <%= output_content %>
5
11
  </div>
6
12
  <% end %>
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Rspec
4
4
  class HtmlMessages
5
- VERSION = "0.2.0"
5
+ VERSION = "0.2.2"
6
6
  end
7
7
  end
@@ -1,13 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "zeitwerk"
4
3
  require "active_support/backtrace_cleaner"
5
-
6
- Zeitwerk::Loader.new.then do |loader|
7
- loader.tag = "rspec-html_messages"
8
- loader.push_dir "#{__dir__}/.."
9
- loader.setup
10
- end
4
+ require "rspec/html_messages/value_formatter"
5
+ require "rspec/html_messages/diff_formatter"
6
+ require "rspec/html_messages/template_renderer"
11
7
 
12
8
  module Rspec
13
9
  # Main renderer class for converting enriched JSON examples to HTML
@@ -81,16 +77,27 @@ module Rspec
81
77
  render_template("_backtrace")
82
78
  end
83
79
 
80
+ def status_html(**options)
81
+ if passed?
82
+ css_class = "alert-success"
83
+ message = "This test passed!"
84
+ else
85
+ css_class = "alert-warning"
86
+ message = "The test did not pass."
87
+ end
88
+ render_template("_status", css_class: css_class, message: message)
89
+ end
90
+
84
91
  # Public boolean methods so users can make their own decisions
85
92
  def has_output?
86
93
  # Don't show output for errors before assertions
87
94
  return false if error_before_assertion?
88
95
 
89
- status == "failed" || has_actual?
96
+ failed? || has_actual?
90
97
  end
91
98
 
92
99
  def has_failure_message?
93
- status == "failed" && !error_before_assertion? && failure_message.present?
100
+ failed? && !error_before_assertion? && failure_message.present?
94
101
  end
95
102
 
96
103
  def has_exception_details?
@@ -142,6 +149,14 @@ module Rspec
142
149
 
143
150
  private
144
151
 
152
+ def passed?
153
+ status == "passed"
154
+ end
155
+
156
+ def failed?
157
+ status == "failed"
158
+ end
159
+
145
160
  def default_options
146
161
  {
147
162
  force_diffable: FORCE_DIFFABLE_MATCHERS,
@@ -174,7 +189,7 @@ module Rspec
174
189
  end
175
190
 
176
191
  def calculate_failure_message
177
- return nil unless status == "failed"
192
+ return nil unless failed?
178
193
 
179
194
  message = example.dig("exception", "message")
180
195
  return nil unless message
@@ -314,8 +329,6 @@ module Rspec
314
329
  end
315
330
  end
316
331
 
317
- private
318
-
319
332
  def validate_example!(example)
320
333
  raise ArgumentError, "Example cannot be nil" if example.nil?
321
334
  raise ArgumentError, "Example must be a Hash" unless example.is_a?(Hash)
@@ -25,7 +25,6 @@ Gem::Specification.new do |spec|
25
25
  spec.add_dependency "amazing_print", "~> 1.6"
26
26
  spec.add_dependency "diffy", "~> 3.4"
27
27
  spec.add_dependency "oj", "~> 3.16"
28
- spec.add_dependency "zeitwerk", "~> 2.7"
29
28
 
30
29
  spec.extra_rdoc_files = Dir["README*", "LICENSE*"]
31
30
  spec.files = Dir["*.gemspec", "lib/**/*"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-html_messages
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Raghu Betina
@@ -79,20 +79,6 @@ dependencies:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
81
  version: '3.16'
82
- - !ruby/object:Gem::Dependency
83
- name: zeitwerk
84
- requirement: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - "~>"
87
- - !ruby/object:Gem::Version
88
- version: '2.7'
89
- type: :runtime
90
- prerelease: false
91
- version_requirements: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: '2.7'
96
82
  email:
97
83
  - raghu@firstdraft.com
98
84
  executables: []
@@ -111,6 +97,7 @@ files:
111
97
  - lib/rspec/html_messages/templates/_diff.html.erb
112
98
  - lib/rspec/html_messages/templates/_exception_details.html.erb
113
99
  - lib/rspec/html_messages/templates/_failure_message.html.erb
100
+ - lib/rspec/html_messages/templates/_status.html.erb
114
101
  - lib/rspec/html_messages/templates/example.html.erb
115
102
  - lib/rspec/html_messages/value_formatter.rb
116
103
  - lib/rspec/html_messages/version.rb