rspec_jsonapi_serializer 1.3.0 → 1.3.2

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: a01005a800b62bc1790bef3c0b41d7f39528016cbc3f44255100d60c06f6e3f7
4
- data.tar.gz: 6870f0d87b139a4e50bedabc2af25faae9a9aa10918ee20cf7a31947b57ecb3e
3
+ metadata.gz: 7bef199f60191871be0b7528072eded0d5ecd55e2fb49a2a83680fc4d2a98f2a
4
+ data.tar.gz: 00a01603973af7929de6623549c79971dc16f333f3e10e96ffcc5e6e8f406caf
5
5
  SHA512:
6
- metadata.gz: b3de4e1e8b9253c30fd625113d0633e70a175546c071c413164af646fceb3785bcd1bb0c310e47f0b91162f48d0a7c989807cc32e13754b4376d89ecdebb195d
7
- data.tar.gz: b65538587e22e77df17ef8acaca5694ca9212b7827e9e8ec35dcf4583b860f6ca287396b92bdb01a88aa623f7fabe520c76ff95036c8efb22351f8453e74c771
6
+ metadata.gz: 57a10c5dfa8ca0bb4b572fc72c7a6a38bb652d7c8fd05375544571b304b067a6c46a51f5fdafd449385c2b089fcab4e338982e4b79db19b055f69182a248b084
7
+ data.tar.gz: 77ef7f71d310619a54e1bbcc8714af9cdb9c4d9e3a2599f5624b283a5d78d708c943e3392333b32cb7fcd1792bcf8578ef1bfb9b703a0c07b29419c01c4f0460
@@ -40,28 +40,51 @@ module RSpecJSONAPISerializer
40
40
  self
41
41
  end
42
42
 
43
- def main_failure_message
44
- [expected_message, actual_message].compact.join(", ")
43
+ def description
44
+ description = "#{association_message} #{expected}"
45
+
46
+ [description, submatchers.map(&:description)].flatten.join(' ')
47
+ end
48
+
49
+ def failure_message
50
+ "Expected #{expectation}"
51
+ end
52
+
53
+ def failure_message_when_negated
54
+ "Did not expect #{expectation}"
45
55
  end
46
56
 
47
57
  private
48
58
 
49
59
  attr_reader :relationship_matcher, :relationship_type
50
60
 
51
- def expected_message
52
- "expected #{serializer_name} to #{association_message} #{expected}"
61
+ def expectation
62
+ expectation = "#{serializer_name} to #{association_message} #{expected}"
63
+
64
+ submatchers_expectations = failing_submatchers.map do |submatcher|
65
+ "(#{submatcher.expectation})"
66
+ end.compact.join(", ")
67
+
68
+ [expectation, submatchers_expectations].reject(&:nil?).reject(&:empty?).join(" ")
53
69
  end
54
70
 
55
71
  def relationship_matches?
56
- actual.present? && actual.relationship_type == relationship_type
72
+ actual.present? && actual_relationship_type == relationship_type &&
73
+ actual_rendered?
57
74
  end
58
75
 
59
- def actual_message
60
- actual ? "got :#{actual.relationship_type} instead" : nil
76
+ def association_message
77
+ relationship_matcher.to_s.split("_").join(" ")
61
78
  end
62
79
 
63
- def association_message
64
- relationship_matcher.to_s.split('_')
80
+ def actual_rendered?
81
+ relationships = serializable_hash.dig(:data, :relationships)
82
+
83
+ relationships.key?(expected) || relationships.key?(expected.to_s)
84
+ end
85
+
86
+ def actual_relationship_type
87
+ actual.relationship_type
65
88
  end
66
89
 
67
90
  def actual
@@ -9,7 +9,7 @@ module RSpecJSONAPISerializer
9
9
  def initialize(value, relationship_target)
10
10
  super(value)
11
11
 
12
- @relationship_target = relationship_target
12
+ @relationship_target = relationship_target
13
13
  end
14
14
 
15
15
  def matches?(serializer_instance)
@@ -18,18 +18,18 @@ module RSpecJSONAPISerializer
18
18
  actual == expected
19
19
  end
20
20
 
21
- def main_failure_message
22
- [expected_message, actual_message].compact.join(", ")
21
+ def description
22
+ "with id method name #{expected}"
23
+ end
24
+
25
+ def expectation
26
+ [ "with id method name #{expected}", actual_message ].compact.join(", ")
23
27
  end
24
28
 
25
29
  private
26
30
 
27
31
  attr_reader :relationship_target
28
32
 
29
- def expected_message
30
- "expected #{serializer_name} to use #{expected} as id_method_name for #{relationship_target}"
31
- end
32
-
33
33
  def actual_message
34
34
  actual ? "got #{actual} instead" : nil
35
35
  end
@@ -18,18 +18,18 @@ module RSpecJSONAPISerializer
18
18
  actual == expected
19
19
  end
20
20
 
21
- def main_failure_message
22
- [expected_message, actual_message].compact.join(", ")
21
+ def description
22
+ "with object method name #{expected}"
23
+ end
24
+
25
+ def expectation
26
+ [ "with object method name #{expected}", actual_message ].compact.join(", ")
23
27
  end
24
28
 
25
29
  private
26
30
 
27
31
  attr_reader :relationship_target
28
32
 
29
- def expected_message
30
- "expected #{serializer_name} to use #{expected} as object_method_name for #{relationship_target}"
31
- end
32
-
33
33
  def actual_message
34
34
  actual ? "got #{actual} instead" : nil
35
35
  end
@@ -18,18 +18,18 @@ module RSpecJSONAPISerializer
18
18
  actual == expected
19
19
  end
20
20
 
21
- def main_failure_message
22
- [expected_message, actual_message].compact.join(", ")
21
+ def description
22
+ "with serializer #{expected}"
23
+ end
24
+
25
+ def expectation
26
+ [ "with serializer #{expected}", actual_message ].compact.join(", ")
23
27
  end
24
28
 
25
29
  private
26
30
 
27
31
  attr_reader :relationship_target
28
32
 
29
- def expected_message
30
- "expected #{serializer_name} to use #{expected} as serializer for #{relationship_target}"
31
- end
32
-
33
33
  def actual_message
34
34
  actual ? "got #{actual} instead" : nil
35
35
  end
@@ -13,27 +13,17 @@ module RSpecJSONAPISerializer
13
13
  end
14
14
 
15
15
  def failure_message
16
- ([main_failure_message] + submatcher_failure_messages).compact.join("\n")
16
+ raise NotImplementedError
17
17
  end
18
18
 
19
19
  def failure_message_when_negated
20
- ([main_failure_message_when_negated] + submatcher_failure_messages_when_negated)
21
- .compact
22
- .join("\n")
20
+ raise NotImplementedError
23
21
  end
24
22
 
25
23
  protected
26
24
 
27
25
  attr_reader :expected, :serializer_instance, :submatchers
28
26
 
29
- def main_failure_message
30
- raise NotImplementedError
31
- end
32
-
33
- def main_failure_message_when_negated
34
- raise NotImplementedError
35
- end
36
-
37
27
  def add_submatcher(submatcher)
38
28
  submatchers << submatcher
39
29
  end
@@ -50,16 +40,6 @@ module RSpecJSONAPISerializer
50
40
  serializer_instance.class.name
51
41
  end
52
42
 
53
- private
54
-
55
- def submatcher_failure_messages
56
- failing_submatchers.map(&:failure_message)
57
- end
58
-
59
- def submatcher_failure_messages_when_negated
60
- failing_submatchers.map(&:failure_message_when_negated)
61
- end
62
-
63
43
  def failing_submatchers
64
44
  @failing_submatchers ||= submatchers.select do |submatcher|
65
45
  !submatcher.matches?(serializer_instance)
@@ -25,8 +25,16 @@ module RSpecJSONAPISerializer
25
25
  association_matcher.serializer(value)
26
26
  end
27
27
 
28
- def main_failure_message
29
- association_matcher.main_failure_message
28
+ def description
29
+ association_matcher.description
30
+ end
31
+
32
+ def failure_message
33
+ association_matcher.failure_message
34
+ end
35
+
36
+ def failure_message_when_negated
37
+ association_matcher.failure_message_when_negated
30
38
  end
31
39
 
32
40
  private
@@ -19,17 +19,35 @@ module RSpecJSONAPISerializer
19
19
  end
20
20
 
21
21
  def as_nil
22
- add_submatcher HaveAttributeMatchers::AsMatcher.new(expected, nil)
22
+ as(nil)
23
+ end
23
24
 
24
- self
25
+ def description
26
+ description = "have attribute #{expected}"
27
+
28
+ [description, submatchers.map(&:description)].flatten.join(' ')
29
+ end
30
+
31
+ def failure_message
32
+ "Expected #{expectation}."
25
33
  end
26
34
 
27
- def main_failure_message
28
- "expected #{serializer_name} to have attribute #{expected}." unless has_attribute?
35
+ def failure_message_when_negated
36
+ "Did not expect #{expectation}."
29
37
  end
30
38
 
31
39
  private
32
40
 
41
+ def expectation
42
+ expectation = "#{serializer_name} to have attribute #{expected}"
43
+
44
+ submatchers_expectations = failing_submatchers.map do |submatcher|
45
+ "(#{submatcher.expectation})"
46
+ end.compact.join(", ")
47
+
48
+ [expectation, submatchers_expectations].reject(&:nil?).reject(&:empty?).join(" ")
49
+ end
50
+
33
51
  def attributes
34
52
  @attributes ||= serializer_instance.class.try(:attributes_to_serialize) || {}
35
53
  end
@@ -18,20 +18,30 @@ module RSpecJSONAPISerializer
18
18
  actual == expected
19
19
  end
20
20
 
21
- def failure_message
22
- [expected_message, actual_message].compact.join(", ")
21
+ def description
22
+ "as #{expected_to_string}"
23
+ end
24
+
25
+ def expectation
26
+ [ "as #{expected_to_string}", actual_message ].compact.join(", ")
23
27
  end
24
28
 
25
29
  private
26
30
 
27
31
  attr_reader :attribute
28
32
 
29
- def expected_message
30
- "expected #{serializer_instance.class.name} to serialize #{attribute} as #{expected}"
33
+ def expected_to_string
34
+ value_to_string(expected)
31
35
  end
32
36
 
33
37
  def actual_message
34
- "got #{actual.nil? ? 'nil' : actual} instead" if attributes.has_key?(attribute)
38
+ "got #{value_to_string(actual)} instead" if attributes.has_key?(attribute)
39
+ end
40
+
41
+ def value_to_string(value)
42
+ return 'nil' if value.nil?
43
+
44
+ value.to_s
35
45
  end
36
46
 
37
47
  def actual
@@ -11,7 +11,7 @@ module RSpecJSONAPISerializer
11
11
  actual == expected
12
12
  end
13
13
 
14
- def main_failure_message
14
+ def failure_message
15
15
  "expected that #{serializer_name} to have id :#{expected}, got :#{actual} instead"
16
16
  end
17
17
 
@@ -19,17 +19,35 @@ module RSpecJSONAPISerializer
19
19
  end
20
20
 
21
21
  def as_nil
22
- add_submatcher HaveLinkMatchers::AsMatcher.new(expected, nil)
22
+ as(nil)
23
+ end
23
24
 
24
- self
25
+ def description
26
+ description = "have link #{expected}"
27
+
28
+ [description, submatchers.map(&:description)].flatten.join(' ')
29
+ end
30
+
31
+ def failure_message
32
+ "Expected #{expectation}."
25
33
  end
26
34
 
27
- def main_failure_message
28
- "expected #{serializer_name} to have link #{expected}." unless has_link?
35
+ def failure_message_when_negated
36
+ "Did not expect #{expectation}."
29
37
  end
30
38
 
31
39
  private
32
40
 
41
+ def expectation
42
+ expectation = "#{serializer_name} to have link #{expected}"
43
+
44
+ submatchers_expectations = failing_submatchers.map do |submatcher|
45
+ "(#{submatcher.expectation})"
46
+ end.compact.join(", ")
47
+
48
+ [expectation, submatchers_expectations].reject(&:nil?).reject(&:empty?).join(" ")
49
+ end
50
+
33
51
  def has_link?
34
52
  links.has_key?(expected)
35
53
  end
@@ -18,20 +18,30 @@ module RSpecJSONAPISerializer
18
18
  actual == expected
19
19
  end
20
20
 
21
- def failure_message
22
- [expected_message, actual_message].compact.join(", ")
21
+ def description
22
+ "as #{expected_to_string}"
23
+ end
24
+
25
+ def expectation
26
+ [ "as #{expected_to_string}", actual_message ].compact.join(", ")
23
27
  end
24
28
 
25
29
  private
26
30
 
27
31
  attr_reader :link
28
32
 
29
- def expected_message
30
- "expected #{serializer_instance.class.name} to serialize link #{link} as #{expected}"
33
+ def expected_to_string
34
+ value_to_string(expected)
31
35
  end
32
36
 
33
37
  def actual_message
34
- "got #{actual.nil? ? 'nil' : actual} instead" if links.has_key?(link)
38
+ "got #{value_to_string(actual)} instead" if links.has_key?(link)
39
+ end
40
+
41
+ def value_to_string(value)
42
+ return 'nil' if value.nil?
43
+
44
+ value.to_s
35
45
  end
36
46
 
37
47
  def actual
@@ -25,8 +25,16 @@ module RSpecJSONAPISerializer
25
25
  association_matcher.serializer(value)
26
26
  end
27
27
 
28
- def main_failure_message
29
- association_matcher.main_failure_message
28
+ def description
29
+ association_matcher.description
30
+ end
31
+
32
+ def failure_message
33
+ association_matcher.failure_message
34
+ end
35
+
36
+ def failure_message_when_negated
37
+ association_matcher.failure_message_when_negated
30
38
  end
31
39
 
32
40
  private
@@ -19,17 +19,35 @@ module RSpecJSONAPISerializer
19
19
  end
20
20
 
21
21
  def as_nil
22
- add_submatcher HaveMetaMatchers::AsMatcher.new(expected, nil)
22
+ as(nil)
23
+ end
23
24
 
24
- self
25
+ def description
26
+ description = "serialize meta #{expected}"
27
+
28
+ [description, submatchers.map(&:description)].flatten.join(' ')
29
+ end
30
+
31
+ def failure_message
32
+ "Expected #{expectation}."
25
33
  end
26
34
 
27
- def main_failure_message
28
- "expected #{serializer_name} to serialize meta #{expected}." unless has_meta?
35
+ def failure_message_when_negated
36
+ "Did not expect #{expectation}."
29
37
  end
30
38
 
31
39
  private
32
40
 
41
+ def expectation
42
+ expectation = "#{serializer_name} to serialize meta #{expected}"
43
+
44
+ submatchers_expectations = failing_submatchers.map do |submatcher|
45
+ "(#{submatcher.expectation})"
46
+ end.compact.join(", ")
47
+
48
+ [expectation, submatchers_expectations].reject(&:nil?).reject(&:empty?).join(" ")
49
+ end
50
+
33
51
  def metas
34
52
  @metas ||= serializable_hash.dig(:data, :meta) || {}
35
53
  end
@@ -18,22 +18,33 @@ module RSpecJSONAPISerializer
18
18
  actual == expected
19
19
  end
20
20
 
21
- def failure_message
22
- [expected_message, actual_message].compact.join(", ")
21
+ def description
22
+ "as #{expected_to_string}"
23
+ end
24
+
25
+ def expectation
26
+ [ "as #{expected_to_string}", actual_message ].compact.join(", ")
23
27
  end
24
28
 
25
29
  private
26
30
 
27
31
  attr_reader :meta
28
32
 
29
- def expected_message
30
- "expected #{serializer_instance.class.name} to serialize meta #{meta} as #{expected}"
33
+ def expected_to_string
34
+ value_to_string(expected)
31
35
  end
32
36
 
33
37
  def actual_message
34
38
  "got #{actual.nil? ? 'nil' : actual} instead" if metas.has_key?(meta)
35
39
  end
36
40
 
41
+ def value_to_string(value)
42
+ return 'nil' if value.nil?
43
+
44
+ value.to_s
45
+ end
46
+
47
+
37
48
  def actual
38
49
  metas[meta]
39
50
  end
@@ -25,8 +25,16 @@ module RSpecJSONAPISerializer
25
25
  association_matcher.serializer(value)
26
26
  end
27
27
 
28
- def main_failure_message
29
- association_matcher.main_failure_message
28
+ def description
29
+ association_matcher.description
30
+ end
31
+
32
+ def failure_message
33
+ association_matcher.failure_message
34
+ end
35
+
36
+ def failure_message_when_negated
37
+ association_matcher.failure_message_when_negated
30
38
  end
31
39
 
32
40
  private
@@ -11,7 +11,7 @@ module RSpecJSONAPISerializer
11
11
  actual == expected
12
12
  end
13
13
 
14
- def main_failure_message
14
+ def failure_message
15
15
  "expected that #{serializer_name} to have type :#{expected}, got :#{actual} instead"
16
16
  end
17
17
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RSpecJSONAPISerializer
4
- VERSION = "1.3.0"
4
+ VERSION = "1.3.2"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec_jsonapi_serializer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mateus Cruz
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-05-20 00:00:00.000000000 Z
11
+ date: 2023-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jsonapi-serializer