json_spec 1.1.4 → 1.1.5

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
  SHA1:
3
- metadata.gz: 1f89c2ff2fad3cd8fc443551ea7d118d7ae865ed
4
- data.tar.gz: 999fffbcd5db02290e7bd36762bee3c7e3e50c69
3
+ metadata.gz: 35a1c0fcfcd1630fe44a795106af21ceef630600
4
+ data.tar.gz: 435c1191fc28f12c184cc15de540096b17712d1c
5
5
  SHA512:
6
- metadata.gz: aa4a0d179b15d62a16e11e16fbabda7dd642e7015903964b17c51846e21273f4904555e641c20ffade46301bc1e5277cd96df2efb2c7e74c38d31e78c39ca245
7
- data.tar.gz: 6b7f34cd9a5b8f326976e6335c64b93f63cd0d0fb0d204e04606013e3e6d1b8fae055f889543ba50ce08fb77cf07373c090f6d9deb0252b5b1c76bedee4fb2f6
6
+ metadata.gz: cc4126f5010185650d7aabdd0d934a026b7d9c2526eda3c6b71404261634fa4e68a5d4c8d62a6148ca3014d0225e6041ef07194aed647fc0bbc2ff187088128f
7
+ data.tar.gz: e0554b32b24c9faef17ca12e2ad49bfccc7c23061428335d990695663d68f42c399b8861cff5caa6a7f758453e375f821a76b2a0138b26eb806c33a173b74c67
@@ -8,8 +8,10 @@ language: ruby
8
8
  matrix:
9
9
  allow_failures:
10
10
  - rvm: ruby-head
11
+ - rvm: "2.0"
11
12
  rvm:
12
- - 1.9.3
13
13
  - "2.0"
14
14
  - "2.1"
15
+ - "2.2"
16
+ - "2.3.4"
15
17
  - ruby-head
@@ -0,0 +1,8 @@
1
+ ## Unreleased (master)
2
+
3
+ - Added Changelog
4
+ - Fix RSpec warnings for uninitialized instance variables on matchers [#78](https://github.com/collectiveidea/json_spec/pull/78)
5
+
6
+ ## Version 1.1.4
7
+
8
+ - Raise error when checking a size of a json ruby value of nil [#82](https://github.com/collectiveidea/json_spec/pull/82)
data/Rakefile CHANGED
@@ -2,7 +2,9 @@ require "bundler/gem_tasks"
2
2
  require "rspec/core/rake_task"
3
3
  require "cucumber/rake/task"
4
4
 
5
- RSpec::Core::RakeTask.new(:spec)
5
+ RSpec::Core::RakeTask.new(:spec) do |task|
6
+ task.rspec_opts = "--warnings"
7
+ end
6
8
 
7
9
  Cucumber::Rake::Task.new(:cucumber) do |task|
8
10
  task.cucumber_opts = "--tags ~@fail"
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |gem|
4
4
  gem.name = "json_spec"
5
- gem.version = "1.1.4"
5
+ gem.version = "1.1.5"
6
6
 
7
7
  gem.authors = ["Steve Richert"]
8
8
  gem.email = ["steve.richert@gmail.com"]
@@ -4,6 +4,8 @@ module JsonSpec
4
4
  module Configuration
5
5
  DEFAULT_EXCLUDED_KEYS = %w(id created_at updated_at)
6
6
 
7
+ attr_accessor :directory
8
+
7
9
  def configure(&block)
8
10
  instance_eval(&block)
9
11
  end
@@ -20,13 +22,6 @@ module JsonSpec
20
22
  self.excluded_keys = keys
21
23
  end
22
24
 
23
- def directory
24
- @directory
25
- end
26
-
27
- def directory=(directory)
28
- @directory = directory
29
- end
30
25
 
31
26
  def reset
32
27
  instance_variables.each { |ivar| remove_instance_variable(ivar) }
@@ -13,6 +13,7 @@ module JsonSpec
13
13
 
14
14
  def initialize(expected_json = nil)
15
15
  @expected_json = expected_json
16
+ @path = nil
16
17
  end
17
18
 
18
19
  def matches?(actual_json)
@@ -6,6 +6,7 @@ module JsonSpec
6
6
 
7
7
  def initialize(size)
8
8
  @expected = size
9
+ @path = nil
9
10
  end
10
11
 
11
12
  def matches?(json)
@@ -6,6 +6,7 @@ module JsonSpec
6
6
 
7
7
  def initialize(type)
8
8
  @classes = type_to_classes(type)
9
+ @path = nil
9
10
  end
10
11
 
11
12
  def matches?(json)
@@ -7,6 +7,7 @@ module JsonSpec
7
7
 
8
8
  def initialize(expected_json = nil)
9
9
  @expected_json = expected_json
10
+ @path = nil
10
11
  end
11
12
 
12
13
  def matches?(actual_json)
@@ -2,52 +2,52 @@ require "spec_helper"
2
2
 
3
3
  describe JsonSpec::Configuration do
4
4
  it "excludes id and timestamps by default" do
5
- JsonSpec.excluded_keys.should == ["id", "created_at", "updated_at"]
5
+ JsonSpec.excluded_keys.should eq ["id", "created_at", "updated_at"]
6
6
  end
7
7
 
8
8
  it "excludes custom keys" do
9
9
  JsonSpec.exclude_keys("token")
10
- JsonSpec.excluded_keys.should == ["token"]
10
+ JsonSpec.excluded_keys.should eq ["token"]
11
11
  end
12
12
 
13
13
  it "excludes custom keys via setter" do
14
14
  JsonSpec.excluded_keys = ["token"]
15
- JsonSpec.excluded_keys.should == ["token"]
15
+ JsonSpec.excluded_keys.should eq ["token"]
16
16
  end
17
17
 
18
18
  it "excludes custom keys via block" do
19
19
  JsonSpec.configure { |c| c.exclude_keys("token") }
20
- JsonSpec.excluded_keys.should == ["token"]
20
+ JsonSpec.excluded_keys.should eq ["token"]
21
21
  end
22
22
 
23
23
  it "excludes custom keys via block setter" do
24
24
  JsonSpec.configure { |c| c.excluded_keys = ["token"] }
25
- JsonSpec.excluded_keys.should == ["token"]
25
+ JsonSpec.excluded_keys.should eq ["token"]
26
26
  end
27
27
 
28
28
  it "excludes custom keys via instance-evaluated block" do
29
29
  JsonSpec.configure{ exclude_keys("token") }
30
- JsonSpec.excluded_keys.should == ["token"]
30
+ JsonSpec.excluded_keys.should eq ["token"]
31
31
  end
32
32
 
33
33
  it "ensures its excluded keys are strings" do
34
34
  JsonSpec.exclude_keys(:token)
35
- JsonSpec.excluded_keys.should == ["token"]
35
+ JsonSpec.excluded_keys.should eq ["token"]
36
36
  end
37
37
 
38
38
  it "ensures its excluded keys are unique" do
39
39
  JsonSpec.exclude_keys("token", :token)
40
- JsonSpec.excluded_keys.should == ["token"]
40
+ JsonSpec.excluded_keys.should eq ["token"]
41
41
  end
42
42
 
43
43
  it "resets its excluded keys" do
44
44
  original = JsonSpec.excluded_keys
45
45
 
46
46
  JsonSpec.exclude_keys("token")
47
- JsonSpec.excluded_keys.should_not == original
47
+ JsonSpec.excluded_keys.should_not eq original
48
48
 
49
49
  JsonSpec.reset
50
- JsonSpec.excluded_keys.should == original
50
+ JsonSpec.excluded_keys.should eq original
51
51
  end
52
52
 
53
53
  it "resets its directory" do
@@ -5,11 +5,11 @@ describe JsonSpec::Helpers do
5
5
 
6
6
  context "parse_json" do
7
7
  it "parses JSON documents" do
8
- parse_json(%({"json":["spec"]})).should == {"json" => ["spec"]}
8
+ parse_json(%({"json":["spec"]})).should eq({"json" => ["spec"]})
9
9
  end
10
10
 
11
11
  it "parses JSON values" do
12
- parse_json(%("json_spec")).should == "json_spec"
12
+ parse_json(%("json_spec")).should eq "json_spec"
13
13
  end
14
14
 
15
15
  it "raises a parser error for invalid JSON" do
@@ -18,8 +18,8 @@ describe JsonSpec::Helpers do
18
18
 
19
19
  it "parses at a path if given" do
20
20
  json = %({"json":["spec"]})
21
- parse_json(json, "json").should == ["spec"]
22
- parse_json(json, "json/0").should == "spec"
21
+ parse_json(json, "json").should eq ["spec"]
22
+ parse_json(json, "json/0").should eq "spec"
23
23
  end
24
24
 
25
25
  it "raises an error for a missing path" do
@@ -31,7 +31,7 @@ describe JsonSpec::Helpers do
31
31
 
32
32
  it "parses at a numeric string path" do
33
33
  json = %({"1":"two"})
34
- parse_json(%({"1":"two"}), "1").should == "two"
34
+ parse_json(json, "1").should eq "two"
35
35
  end
36
36
  end
37
37
 
@@ -44,19 +44,19 @@ describe JsonSpec::Helpers do
44
44
  ]
45
45
  }
46
46
  JSON
47
- normalize_json(%({"json":["spec"]})).should == normalized.chomp
47
+ normalize_json(%({"json":["spec"]})).should eq normalized.chomp
48
48
  end
49
49
 
50
50
  it "normalizes at a path" do
51
- normalize_json(%({"json":["spec"]}), "json/0").should == %("spec")
51
+ normalize_json(%({"json":["spec"]}), "json/0").should eq %("spec")
52
52
  end
53
53
 
54
54
  it "accepts a JSON value" do
55
- normalize_json(%("json_spec")).should == %("json_spec")
55
+ normalize_json(%("json_spec")).should eq %("json_spec")
56
56
  end
57
57
 
58
58
  it "normalizes JSON values" do
59
- normalize_json(%(1e+1)).should == %(10.0)
59
+ normalize_json(%(1e+1)).should eq %(10.0)
60
60
  end
61
61
  end
62
62
 
@@ -69,11 +69,11 @@ describe JsonSpec::Helpers do
69
69
  ]
70
70
  }
71
71
  JSON
72
- generate_normalized_json({"json" => ["spec"]}).should == normalized.chomp
72
+ generate_normalized_json({"json" => ["spec"]}).should eq normalized.chomp
73
73
  end
74
74
 
75
75
  it "generates a normalized JSON value" do
76
- generate_normalized_json(nil).should == %(null)
76
+ generate_normalized_json(nil).should eq %(null)
77
77
  end
78
78
  end
79
79
 
@@ -84,12 +84,12 @@ describe JsonSpec::Helpers do
84
84
 
85
85
  it "returns JSON when the file exists" do
86
86
  JsonSpec.directory = files_path
87
- load_json("one.json").should == %({"value":"from_file"})
87
+ load_json("one.json").should eq %({"value":"from_file"})
88
88
  end
89
89
 
90
90
  it "ignores extra slashes" do
91
91
  JsonSpec.directory = "/#{files_path}/"
92
- load_json("one.json").should == %({"value":"from_file"})
92
+ load_json("one.json").should eq %({"value":"from_file"})
93
93
  end
94
94
 
95
95
  it "raises an error when the file doesn't exist" do
@@ -104,8 +104,8 @@ describe JsonSpec::Helpers do
104
104
 
105
105
  it "finds nested files" do
106
106
  JsonSpec.directory = files_path
107
- load_json("project/one.json").should == %({"nested":"inside_folder"})
108
- load_json("project/version/one.json").should == %({"nested":"deeply"})
107
+ load_json("project/one.json").should eq %({"nested":"inside_folder"})
108
+ load_json("project/version/one.json").should eq %({"nested":"deeply"})
109
109
  end
110
110
  end
111
111
  end
@@ -99,7 +99,9 @@ describe JsonSpec::Matchers::BeJsonEql do
99
99
  end
100
100
 
101
101
  it "raises an error when not given expected JSON" do
102
- expect{ %({"id":1,"json":"spec"}).should be_json_eql }.to raise_error
102
+ expect{ %({"id":1,"json":"spec"}).should be_json_eql }.to raise_error do |error|
103
+ error.message.should == "Expected equivalent JSON not provided"
104
+ end
103
105
  end
104
106
 
105
107
  it "matches file contents" do
@@ -24,27 +24,27 @@ describe JsonSpec::Matchers::HaveJsonSize do
24
24
  it "provides a failure message" do
25
25
  matcher = have_json_size(3)
26
26
  matcher.matches?(%([1,2]))
27
- matcher.failure_message.should == "Expected JSON value size to be 3, got 2"
28
- matcher.failure_message_for_should.should == "Expected JSON value size to be 3, got 2" # RSpec 2 interface
27
+ matcher.failure_message.should eq "Expected JSON value size to be 3, got 2"
28
+ matcher.failure_message_for_should.should eq "Expected JSON value size to be 3, got 2" # RSpec 2 interface
29
29
  end
30
30
 
31
31
  it "provides a failure message for negation" do
32
32
  matcher = have_json_size(3)
33
33
  matcher.matches?(%([1,2,3]))
34
- matcher.failure_message_when_negated.should == "Expected JSON value size to not be 3, got 3"
35
- matcher.failure_message_for_should_not.should == "Expected JSON value size to not be 3, got 3" # RSpec 2 interface
34
+ matcher.failure_message_when_negated.should eq "Expected JSON value size to not be 3, got 3"
35
+ matcher.failure_message_for_should_not.should eq "Expected JSON value size to not be 3, got 3" # RSpec 2 interface
36
36
  end
37
37
 
38
38
  it "provides a description message" do
39
39
  matcher = have_json_size(1)
40
40
  matcher.matches?(%({"id":1,"json":["spec"]}))
41
- matcher.description.should == %(have JSON size "1")
41
+ matcher.description.should eq %(have JSON size "1")
42
42
  end
43
43
 
44
44
  it "provides a description message with path" do
45
45
  matcher = have_json_size(1).at_path("json")
46
46
  matcher.matches?(%({"id":1,"json":["spec"]}))
47
- matcher.description.should == %(have JSON size "1" at path "json")
47
+ matcher.description.should eq %(have JSON size "1" at path "json")
48
48
  end
49
49
 
50
50
  it "provides an error when parsing nil" do
@@ -49,27 +49,27 @@ describe JsonSpec::Matchers::HaveJsonType do
49
49
  it "provides a failure message" do
50
50
  matcher = have_json_type(Numeric)
51
51
  matcher.matches?(%("foo"))
52
- matcher.failure_message.should == "Expected JSON value type to be Numeric, got String"
53
- matcher.failure_message_for_should.should == "Expected JSON value type to be Numeric, got String" # RSpec 2 interface
52
+ matcher.failure_message.should eq "Expected JSON value type to be Numeric, got String"
53
+ matcher.failure_message_for_should.should eq "Expected JSON value type to be Numeric, got String" # RSpec 2 interface
54
54
  end
55
55
 
56
56
  it "provides a failure message for negation" do
57
57
  matcher = have_json_type(Numeric)
58
58
  matcher.matches?(%(10))
59
- matcher.failure_message_when_negated.should == "Expected JSON value type to not be Numeric, got Fixnum"
60
- matcher.failure_message_for_should_not.should == "Expected JSON value type to not be Numeric, got Fixnum" # RSpec 2 interface
59
+ matcher.failure_message_when_negated.should eq "Expected JSON value type to not be Numeric, got Fixnum"
60
+ matcher.failure_message_for_should_not.should eq "Expected JSON value type to not be Numeric, got Fixnum" # RSpec 2 interface
61
61
  end
62
62
 
63
63
  it "provides a description message" do
64
64
  matcher = have_json_type(String)
65
65
  matcher.matches?(%({"id":1,"json":"spec"}))
66
- matcher.description.should == %(have JSON type "String")
66
+ matcher.description.should eq %(have JSON type "String")
67
67
  end
68
68
 
69
69
  it "provides a description message with path" do
70
70
  matcher = have_json_type(String).at_path("json")
71
71
  matcher.matches?(%({"id":1,"json":"spec"}))
72
- matcher.description.should == %(have JSON type "String" at path "json")
72
+ matcher.description.should eq %(have JSON type "String" at path "json")
73
73
  end
74
74
 
75
75
  context "somewhat uselessly" do
@@ -84,7 +84,9 @@ describe JsonSpec::Matchers::IncludeJson do
84
84
  end
85
85
 
86
86
  it "raises an error when not given expected JSON" do
87
- expect{ %([{"id":1,"two":3}]).should include_json }.to raise_error
87
+ expect{ %([{"id":1,"two":3}]).should include_json }.to raise_error do |error|
88
+ error.message.should == "Expected included JSON not provided"
89
+ end
88
90
  end
89
91
 
90
92
  it "matches file contents" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Richert
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-10 00:00:00.000000000 Z
11
+ date: 2017-05-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json
@@ -81,6 +81,7 @@ extra_rdoc_files: []
81
81
  files:
82
82
  - ".gitignore"
83
83
  - ".travis.yml"
84
+ - CHANGELOG.md
84
85
  - Gemfile
85
86
  - LICENSE.txt
86
87
  - README.md
@@ -147,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
148
  version: '0'
148
149
  requirements: []
149
150
  rubyforge_project:
150
- rubygems_version: 2.2.2
151
+ rubygems_version: 2.6.11
151
152
  signing_key:
152
153
  specification_version: 4
153
154
  summary: Easily handle JSON in RSpec and Cucumber