rspec-graphql_matchers 0.7.1 → 1.0.0.pre.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.rubocop.yml +1 -1
- data/.travis.yml +1 -0
- data/CHANGELOG.md +29 -9
- data/README.md +24 -19
- data/lib/rspec/graphql_matchers/accept_arguments.rb +6 -7
- data/lib/rspec/graphql_matchers/base_matcher.rb +9 -0
- data/lib/rspec/graphql_matchers/be_of_type.rb +5 -9
- data/lib/rspec/graphql_matchers/have_a_field.rb +23 -48
- data/lib/rspec/graphql_matchers/have_a_field_matchers/of_type.rb +11 -0
- data/lib/rspec/graphql_matchers/have_a_field_matchers/with_hash_key.rb +30 -0
- data/lib/rspec/graphql_matchers/have_a_field_matchers/with_metadata.rb +19 -0
- data/lib/rspec/graphql_matchers/have_a_field_matchers/with_property.rb +19 -0
- data/lib/rspec/graphql_matchers/implement.rb +10 -4
- data/lib/rspec/graphql_matchers/matchers.rb +2 -0
- data/lib/rspec/graphql_matchers/version.rb +1 -1
- data/rspec-graphql_matchers.gemspec +1 -1
- metadata +13 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 2c995f57264270239040010ba138b480e7280b05e1ca75b54dbc4a03426ba42c
|
4
|
+
data.tar.gz: fcbc1410d22f83530270cd24db7cbe81541754a0b8cd58d27265dd7b248cdf3c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 150c4f842ffef148a7063803d09d4c5433f7ff63637e70fb9cafc2ddb3e6d480ccc1662af7f30aaf241791ae6c53e03e24698b8bd4055cf5dc2d47bd273ed10b
|
7
|
+
data.tar.gz: 2779881b25f48f04c8f276c4ce5ea6aee3e376f6058e83ecfa54b9c5e04c7e24c31127cb66c07f5a861b1da2af2fe8e12517fb369d52cb3edeb810e09d924552
|
data/.rubocop.yml
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -8,37 +8,57 @@
|
|
8
8
|
|
9
9
|
### Bug fixes
|
10
10
|
|
11
|
+
## 1.0 (June, 2019)
|
12
|
+
|
13
|
+
### Breaking changes
|
14
|
+
|
15
|
+
- Support to property and hash_key matchers will be dropped on upcoming releases.
|
16
|
+
|
17
|
+
### Deprecations
|
18
|
+
|
19
|
+
- `.with_metadata` and `.with_property` matchers for fields will be removed on the next release.
|
20
|
+
|
21
|
+
### New features
|
22
|
+
|
23
|
+
- Add support for Class-based type definition api (adds support for graphql-ruby v1.8.x). Please note that `.with_metadata` and `.with_property` support has been kept but will only work on fields defined using the legacy api.
|
24
|
+
|
25
|
+
### Bug fixes
|
26
|
+
|
27
|
+
## 0.7.1 (July 27, 2017)
|
28
|
+
|
29
|
+
Changelog fixes.
|
30
|
+
|
11
31
|
## 0.7.0 (July 27, 2017)
|
12
32
|
|
13
33
|
### New features
|
14
34
|
|
15
|
-
|
35
|
+
- (#3, #8) New chainable matchers `with_property`, `with_hash_key` and `with_metadata` (Thanks to @marcgreenstock).
|
16
36
|
|
17
37
|
### Improvements
|
18
38
|
|
19
|
-
|
39
|
+
- Default Raketask runs rubocop specs as well (Thanks to @marcgreenstock).
|
20
40
|
|
21
41
|
## 0.6.0 (July 25, 2017)
|
22
42
|
|
23
43
|
### New features
|
24
44
|
|
25
|
-
|
45
|
+
- (PR #6) New matchers for interfaces: `expect(...).to implement(interface)` (Thanks to @marcgreenstock).
|
26
46
|
|
27
47
|
## 0.5.0 (May 10, 2017)
|
28
48
|
|
29
49
|
### New features
|
30
50
|
|
31
|
-
|
51
|
+
- (PR #4) New matchers for mutations: `have_an_input_field` and `have_a_return_field` (Thanks to @aaronklaassen).
|
32
52
|
|
33
53
|
## 0.4.0 (Feb, 2017)
|
34
54
|
|
35
55
|
### New features
|
36
56
|
|
37
|
-
|
57
|
+
- Improvements on error messages of have_a_field(...).of_type(...)
|
38
58
|
|
39
59
|
### Bug fixes
|
40
60
|
|
41
|
-
|
61
|
+
- Fixed a bug preventing proper type checking when using matchers in the form have_a_field(fname).of_type(types.X). The bug would not happen when providing the type expectation as a string, only when using the GraphQL constants.
|
42
62
|
|
43
63
|
## 0.3.0 (Sep 16, 2016)
|
44
64
|
|
@@ -48,7 +68,7 @@
|
|
48
68
|
|
49
69
|
### New features
|
50
70
|
|
51
|
-
-
|
71
|
+
- New matcher have_field(field_name).of_type(type) for testing types and their fields
|
52
72
|
|
53
73
|
### Bug fixes
|
54
74
|
|
@@ -60,7 +80,7 @@
|
|
60
80
|
|
61
81
|
### New features
|
62
82
|
|
63
|
-
-
|
64
|
-
-
|
83
|
+
- New matcher be_of_type for testing fields
|
84
|
+
- New matcher accept_arguments for testing fields
|
65
85
|
|
66
86
|
### Bug fixes
|
data/README.md
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
![Build Status](https://travis-ci.org/khamusa/rspec-graphql_matchers.svg?branch=master)
|
2
|
+
|
1
3
|
# Rspec::GraphqlMatchers
|
2
4
|
|
3
5
|
Convenient rspec matchers for testing your [graphql-ruby](https://github.com/rmosolgo/graphql-ruby) API/Schema.
|
@@ -11,23 +13,25 @@ gem 'rspec-graphql_matchers'
|
|
11
13
|
## Usage
|
12
14
|
|
13
15
|
The matchers currently supported are:
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
16
|
+
|
17
|
+
- `expect(a_graphql_object).to have_a_field(field_name).that_returns(valid_type)`
|
18
|
+
- `expect(a_graphql_object).to implement(interface_name, ...)`
|
19
|
+
- `expect(a_mutation_type).to have_a_return_field(field_name).returning(valid_type)`
|
20
|
+
- `expect(a_mutation_type).to have_an_input_field(field_name).of_type(valid_type)`
|
21
|
+
- `expect(a_field).to be_of_type(valid_type)`
|
22
|
+
- `expect(an_input).to accept_arguments(hash_of_arg_names_and_valid_types)`
|
23
|
+
- `expect(an_input).to accept_arguments(hash_of_arg_names_and_valid_types)`
|
21
24
|
|
22
25
|
Where a valid type for the expectation is either:
|
23
|
-
- A `GraphQL::ObjectType` object (ex: `types.String`, `!types.Int`, `types[types.Int]`, or your own)
|
24
|
-
- A String representation of a type: `"String!"`, `"Int!"`, `"[String]!"`
|
25
|
-
(note the exclamation mark at the end, as required by the [GraphQL specs](http://graphql.org/).
|
26
26
|
|
27
|
-
|
27
|
+
- A reference to the actual type you expect;
|
28
|
+
- A String representation of a type: `"String!"`, `"Int!"`, `"[String]!"`
|
29
|
+
(note the exclamation mark at the end, as required by the [GraphQL specs](http://graphql.org/).
|
28
30
|
|
29
|
-
|
30
|
-
|
31
|
+
For objects defined with the legacy `#define` api, testing `:property`, `:hash_key` and _metadata_ is also possible by chaining `.with_property`, `.with_hash_key` and `.with_metadata`. For example:
|
32
|
+
|
33
|
+
- `expect(a_graphql_object).to have_a_field(field_name).with_property(property_name).with_metadata(metadata_hash)`
|
34
|
+
- `expect(a_graphql_object).to have_a_field(field_name).with_hash_key(hash_key)`
|
31
35
|
|
32
36
|
## Examples
|
33
37
|
|
@@ -73,6 +77,7 @@ describe PostType do
|
|
73
77
|
it { is_expected.to have_a_field(:id).returning("ID!") }
|
74
78
|
end
|
75
79
|
```
|
80
|
+
|
76
81
|
### 2) Test a specific field type with `be_of_type` matcher:
|
77
82
|
|
78
83
|
```ruby
|
@@ -101,9 +106,9 @@ end
|
|
101
106
|
Keep in mind that when using strings as type expectation you have to use the
|
102
107
|
type name (`Post`) and not the constant name (`PostType`).
|
103
108
|
|
104
|
-
Using your type objects directly
|
105
|
-
|
106
|
-
|
109
|
+
Using your type objects directly is riskier than the string representation, since
|
110
|
+
renaming the graphql name of an object is potentially a breaking change that
|
111
|
+
wouldn't get caught by your test suite.
|
107
112
|
|
108
113
|
You can also use the built-in [graphql-ruby](https://github.com/rmosolgo/graphql-ruby) scalar types:
|
109
114
|
|
@@ -173,14 +178,14 @@ end
|
|
173
178
|
|
174
179
|
## TODO
|
175
180
|
|
176
|
-
|
181
|
+
- New matchers!
|
177
182
|
|
178
183
|
## Contributing
|
179
184
|
|
180
|
-
|
185
|
+
- Send Bug reports, suggestions or any general
|
181
186
|
question through the [Issue tracker](https://github.com/khamusa/rspec-graphql_matchers/issues).
|
182
187
|
Think of another matcher that could be useful? This is the place to ask, or...
|
183
|
-
|
188
|
+
- Pull requests are welcome through the usual procedure: fork the project,
|
184
189
|
commit your changes and open the [PR](https://github.com/khamusa/rspec-graphql_matchers/pulls).
|
185
190
|
|
186
191
|
This project is intended to be a safe, welcoming space for collaboration, and
|
@@ -1,6 +1,8 @@
|
|
1
|
+
require_relative 'base_matcher'
|
2
|
+
require 'pry'
|
1
3
|
module RSpec
|
2
4
|
module GraphqlMatchers
|
3
|
-
class AcceptArguments
|
5
|
+
class AcceptArguments < BaseMatcher
|
4
6
|
attr_reader :actual_field, :expected_args
|
5
7
|
|
6
8
|
def initialize(expected_args)
|
@@ -16,7 +18,7 @@ module RSpec
|
|
16
18
|
end
|
17
19
|
|
18
20
|
def failure_message
|
19
|
-
"expected field '#{
|
21
|
+
"expected field '#{member_name(actual_field)}' to accept arguments "\
|
20
22
|
"#{describe_arguments(expected_args)}"
|
21
23
|
end
|
22
24
|
|
@@ -28,7 +30,8 @@ module RSpec
|
|
28
30
|
|
29
31
|
def matches_argument?(arg_name, arg_type)
|
30
32
|
actual_arg = actual_field.arguments[arg_name.to_s]
|
31
|
-
|
33
|
+
|
34
|
+
actual_arg && types_match?(actual_arg.type, arg_type)
|
32
35
|
end
|
33
36
|
|
34
37
|
def describe_arguments(what_args)
|
@@ -36,10 +39,6 @@ module RSpec
|
|
36
39
|
"#{arg_name}(#{arg_type})"
|
37
40
|
end.join(', ')
|
38
41
|
end
|
39
|
-
|
40
|
-
def field_name(field)
|
41
|
-
field.respond_to?(:name) && field.name || field.inspect
|
42
|
-
end
|
43
42
|
end
|
44
43
|
end
|
45
44
|
end
|
@@ -3,7 +3,16 @@ module RSpec
|
|
3
3
|
class BaseMatcher
|
4
4
|
private
|
5
5
|
|
6
|
+
def member_name(member)
|
7
|
+
member.respond_to?(:graphql_name) && member.graphql_name ||
|
8
|
+
member.respond_to?(:name) && member.name ||
|
9
|
+
member.inspect
|
10
|
+
end
|
11
|
+
|
6
12
|
def types_match?(actual_type, expected_type)
|
13
|
+
actual_type = actual_type.to_graphql if actual_type.respond_to?(:to_graphql)
|
14
|
+
expected_type = expected_type.to_graphql if expected_type.respond_to?(:to_graphql)
|
15
|
+
|
7
16
|
expected_type.nil? || expected_type.to_s == actual_type.to_s
|
8
17
|
end
|
9
18
|
end
|
@@ -1,6 +1,8 @@
|
|
1
|
+
require_relative 'base_matcher'
|
2
|
+
|
1
3
|
module RSpec
|
2
4
|
module GraphqlMatchers
|
3
|
-
class BeOfType
|
5
|
+
class BeOfType < BaseMatcher
|
4
6
|
attr_reader :sample, :expected
|
5
7
|
|
6
8
|
def initialize(expected)
|
@@ -9,23 +11,17 @@ module RSpec
|
|
9
11
|
|
10
12
|
def matches?(actual_sample)
|
11
13
|
@sample = actual_sample
|
12
|
-
sample.type.to_s == @expected.to_s
|
14
|
+
sample.respond_to?(:type) && sample.type.to_s == @expected.to_s
|
13
15
|
end
|
14
16
|
|
15
17
|
def failure_message
|
16
|
-
"expected field '#{
|
18
|
+
"expected field '#{member_name(sample)}' to be of type '#{expected}', " \
|
17
19
|
"but it was '#{sample.type}'"
|
18
20
|
end
|
19
21
|
|
20
22
|
def description
|
21
23
|
"be of type '#{expected}'"
|
22
24
|
end
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
def field_name(field)
|
27
|
-
field.respond_to?(:name) && field.name || field.inspect
|
28
|
-
end
|
29
25
|
end
|
30
26
|
end
|
31
27
|
end
|
@@ -1,4 +1,8 @@
|
|
1
1
|
require_relative 'base_matcher'
|
2
|
+
require_relative './have_a_field_matchers/of_type'
|
3
|
+
require_relative './have_a_field_matchers/with_property'
|
4
|
+
require_relative './have_a_field_matchers/with_metadata'
|
5
|
+
require_relative './have_a_field_matchers/with_hash_key'
|
2
6
|
|
3
7
|
module RSpec
|
4
8
|
module GraphqlMatchers
|
@@ -23,83 +27,54 @@ module RSpec
|
|
23
27
|
@actual_field = field_collection[@expected_field_name]
|
24
28
|
return false if @actual_field.nil?
|
25
29
|
|
26
|
-
@results = @expectations.
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
@results.
|
30
|
+
@results = @expectations.select do |matcher|
|
31
|
+
!matcher.matches?(@actual_field)
|
32
|
+
end
|
33
|
+
|
34
|
+
@results.empty?
|
31
35
|
end
|
32
36
|
|
33
37
|
def that_returns(expected_field_type)
|
34
|
-
@expectations <<
|
38
|
+
@expectations << HaveAFieldMatchers::OfType.new(expected_field_type)
|
35
39
|
self
|
36
40
|
end
|
41
|
+
|
37
42
|
alias returning that_returns
|
38
43
|
alias of_type that_returns
|
39
44
|
|
40
45
|
def with_property(expected_property_name)
|
41
|
-
@expectations <<
|
46
|
+
@expectations << HaveAFieldMatchers::WithProperty.new(expected_property_name)
|
42
47
|
self
|
43
48
|
end
|
44
49
|
|
45
50
|
def with_hash_key(expected_hash_key)
|
46
|
-
@expectations <<
|
51
|
+
@expectations << HaveAFieldMatchers::WithHashKey.new(expected_hash_key)
|
52
|
+
|
47
53
|
self
|
48
54
|
end
|
49
55
|
|
50
56
|
def with_metadata(expected_metadata)
|
51
|
-
@expectations <<
|
57
|
+
@expectations << HaveAFieldMatchers::WithMetadata.new(expected_metadata)
|
52
58
|
self
|
53
59
|
end
|
54
60
|
|
55
61
|
def failure_message
|
56
|
-
"expected #{
|
57
|
-
"
|
62
|
+
base_msg = "expected #{member_name(@graph_object)} " \
|
63
|
+
"to define field `#{@expected_field_name}`" \
|
64
|
+
|
65
|
+
return "#{base_msg} #{descriptions.join(', ')}" if @actual_field
|
66
|
+
|
67
|
+
"#{base_msg} but no field was found with that name"
|
58
68
|
end
|
59
69
|
|
60
70
|
def description
|
61
|
-
["define field `#{@expected_field_name}`"]
|
62
|
-
.concat(descriptions).join(', ')
|
71
|
+
["define field `#{@expected_field_name}`"].concat(descriptions).join(', ')
|
63
72
|
end
|
64
73
|
|
65
74
|
private
|
66
75
|
|
67
76
|
def descriptions
|
68
|
-
@
|
69
|
-
name, expected_value = expectation
|
70
|
-
format(DESCRIPTIONS[name], expected_value)
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
def explanation
|
75
|
-
return 'but no field was found with that name' unless @actual_field
|
76
|
-
@results.each do |result|
|
77
|
-
name, match = result
|
78
|
-
next if match
|
79
|
-
return format('but the %s was `%s`', name, @actual_field.send(name))
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
def expectation_matches?(name, expected_value)
|
84
|
-
ensure_method_exists!(name)
|
85
|
-
if expected_value.is_a?(Hash)
|
86
|
-
@actual_field.send(name) == expected_value
|
87
|
-
else
|
88
|
-
@actual_field.send(name).to_s == expected_value.to_s
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
def ensure_method_exists!(method_name)
|
93
|
-
return if @actual_field.respond_to?(method_name)
|
94
|
-
raise(
|
95
|
-
"The `#{@expected_field_name}` field defined by the GraphQL object " \
|
96
|
-
"does\'t seem valid as it does not respond to ##{method_name}. " \
|
97
|
-
"\n\n\tThe field found was #{@actual_field.inspect}. "
|
98
|
-
)
|
99
|
-
end
|
100
|
-
|
101
|
-
def describe_obj(field)
|
102
|
-
field.respond_to?(:name) && field.name || field.inspect
|
77
|
+
@results.map(&:description)
|
103
78
|
end
|
104
79
|
|
105
80
|
def field_collection
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module RSpec
|
2
|
+
module GraphqlMatchers
|
3
|
+
module HaveAFieldMatchers
|
4
|
+
class WithHashKey
|
5
|
+
def initialize(expected_hash_key)
|
6
|
+
@expected_hash_key = expected_hash_key
|
7
|
+
end
|
8
|
+
|
9
|
+
def description
|
10
|
+
"with hash key `#{@expected_hash_key}`"
|
11
|
+
end
|
12
|
+
|
13
|
+
def matches?(actual_field)
|
14
|
+
get_hash_key(actual_field) == @expected_hash_key.to_sym
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def get_hash_key(actual_field)
|
20
|
+
if actual_field.respond_to?(:hash_key)
|
21
|
+
return actual_field.hash_key.to_sym
|
22
|
+
end
|
23
|
+
|
24
|
+
# Class-based api
|
25
|
+
actual_field.method_sym
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module RSpec
|
2
|
+
module GraphqlMatchers
|
3
|
+
module HaveAFieldMatchers
|
4
|
+
class WithMetadata
|
5
|
+
def initialize(expected_metadata)
|
6
|
+
@expected_metadata = expected_metadata
|
7
|
+
end
|
8
|
+
|
9
|
+
def description
|
10
|
+
"with metadata `#{@expected_metadata}`"
|
11
|
+
end
|
12
|
+
|
13
|
+
def matches?(actual_field)
|
14
|
+
actual_field.metadata == @expected_metadata
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module RSpec
|
2
|
+
module GraphqlMatchers
|
3
|
+
module HaveAFieldMatchers
|
4
|
+
class WithProperty
|
5
|
+
def initialize(expected_property_name)
|
6
|
+
@expected_property_name = expected_property_name
|
7
|
+
end
|
8
|
+
|
9
|
+
def description
|
10
|
+
"resolving with property `#{@expected_property_name}`"
|
11
|
+
end
|
12
|
+
|
13
|
+
def matches?(actual_field)
|
14
|
+
actual_field.property.to_sym == @expected_property_name.to_sym
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -10,9 +10,7 @@ module RSpec
|
|
10
10
|
def matches?(graph_object)
|
11
11
|
@graph_object = graph_object
|
12
12
|
@actual = actual
|
13
|
-
@expected.
|
14
|
-
return false unless @actual.include?(name)
|
15
|
-
end
|
13
|
+
@expected.all? { |name| @actual.include?(name) }
|
16
14
|
end
|
17
15
|
|
18
16
|
def failure_message
|
@@ -35,12 +33,20 @@ module RSpec
|
|
35
33
|
|
36
34
|
def actual
|
37
35
|
if @graph_object.respond_to?(:interfaces)
|
38
|
-
@graph_object.interfaces.map
|
36
|
+
@graph_object.interfaces.map do |interface|
|
37
|
+
interface_name(interface)
|
38
|
+
end
|
39
39
|
else
|
40
40
|
raise "Invalid object #{@graph_object} provided to #{matcher_name} " \
|
41
41
|
'matcher. It does not seem to be a valid GraphQL object type.'
|
42
42
|
end
|
43
43
|
end
|
44
|
+
|
45
|
+
def interface_name(interface)
|
46
|
+
return interface.graphql_name if interface.respond_to?(:graphql_name)
|
47
|
+
|
48
|
+
interface.to_s
|
49
|
+
end
|
44
50
|
end
|
45
51
|
end
|
46
52
|
end
|
@@ -20,10 +20,12 @@ module RSpec
|
|
20
20
|
RSpec::GraphqlMatchers::HaveAField.new(field_name)
|
21
21
|
end
|
22
22
|
alias have_field have_a_field
|
23
|
+
|
23
24
|
def have_an_input_field(field_name)
|
24
25
|
RSpec::GraphqlMatchers::HaveAField.new(field_name, :input_fields)
|
25
26
|
end
|
26
27
|
alias have_input_field have_an_input_field
|
28
|
+
|
27
29
|
def have_a_return_field(field_name)
|
28
30
|
RSpec::GraphqlMatchers::HaveAField.new(field_name, :return_fields)
|
29
31
|
end
|
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
26
26
|
spec.require_paths = ['lib']
|
27
27
|
|
28
|
-
spec.add_runtime_dependency 'graphql', '>=
|
28
|
+
spec.add_runtime_dependency 'graphql', '>= 1.8', '< 1.9'
|
29
29
|
spec.add_development_dependency 'bundler', '~> 1.12'
|
30
30
|
spec.add_development_dependency 'rubocop', '~> 0'
|
31
31
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-graphql_matchers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0.pre.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Brandão
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-06-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: graphql
|
@@ -16,20 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '1.8'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
22
|
+
version: '1.9'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
29
|
+
version: '1.8'
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
32
|
+
version: '1.9'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: bundler
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -112,6 +112,10 @@ files:
|
|
112
112
|
- lib/rspec/graphql_matchers/base_matcher.rb
|
113
113
|
- lib/rspec/graphql_matchers/be_of_type.rb
|
114
114
|
- lib/rspec/graphql_matchers/have_a_field.rb
|
115
|
+
- lib/rspec/graphql_matchers/have_a_field_matchers/of_type.rb
|
116
|
+
- lib/rspec/graphql_matchers/have_a_field_matchers/with_hash_key.rb
|
117
|
+
- lib/rspec/graphql_matchers/have_a_field_matchers/with_metadata.rb
|
118
|
+
- lib/rspec/graphql_matchers/have_a_field_matchers/with_property.rb
|
115
119
|
- lib/rspec/graphql_matchers/implement.rb
|
116
120
|
- lib/rspec/graphql_matchers/matchers.rb
|
117
121
|
- lib/rspec/graphql_matchers/types_helper.rb
|
@@ -132,12 +136,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
132
136
|
version: '0'
|
133
137
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
138
|
requirements:
|
135
|
-
- - "
|
139
|
+
- - ">"
|
136
140
|
- !ruby/object:Gem::Version
|
137
|
-
version:
|
141
|
+
version: 1.3.1
|
138
142
|
requirements: []
|
139
143
|
rubyforge_project:
|
140
|
-
rubygems_version: 2.
|
144
|
+
rubygems_version: 2.7.8
|
141
145
|
signing_key:
|
142
146
|
specification_version: 4
|
143
147
|
summary: Collection of rspec matchers to test your graphQL api schema.
|