workable_json_assertions 0.0.1 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|