Skip to content

Commit 2a3111d

Browse files
committed
Simplification of include_json failure message and spec
1 parent 3cbcc1d commit 2a3111d

File tree

2 files changed

+9
-21
lines changed

2 files changed

+9
-21
lines changed

lib/json_spec/matchers/include_json.rb

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,14 @@ class IncludeJson
55
include JsonSpec::Exclusion
66
include JsonSpec::Messages
77

8-
attr_reader :actual_json
9-
108
def initialize(expected_json = nil)
119
@expected_json = expected_json
1210
end
1311

1412
def matches?(actual_json)
1513
raise "Expected included JSON not provided" if @expected_json.nil?
1614

17-
self.actual_json = actual_json
15+
@actual_json = actual_json
1816

1917
actual = parse_json(actual_json, @path)
2018
expected = exclude_keys(parse_json(@expected_json))
@@ -47,24 +45,18 @@ def including(*keys)
4745
end
4846

4947
def failure_message
50-
message_with_path("Expected #{actual_json} to include #{@expected_json}")
48+
message_with_path("Expected #{@actual_json} to include #{@expected_json}")
5149
end
5250
alias :failure_message_for_should :failure_message
5351

5452
def failure_message_when_negated
55-
message_with_path("Expected #{actual_json} to exclude #{@expected_json}")
53+
message_with_path("Expected #{@actual_json} to not include #{@expected_json}")
5654
end
5755
alias :failure_message_for_should_not :failure_message_when_negated
5856

5957
def description
6058
message_with_path("include JSON")
6159
end
62-
63-
private
64-
65-
def actual_json=(json)
66-
@actual_json = json
67-
end
6860
end
6961
end
7062
end

spec/json_spec/matchers/include_json_spec.rb

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -72,19 +72,15 @@
7272
end
7373

7474
it "provides a useful failure message for should" do
75-
actual = %({"ids": [1,2,3]})
76-
expected = %({"ids": [4,5,6]})
77-
matcher = include_json(expected)
78-
matcher.matches?(actual)
79-
matcher.failure_message_for_should.should == "Expected #{actual} to include #{expected}"
75+
matcher = include_json(%([4,5,6]))
76+
matcher.matches?(%([1,2,3]))
77+
matcher.failure_message_for_should.should == "Expected [1,2,3] to include [4,5,6]"
8078
end
8179

8280
it "provides a useful failure message for should not" do
83-
actual = %({"ids": [1,2,3]})
84-
expected = actual
85-
matcher = include_json(expected)
86-
matcher.matches?(actual)
87-
matcher.failure_message_for_should_not.should == "Expected #{actual} to exclude #{expected}"
81+
matcher = include_json(%(3))
82+
matcher.matches?(%([1,2,3]))
83+
matcher.failure_message_for_should_not.should == "Expected [1,2,3] to not include 3"
8884
end
8985

9086
it "raises an error when not given expected JSON" do

0 commit comments

Comments
 (0)