rspec-rabl 1.1.0 → 1.1.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
  SHA1:
3
- metadata.gz: 031ec2eaee71bfd8fb8143fe99668fe40dac2ea2
4
- data.tar.gz: 74c53ebd89efbcb43ae92b1c2df888f4781641d9
3
+ metadata.gz: 53940a4a41092ab090cda50e3b4aa9c7c5e34b60
4
+ data.tar.gz: 4e50171150a0e9819439e807f8ef3361131b5512
5
5
  SHA512:
6
- metadata.gz: 8cfccc0d17522afe45fdfbefa4eaa3e6961a47283a8cc70f52ee42386b2c683ed92e579ab9ec6c7bf4131e03d4ba95c12526d5488a4da7f3e4f2cecf3397cf28
7
- data.tar.gz: e08a943077e9ac9e718e5ceec0bbfc5ad2f87cb0fbea0c32996beca31433e6c1e901f7adede70bc0d4d2083cd57188f5b91f939dab7f8f11faec39e8a381c7bc
6
+ metadata.gz: 51e74dad39d51f02879c2f4a6cecc438b630971596009f4cee8fc901ff445c01f457595b1b2f7309a842c29318a9f4788c6306be4392f69f650fab355fd009e3
7
+ data.tar.gz: f5322992ad11e2bd1d567698f9e8d50bea8c5af592698a07b1319a4087502f0586db780600bf24f9829402f80b9b1151bcd7253aec05f784b74477cae761aea3
data/.travis.yml CHANGED
@@ -4,12 +4,10 @@ rvm:
4
4
  - 2.0
5
5
  - 2.1
6
6
  - 2.2
7
- - jruby
8
7
  - jruby-1.7
9
- - jruby-9.0.3.0
10
- - jruby-head
8
+ - jruby-9.0.4.0
11
9
  before_install:
12
10
  - gem update --system
13
- - gem install bundler
11
+ - gem install bundler -v 1.10.6
14
12
  sudo: false
15
13
  cache: bundler
@@ -16,7 +16,7 @@ module RSpec
16
16
 
17
17
  def matches?(subject)
18
18
  @subject = subject
19
- attribute_rendered? && rendered_value == expected_value
19
+ attribute_rendered? && (!expected_value_set || rendered_value == expected_value)
20
20
  end
21
21
 
22
22
  def with(model_attribute)
@@ -25,12 +25,13 @@ module RSpec
25
25
  end
26
26
 
27
27
  def with_value(expected_value)
28
+ @expected_value_set = true
28
29
  @expected_value = expected_value
29
30
  self
30
31
  end
31
32
 
32
33
  private
33
- attr_reader :rendered_attribute, :subject, :opts
34
+ attr_reader :rendered_attribute, :subject, :opts, :expected_value_set
34
35
 
35
36
  def attribute_path
36
37
  @attribute_path ||= begin
@@ -45,8 +46,10 @@ module RSpec
45
46
  @model_attribute ||= rendered_attribute
46
47
  end
47
48
 
49
+ # The expected value may be set to nil or false. Retrieving the value from the rendered object
50
+ # will then fail if the attribute is calculated from a node
48
51
  def expected_value
49
- @expected_value ||= get_attribute_from_rendered_object
52
+ @expected_value ||= @expected_value_set ? @expected_value : get_attribute_from_rendered_object
50
53
  end
51
54
 
52
55
  def rendered_value
@@ -1,5 +1,5 @@
1
1
  module RSpec
2
2
  module Rabl
3
- VERSION = "1.1.0"
3
+ VERSION = "1.1.1"
4
4
  end
5
5
  end
@@ -1,3 +1,5 @@
1
1
  object @user => :user
2
2
  attributes :guid => :id
3
3
  node(:team){ 'Gorby Puff' }
4
+ node(:feed_is_deleted) { |user| user.is_deleted }
5
+ node(:i_am_nil) { |user| user.nil_value }
@@ -14,6 +14,8 @@ describe "Customer Matchers" do
14
14
  rabl_data(:root => 'user'){ user }
15
15
  it{ expect(subject).to render_attribute(:id).with(:guid) }
16
16
  it{ expect(subject).to render_attribute(:team).with_value('Gorby Puff') }
17
+ it{ expect(subject).to render_attribute(:feed_is_deleted).with_value(false) }
18
+ it{ expect(subject).to render_attribute(:i_am_nil).with_value(nil) }
17
19
  end
18
20
 
19
21
  describe "index.rabl" do
@@ -6,11 +6,12 @@ describe "Error Messages" do
6
6
  example = it{ expect(subject).to render_attribute(:guid).with_value("Imma derp derp") }
7
7
  end
8
8
  group.run
9
- lines = RSpec::Core::Notifications::FailedExampleNotification.new(example).message_lines
9
+ lines = RSpec::Core::Notifications::FailedExampleNotification.new(example).message_lines.join("\n")
10
10
 
11
- expect(lines[0]).to include("with_value(\"Imma derp derp\")")
12
- expect(lines[1]).to include(" expected \"Imma derp derp\" in [\"guid\"]")
13
- expect(lines[2]).to include(" got nil")
11
+ expect(lines).to include("with_value(")
12
+ expect(lines).to include("Imma derp derp")
13
+ expect(lines).to include(" expected \"Imma derp derp\" in [\"guid\"]")
14
+ expect(lines).to include(" got nil")
14
15
  end
15
16
 
16
17
  it "renders a helpful error message for root and object_root" do
@@ -21,11 +22,12 @@ describe "Error Messages" do
21
22
  example = it{ expect(subject).to render_attribute(:guid).with_value("Imma derp derp") }
22
23
  end
23
24
  group.run
24
- lines = RSpec::Core::Notifications::FailedExampleNotification.new(example).message_lines
25
+ lines = RSpec::Core::Notifications::FailedExampleNotification.new(example).message_lines.join("\n")
25
26
 
26
- expect(lines[0]).to include("with_value(\"Imma derp derp\")")
27
- expect(lines[1]).to include(" expected \"Imma derp derp\" in [\"user\"][\"guid\"]")
28
- expect(lines[2]).to include(" got \"abc\"")
27
+ expect(lines).to include("with_value(")
28
+ expect(lines).to include("Imma derp derp")
29
+ expect(lines).to include(" expected \"Imma derp derp\" in [\"user\"][\"guid\"]")
30
+ expect(lines).to include(" got \"abc\"")
29
31
  end
30
32
 
31
33
  it "renders a helpful error message for root and object_root" do
@@ -36,10 +38,11 @@ describe "Error Messages" do
36
38
  example = it{ expect(subject).to render_attribute(:guid).with_value("Imma derp derp") }
37
39
  end
38
40
  group.run
39
- lines = RSpec::Core::Notifications::FailedExampleNotification.new(example).message_lines
41
+ lines = RSpec::Core::Notifications::FailedExampleNotification.new(example).message_lines.join("\n")
40
42
 
41
- expect(lines[0]).to include("with_value(\"Imma derp derp\")")
42
- expect(lines[1]).to include(" expected \"Imma derp derp\" in [\"users\"][\"user\"][\"guid\"]")
43
- expect(lines[2]).to include(" got \"abc\"")
43
+ expect(lines).to include("with_value(")
44
+ expect(lines).to include("Imma derp derp")
45
+ expect(lines).to include(" expected \"Imma derp derp\" in [\"users\"][\"user\"][\"guid\"]")
46
+ expect(lines).to include(" got \"abc\"")
44
47
  end
45
48
  end
@@ -5,5 +5,7 @@ shared_context "user_context" do
5
5
  last_name: 'bluth',
6
6
  email: 'gob@bluth.com',
7
7
  password: 'very secret',
8
+ is_deleted: false,
9
+ nil_value: nil,
8
10
  )}
9
11
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-rabl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Ries
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-29 00:00:00.000000000 Z
11
+ date: 2016-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -136,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
136
  version: '0'
137
137
  requirements: []
138
138
  rubyforge_project:
139
- rubygems_version: 2.4.8
139
+ rubygems_version: 2.5.1
140
140
  signing_key:
141
141
  specification_version: 4
142
142
  summary: Provides a more declarative form of view testing for users of rabl