rspec-graphql_matchers 0.7.1 → 1.0.0.pre.0.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 +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
|
+

|
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.
|