rspec_jsonapi_serializer 1.2.0 → 1.2.1

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: de385c644fa13cd583e2c85c16bf015e883e616acd9a1c2f97ad4715e1280fbb
4
- data.tar.gz: be5bb549771e9a1fdad1eebeccf6681fedb5fb1d146458a0ed5f64b6fed0c1f8
3
+ metadata.gz: fc87e1c0dd34c16432247cfbb0050bf67e1666b557f49a60b2400cbf84e62d40
4
+ data.tar.gz: 7cb83bb3fb733102671a0fe860dfd12a2e8d2070e0613879cf22502462d40254
5
5
  SHA512:
6
- metadata.gz: be7897f9eeb88466697814a55c599ea43102bb10d30ebfe8e2913196c478ef5e28e5f7136de9ab84c36adf092dba15761f7561146496382e9b38a662bb9b431c
7
- data.tar.gz: 6e67c25b2d7e37da12976f1c4973ff3579a82f707057162e32a68a2a997d626679b3705a15a937c0d51c0e3eeeba7a065bcd84f3967b149041fef0aa777fc28e
6
+ metadata.gz: 9e22aa5740094b7d307b8ea1a738546d1fde3bcbe8f28043e66d6211bf85cb457cc2d36a0d819c1f1f507f6c6980f1a699b5ff55d11d2b88d08c3478c4252b9a
7
+ data.tar.gz: bacc318b8c1d7756c9109113b116a2d710d966efa9578b2dc61e07ab67056d9300d1a0138b69d5e415186c49160813247e2a9a7083385c3af4836011fd6cdaba
@@ -33,16 +33,32 @@ module RSpecJSONAPISerializer
33
33
  self
34
34
  end
35
35
 
36
- def main_failure_message
37
- [expected_message, actual_message].compact.join(", ")
36
+ def description
37
+ description = "#{association_message} #{expected}"
38
+
39
+ [description, submatchers.map(&:description)].flatten.join(' ')
40
+ end
41
+
42
+ def failure_message
43
+ "Expected #{expectation}"
44
+ end
45
+
46
+ def failure_message_when_negated
47
+ "Did not expect #{expectation}"
38
48
  end
39
49
 
40
50
  private
41
51
 
42
52
  attr_reader :relationship_matcher, :relationship_type
43
53
 
44
- def expected_message
45
- "expected #{serializer_name} to #{association_message} #{expected}"
54
+ def expectation
55
+ expectation = "#{serializer_name} to #{association_message} #{expected}"
56
+
57
+ submatchers_expectations = failing_submatchers.map do |submatcher|
58
+ "(#{submatcher.expectation})"
59
+ end.compact.join(", ")
60
+
61
+ [expectation, submatchers_expectations].reject(&:nil?).reject(&:empty?).join(" ")
46
62
  end
47
63
 
48
64
  def relationship_matches?
@@ -54,7 +70,7 @@ module RSpecJSONAPISerializer
54
70
  end
55
71
 
56
72
  def association_message
57
- relationship_matcher.to_s.split('_')
73
+ relationship_matcher.to_s.split("_").join(" ")
58
74
  end
59
75
 
60
76
  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 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)
@@ -21,8 +21,16 @@ module RSpecJSONAPISerializer
21
21
  association_matcher.serializer(value)
22
22
  end
23
23
 
24
- def main_failure_message
25
- association_matcher.main_failure_message
24
+ def description
25
+ association_matcher.description
26
+ end
27
+
28
+ def failure_message
29
+ association_matcher.failure_message
30
+ end
31
+
32
+ def failure_message_when_negated
33
+ association_matcher.failure_message_when_negated
26
34
  end
27
35
 
28
36
  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
@@ -21,8 +21,16 @@ module RSpecJSONAPISerializer
21
21
  association_matcher.serializer(value)
22
22
  end
23
23
 
24
- def main_failure_message
25
- association_matcher.main_failure_message
24
+ def description
25
+ association_matcher.description
26
+ end
27
+
28
+ def failure_message
29
+ association_matcher.failure_message
30
+ end
31
+
32
+ def failure_message_when_negated
33
+ association_matcher.failure_message_when_negated
26
34
  end
27
35
 
28
36
  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
@@ -21,8 +21,16 @@ module RSpecJSONAPISerializer
21
21
  association_matcher.serializer(value)
22
22
  end
23
23
 
24
- def main_failure_message
25
- association_matcher.main_failure_message
24
+ def description
25
+ association_matcher.description
26
+ end
27
+
28
+ def failure_message
29
+ association_matcher.failure_message
30
+ end
31
+
32
+ def failure_message_when_negated
33
+ association_matcher.failure_message_when_negated
26
34
  end
27
35
 
28
36
  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.2.0"
4
+ VERSION = "1.2.1"
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.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mateus Cruz
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-27 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
@@ -72,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
72
  - !ruby/object:Gem::Version
73
73
  version: '0'
74
74
  requirements: []
75
- rubygems_version: 3.2.16
75
+ rubygems_version: 3.3.7
76
76
  signing_key:
77
77
  specification_version: 4
78
78
  summary: RSpec matchers for jsonapi-serializer.