workable_json_assertions 0.0.1 → 0.1.1
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 +4 -4
- data/README.md +14 -1
- data/lib/workable_json_assertions/assertions.rb +4 -0
- data/lib/workable_json_assertions/version.rb +1 -1
- data/test/controllers/json_controller_test.rb +5 -0
- data/test/dummy/app/controllers/json_controller.rb +17 -0
- data/test/dummy/log/test.log +22 -0
- data/workable_json_assertions.gemspec +5 -3
- metadata +43 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d57330f446b4c62d4d243707b7f207b3c3d1a632
|
4
|
+
data.tar.gz: 4999fee276b3e4aad72d24ea92329098c9368ae1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e2503918bb13ba8dc7080e30d0c2fab24410163f8a08714723260b904cf115b391e6e36bb5690171795b4b627a999f1920f4208922f4fabf5c1d49671a80fd1b
|
7
|
+
data.tar.gz: 54f562abb8edf23ba5b39c8b779ee708395c7d00aabbabb9a1947b1544586f18f8c46a5e3bb76dbf652cbff1cabdee3c60fd8e3c0a38e7690b37a70b21c8e5a2
|
data/README.md
CHANGED
@@ -6,7 +6,9 @@ This gem adds basic JSON assertions to your controller tests.
|
|
6
6
|
|
7
7
|
Add this line to your application's Gemfile:
|
8
8
|
|
9
|
-
|
9
|
+
group :test do
|
10
|
+
gem 'workable_json_assertions'
|
11
|
+
end
|
10
12
|
|
11
13
|
And then execute:
|
12
14
|
|
@@ -48,6 +50,17 @@ class BasicControllerTest < ActionController::TestCase
|
|
48
50
|
end
|
49
51
|
```
|
50
52
|
|
53
|
+
### assert\_json\_response\_includes
|
54
|
+
```ruby
|
55
|
+
class BasicControllerTest < ActionController::TestCase
|
56
|
+
def test_success
|
57
|
+
get :index # { 'key': 'value', 'created_at': '2016-07-25', 'updated_at': '2016-07-26' }
|
58
|
+
assert_json_response_includes({ key: 'value' })
|
59
|
+
assert_json_response_includes({ created_at: '2016-07-25' })
|
60
|
+
end
|
61
|
+
end
|
62
|
+
```
|
63
|
+
|
51
64
|
## Contributing
|
52
65
|
|
53
66
|
1. Fork it
|
@@ -17,6 +17,10 @@ module WorkableJsonAssertions
|
|
17
17
|
assert_json_equal_except(json, JSON.parse(response.body), blacklist)
|
18
18
|
end
|
19
19
|
|
20
|
+
def assert_json_response_includes(hash)
|
21
|
+
assert_match hash.to_json, response.body
|
22
|
+
end
|
23
|
+
|
20
24
|
private
|
21
25
|
|
22
26
|
def assert_json_equal_except(json1, json2, blacklist = [])
|
@@ -28,6 +28,11 @@ class JsonControllerTest < ActionController::TestCase
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
+
def test_json_response_includes
|
32
|
+
process :another_response
|
33
|
+
assert_json_response_includes({ name: 'John', instrument: 'Guitar' })
|
34
|
+
end
|
35
|
+
|
31
36
|
private
|
32
37
|
|
33
38
|
def expected_response
|
@@ -9,6 +9,10 @@ class JsonController < ActionController::Base
|
|
9
9
|
render json: dummy_object
|
10
10
|
end
|
11
11
|
|
12
|
+
def another_response
|
13
|
+
render json: nested_object
|
14
|
+
end
|
15
|
+
|
12
16
|
private
|
13
17
|
|
14
18
|
def dummy_object
|
@@ -19,4 +23,17 @@ class JsonController < ActionController::Base
|
|
19
23
|
four: 'Ringo'
|
20
24
|
}
|
21
25
|
end
|
26
|
+
|
27
|
+
def nested_object
|
28
|
+
{
|
29
|
+
one: {
|
30
|
+
name: 'John',
|
31
|
+
instrument: 'Guitar'
|
32
|
+
},
|
33
|
+
two: {
|
34
|
+
name: 'Paul',
|
35
|
+
instrument: 'Bass'
|
36
|
+
}
|
37
|
+
}
|
38
|
+
end
|
22
39
|
end
|
data/test/dummy/log/test.log
CHANGED
@@ -23,3 +23,25 @@ JsonControllerTest: test_assert_timestamp_fields
|
|
23
23
|
------------------------------------------------
|
24
24
|
Processing by JsonController#timestamps as HTML
|
25
25
|
Completed 200 OK in 0ms
|
26
|
+
-----------------------------------------------
|
27
|
+
JsonControllerTest: test_json_response_includes
|
28
|
+
-----------------------------------------------
|
29
|
+
Processing by JsonController#another_response as HTML
|
30
|
+
Completed 200 OK in 0ms (Views: 0.3ms)
|
31
|
+
---------------------------------------------------
|
32
|
+
JsonControllerTest: test_json_response_equal_except
|
33
|
+
---------------------------------------------------
|
34
|
+
Processing by JsonController#dummy_response as HTML
|
35
|
+
Completed 200 OK in 0ms (Views: 0.1ms)
|
36
|
+
--------------------------------------------
|
37
|
+
JsonControllerTest: test_json_response_equal
|
38
|
+
--------------------------------------------
|
39
|
+
Processing by JsonController#dummy_response as HTML
|
40
|
+
Completed 200 OK in 0ms (Views: 0.2ms)
|
41
|
+
--------------------------------------------
|
42
|
+
JsonControllerTest: test_json_response_empty
|
43
|
+
--------------------------------------------
|
44
|
+
Processing by JsonController#empty_response as HTML
|
45
|
+
Completed 200 OK in 0ms
|
46
|
+
Processing by JsonController#dummy_response as HTML
|
47
|
+
Completed 200 OK in 0ms (Views: 0.2ms)
|
@@ -18,8 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.
|
22
|
-
spec.
|
21
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
22
|
+
spec.add_development_dependency 'rake'
|
23
23
|
|
24
|
-
spec.
|
24
|
+
spec.add_dependency "actionpack", ">= 4.2"
|
25
|
+
spec.add_dependency "actionview", ">= 4.2"
|
26
|
+
spec.add_development_dependency "railties", "> 4.2"
|
25
27
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: workable_json_assertions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Angelos Karagkiozidis
|
@@ -9,50 +9,78 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-08-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: bundler
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
21
|
-
type: :
|
20
|
+
version: '1.3'
|
21
|
+
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
27
|
+
version: '1.3'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
29
|
+
name: rake
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - "
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: actionpack
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
33
47
|
- !ruby/object:Gem::Version
|
34
|
-
version: 4.
|
48
|
+
version: '4.2'
|
35
49
|
type: :runtime
|
36
50
|
prerelease: false
|
37
51
|
version_requirements: !ruby/object:Gem::Requirement
|
38
52
|
requirements:
|
39
|
-
- - "
|
53
|
+
- - ">="
|
40
54
|
- !ruby/object:Gem::Version
|
41
|
-
version: 4.
|
55
|
+
version: '4.2'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: actionview
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '4.2'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '4.2'
|
42
70
|
- !ruby/object:Gem::Dependency
|
43
71
|
name: railties
|
44
72
|
requirement: !ruby/object:Gem::Requirement
|
45
73
|
requirements:
|
46
|
-
- - "
|
74
|
+
- - ">"
|
47
75
|
- !ruby/object:Gem::Version
|
48
|
-
version: 4.
|
76
|
+
version: '4.2'
|
49
77
|
type: :development
|
50
78
|
prerelease: false
|
51
79
|
version_requirements: !ruby/object:Gem::Requirement
|
52
80
|
requirements:
|
53
|
-
- - "
|
81
|
+
- - ">"
|
54
82
|
- !ruby/object:Gem::Version
|
55
|
-
version: 4.
|
83
|
+
version: '4.2'
|
56
84
|
description: Add useful JSON assertions to your Rails controller tests.
|
57
85
|
email:
|
58
86
|
- angelkar@gmail.com
|