graphql 1.9.10 → 1.9.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/graphql/analysis/ast/query_depth.rb +4 -17
- data/lib/graphql/analysis/query_depth.rb +4 -17
- data/lib/graphql/coercion_error.rb +8 -0
- data/lib/graphql/execution/execute.rb +1 -1
- data/lib/graphql/execution/interpreter/runtime.rb +3 -3
- data/lib/graphql/schema/field.rb +43 -18
- data/lib/graphql/static_validation/literal_validator.rb +1 -1
- data/lib/graphql/static_validation/rules/argument_literals_are_compatible.rb +8 -3
- data/lib/graphql/static_validation/rules/argument_literals_are_compatible_error.rb +3 -2
- data/lib/graphql/version.rb +1 -1
- data/spec/graphql/analysis/ast/max_query_depth_spec.rb +28 -0
- data/spec/graphql/execution_error_spec.rb +18 -14
- data/spec/graphql/introspection/directive_type_spec.rb +6 -1
- data/spec/graphql/introspection/introspection_query_spec.rb +7 -2
- data/spec/graphql/introspection/schema_type_spec.rb +1 -0
- data/spec/graphql/schema/field_extension_spec.rb +23 -1
- data/spec/graphql/schema/field_spec.rb +18 -0
- data/spec/graphql/schema/list_spec.rb +28 -1
- data/spec/graphql/static_validation/rules/argument_literals_are_compatible_spec.rb +53 -0
- data/spec/support/dummy/schema.rb +8 -0
- metadata +3 -49
- data/spec/dummy/Gemfile.lock +0 -157
- data/spec/dummy/log/test.log +0 -199
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4w/4wzXRZrAkwKdgYaSE0pid5eB-fer8vSfSku_NPg4rMA.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7I/7IHVBiJT06QSpgLpLoJIxboQ0B-D_tMTxsvoezBTV3Q.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8w/8wY_SKagj8wHuwGNAAf6JnQ8joMbC6cEYpHrTAI8Urc.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/AK/AKzz1u6bGb4auXcrObA_g5LL-oV0ejNGa448AgAi_WQ.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ET/ETW4uxvaYpruL8y6_ZptUH82ZowMaHIqvg5WexBFdEM.cache +0 -3
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/F1/F1TWpjjyA56k9Z90n5B3xRn7DUdGjX73QCkYC6k07JQ.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/F8/F8MUNRzORGFgr329fNM0xLaoWCXdv3BIalT7dsvLfjs.cache +0 -2
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/KB/KB07ZaKNC5uXJ7TjLi-WqnY6g7dq8wWp_8N3HNjBNxg.cache +0 -2
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ms/MsKSimH_UCB-H1tLvDABDHuvGciuoW6kVqQWDrXU5FQ.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Mt/Mtci-Kim50aPOmeClD4AIicKn1d1WJ0n454IjSd94sk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/QH/QHt3Tc1Y6M66Oo_pDuMyWrQNs4Pp3SMeZR5K1wJj2Ts.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/XU/XU4k1OXnfMils5SrirorPvDSyDSqiOWLZNtmAH1HH8k.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ZI/ZIof7mZxWWCnraIFOCuV6a8QRWzKJXJnx2Xd7C0ZyX0.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/cG/cGc_puuPS5pZKgUcy1Y_i1L6jl5UtsiIrMH59rTzR6c.cache +0 -3
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/df/dfro_B6bx3KP1Go-7jEOqqZ2j4hVRseXIc3es9PKQno.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jO/jO1DfbqnG0mTULsjJJANc3fefrG2zt7DIMmcptMT628.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pE/pE7gO6pQ-z187Swb4hT554wmqsq-cNzgPWLrCz-LQQQ.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/r9/r9iU1l58a6rxkZSW5RSC52_tD-_UQuHxoMVnkfJ7Mhs.cache +0 -1
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xi/xitPPFfPIyDMpaznV0sBBcw8eSCV8PJcLLWin78sCgE.cache +0 -0
- data/spec/dummy/tmp/screenshots/failures_test_it_handles_subscriptions.png +0 -0
- data/spec/integration/tmp/app/graphql/types/page_type.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d8cb680ebbc1268d4d67fe4782283318a0202406e81c2b910b189a54ae1222a5
|
4
|
+
data.tar.gz: ece10b278186bf9718956435ca66d48f3abeffb892194bf2854666423e61b420
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 652a7ac07da14940edc5e99384db05d697e405c4e7c281ff2d96110b87a6f431f0682015e278a46d3e8ef6087db7296d1cf71256a58c3aaf65c9216ff5498d90
|
7
|
+
data.tar.gz: 0b486ca1ad7357a73c95c5ba23e2141053b981532b6820e67cd27fff827da6b79667f747c1b85511334945ff720486a2cd18696f4f5408eecb8b4ac0d97b77dd
|
@@ -29,35 +29,22 @@ module GraphQL
|
|
29
29
|
def initialize(query)
|
30
30
|
@max_depth = 0
|
31
31
|
@current_depth = 0
|
32
|
-
@skip_depth = 0
|
33
32
|
super
|
34
33
|
end
|
35
34
|
|
36
35
|
def on_enter_field(node, parent, visitor)
|
37
36
|
return if visitor.skipping? || visitor.visiting_fragment_definition?
|
38
37
|
|
39
|
-
|
40
|
-
if GraphQL::Schema::DYNAMIC_FIELDS.include?(visitor.field_definition.name)
|
41
|
-
@skip_depth += 1
|
42
|
-
elsif @skip_depth > 0
|
43
|
-
# we're inside an introspection query or skipped node
|
44
|
-
else
|
45
|
-
@current_depth += 1
|
46
|
-
end
|
38
|
+
@current_depth += 1
|
47
39
|
end
|
48
40
|
|
49
41
|
def on_leave_field(node, parent, visitor)
|
50
42
|
return if visitor.skipping? || visitor.visiting_fragment_definition?
|
51
43
|
|
52
|
-
|
53
|
-
|
54
|
-
@skip_depth -= 1
|
55
|
-
else
|
56
|
-
if @max_depth < @current_depth
|
57
|
-
@max_depth = @current_depth
|
58
|
-
end
|
59
|
-
@current_depth -= 1
|
44
|
+
if @max_depth < @current_depth
|
45
|
+
@max_depth = @current_depth
|
60
46
|
end
|
47
|
+
@current_depth -= 1
|
61
48
|
end
|
62
49
|
|
63
50
|
def on_enter_fragment_spread(node, _, visitor)
|
@@ -17,32 +17,19 @@ module GraphQL
|
|
17
17
|
{
|
18
18
|
max_depth: 0,
|
19
19
|
current_depth: 0,
|
20
|
-
skip_depth: 0,
|
21
20
|
query: query,
|
22
21
|
}
|
23
22
|
end
|
24
23
|
|
25
24
|
def call(memo, visit_type, irep_node)
|
26
25
|
if irep_node.ast_node.is_a?(GraphQL::Language::Nodes::Field)
|
27
|
-
# Don't validate introspection fields or skipped nodes
|
28
|
-
not_validated_node = GraphQL::Schema::DYNAMIC_FIELDS.include?(irep_node.definition_name)
|
29
26
|
if visit_type == :enter
|
30
|
-
|
31
|
-
memo[:skip_depth] += 1
|
32
|
-
elsif memo[:skip_depth] > 0
|
33
|
-
# we're inside an introspection query or skipped node
|
34
|
-
else
|
35
|
-
memo[:current_depth] += 1
|
36
|
-
end
|
27
|
+
memo[:current_depth] += 1
|
37
28
|
else
|
38
|
-
if
|
39
|
-
memo[:
|
40
|
-
else
|
41
|
-
if memo[:max_depth] < memo[:current_depth]
|
42
|
-
memo[:max_depth] = memo[:current_depth]
|
43
|
-
end
|
44
|
-
memo[:current_depth] -= 1
|
29
|
+
if memo[:max_depth] < memo[:current_depth]
|
30
|
+
memo[:max_depth] = memo[:current_depth]
|
45
31
|
end
|
32
|
+
memo[:current_depth] -= 1
|
46
33
|
end
|
47
34
|
end
|
48
35
|
memo
|
@@ -1,5 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
module GraphQL
|
3
3
|
class CoercionError < GraphQL::Error
|
4
|
+
# @return [Hash] Optional custom data for error objects which will be added
|
5
|
+
# under the `extensions` key.
|
6
|
+
attr_accessor :extensions
|
7
|
+
|
8
|
+
def initialize(message, extensions: nil)
|
9
|
+
@extensions = extensions
|
10
|
+
super(message)
|
11
|
+
end
|
4
12
|
end
|
5
13
|
end
|
@@ -197,7 +197,7 @@ module GraphQL
|
|
197
197
|
raw_value.path = field_ctx.path
|
198
198
|
query.context.errors.push(raw_value)
|
199
199
|
when Array
|
200
|
-
if
|
200
|
+
if field_type.non_null?
|
201
201
|
# List type errors are handled above, this is for the case of fields returning an array of errors
|
202
202
|
list_errors = raw_value.each_with_index.select { |value, _| value.is_a?(GraphQL::ExecutionError) }
|
203
203
|
if list_errors.any?
|
@@ -243,9 +243,9 @@ module GraphQL
|
|
243
243
|
write_execution_errors_in_response(path, [value])
|
244
244
|
HALT
|
245
245
|
elsif value.is_a?(Array) && value.any? && value.all? { |v| v.is_a?(GraphQL::ExecutionError) }
|
246
|
-
value.
|
247
|
-
|
248
|
-
|
246
|
+
value.each_with_index do |error, index|
|
247
|
+
error.ast_node ||= ast_node
|
248
|
+
error.path ||= path + (field.type.list? ? [index] : [])
|
249
249
|
end
|
250
250
|
write_execution_errors_in_response(path, value)
|
251
251
|
HALT
|
data/lib/graphql/schema/field.rb
CHANGED
@@ -46,9 +46,6 @@ module GraphQL
|
|
46
46
|
|
47
47
|
alias :mutation :resolver
|
48
48
|
|
49
|
-
# @return [Array<Symbol>]
|
50
|
-
attr_reader :extras
|
51
|
-
|
52
49
|
# @return [Boolean] Apply tracing to this field? (Default: skip scalars, this is the override value)
|
53
50
|
attr_reader :trace
|
54
51
|
|
@@ -159,7 +156,7 @@ module GraphQL
|
|
159
156
|
# @param complexity [Numeric] When provided, set the complexity for this field
|
160
157
|
# @param scope [Boolean] If true, the return type's `.scope_items` method will be called on the return value
|
161
158
|
# @param subscription_scope [Symbol, String] A key in `context` which will be used to scope subscription payloads
|
162
|
-
# @param extensions [Array<Class
|
159
|
+
# @param extensions [Array<Class, Hash<Class => Object>>] Named extensions to apply to this field (see also {#extension})
|
163
160
|
# @param trace [Boolean] If true, a {GraphQL::Tracing} tracer will measure this scalar field
|
164
161
|
def initialize(type: nil, name: nil, owner: nil, null: nil, field: nil, function: nil, description: nil, deprecation_reason: nil, method: nil, hash_key: nil, resolver_method: nil, resolve: nil, connection: nil, max_page_size: nil, scope: nil, introspection: false, camelize: true, trace: nil, complexity: 1, extras: [], extensions: [], resolver_class: nil, subscription_scope: nil, relay_node_field: false, relay_nodes_field: false, arguments: {}, &definition_block)
|
165
162
|
if name.nil?
|
@@ -273,38 +270,66 @@ module GraphQL
|
|
273
270
|
|
274
271
|
# Read extension instances from this field,
|
275
272
|
# or add new classes/options to be initialized on this field.
|
273
|
+
# Extensions are executed in the order they are added.
|
274
|
+
#
|
275
|
+
# @example adding an extension
|
276
|
+
# extensions([MyExtensionClass])
|
276
277
|
#
|
277
|
-
# @
|
278
|
+
# @example adding multiple extensions
|
279
|
+
# extensions([MyExtensionClass, AnotherExtensionClass])
|
280
|
+
#
|
281
|
+
# @example adding an extension with options
|
282
|
+
# extensions([MyExtensionClass, { AnotherExtensionClass => { filter: true } }])
|
283
|
+
#
|
284
|
+
# @param extensions [Array<Class, Hash<Class => Object>>] Add extensions to this field. For hash elements, only the first key/value is used.
|
278
285
|
# @return [Array<GraphQL::Schema::FieldExtension>] extensions to apply to this field
|
279
286
|
def extensions(new_extensions = nil)
|
280
287
|
if new_extensions.nil?
|
281
288
|
# Read the value
|
282
289
|
@extensions
|
283
290
|
else
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
# Initialize each class and stash the instance
|
295
|
-
extensions_with_options.each do |extension_class, options|
|
296
|
-
@extensions << extension_class.new(field: self, options: options)
|
291
|
+
new_extensions.each do |extension|
|
292
|
+
if extension.is_a?(Hash)
|
293
|
+
extension = extension.to_a[0]
|
294
|
+
extension_class, options = *extension
|
295
|
+
@extensions << extension_class.new(field: self, options: options)
|
296
|
+
else
|
297
|
+
extension_class = extension
|
298
|
+
@extensions << extension_class.new(field: self, options: nil)
|
299
|
+
end
|
297
300
|
end
|
298
301
|
end
|
299
302
|
end
|
300
303
|
|
301
304
|
# Add `extension` to this field, initialized with `options` if provided.
|
305
|
+
#
|
306
|
+
# @example adding an extension
|
307
|
+
# extension(MyExtensionClass)
|
308
|
+
#
|
309
|
+
# @example adding an extension with options
|
310
|
+
# extension(MyExtensionClass, filter: true)
|
311
|
+
#
|
302
312
|
# @param extension [Class] subclass of {Schema::Fieldextension}
|
303
313
|
# @param options [Object] if provided, given as `options:` when initializing `extension`.
|
304
314
|
def extension(extension, options = nil)
|
305
315
|
extensions([{extension => options}])
|
306
316
|
end
|
307
317
|
|
318
|
+
# Read extras (as symbols) from this field,
|
319
|
+
# or add new extras to be opted into by this field's resolver.
|
320
|
+
#
|
321
|
+
# @param new_extras [Array<Symbol>] Add extras to this field
|
322
|
+
# @return [Array<Symbol>]
|
323
|
+
def extras(new_extras = nil)
|
324
|
+
if new_extras.nil?
|
325
|
+
# Read the value
|
326
|
+
@extras
|
327
|
+
else
|
328
|
+
# Append to the set of extras on this field
|
329
|
+
@extras.concat(new_extras)
|
330
|
+
end
|
331
|
+
end
|
332
|
+
|
308
333
|
def complexity(new_complexity)
|
309
334
|
case new_complexity
|
310
335
|
when Proc
|
@@ -11,7 +11,7 @@ module GraphQL
|
|
11
11
|
def validate(ast_value, type)
|
12
12
|
if type.nil?
|
13
13
|
# this means we're an undefined argument, see #present_input_field_values_are_valid
|
14
|
-
|
14
|
+
maybe_raise_if_invalid(ast_value) do
|
15
15
|
false
|
16
16
|
end
|
17
17
|
elsif ast_value.is_a?(GraphQL::Language::Nodes::NullValue)
|
@@ -37,14 +37,19 @@ module GraphQL
|
|
37
37
|
# short-circuit here so we avoid bubbling this up to whatever input_object / array contains us
|
38
38
|
return super
|
39
39
|
end
|
40
|
-
error = GraphQL::StaticValidation::ArgumentLiteralsAreCompatibleError.new(err.message, nodes: parent, type: "CoercionError")
|
40
|
+
error = GraphQL::StaticValidation::ArgumentLiteralsAreCompatibleError.new(err.message, nodes: parent, type: "CoercionError", extensions: err.extensions)
|
41
41
|
rescue GraphQL::LiteralValidationError => err
|
42
42
|
# check to see if the ast node that caused the error to be raised is
|
43
43
|
# the same as the node we were checking here.
|
44
|
-
|
44
|
+
arg_type = arg_defn.type
|
45
|
+
if arg_type.kind.non_null?
|
46
|
+
arg_type = arg_type.of_type
|
47
|
+
end
|
48
|
+
|
49
|
+
matched = if arg_type.kind.list?
|
45
50
|
# for a list we claim an error if the node is contained in our list
|
46
51
|
Array(node.value).include?(err.ast_value)
|
47
|
-
elsif
|
52
|
+
elsif arg_type.kind.input_object? && node.value.is_a?(GraphQL::Language::Nodes::InputObject)
|
48
53
|
# for an input object we check the arguments
|
49
54
|
node.value.arguments.include?(err.ast_value)
|
50
55
|
else
|
@@ -5,10 +5,11 @@ module GraphQL
|
|
5
5
|
attr_reader :type_name
|
6
6
|
attr_reader :argument_name
|
7
7
|
|
8
|
-
def initialize(message, path: nil, nodes: [], type:, argument: nil)
|
8
|
+
def initialize(message, path: nil, nodes: [], type:, argument: nil, extensions: nil)
|
9
9
|
super(message, path: path, nodes: nodes)
|
10
10
|
@type_name = type
|
11
11
|
@argument_name = argument
|
12
|
+
@extensions = extensions
|
12
13
|
end
|
13
14
|
|
14
15
|
# A hash representation of this Message
|
@@ -17,7 +18,7 @@ module GraphQL
|
|
17
18
|
"code" => code,
|
18
19
|
"typeName" => type_name
|
19
20
|
}.tap { |h| h["argumentName"] = argument_name unless argument_name.nil? }
|
20
|
-
|
21
|
+
extensions.merge!(@extensions) unless @extensions.nil?
|
21
22
|
super.merge({
|
22
23
|
"extensions" => extensions
|
23
24
|
})
|
data/lib/graphql/version.rb
CHANGED
@@ -47,6 +47,34 @@ describe GraphQL::Analysis::AST::MaxQueryDepth do
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
+
describe "When the query includes introspective fields" do
|
51
|
+
let(:query_string) { "
|
52
|
+
query allSchemaTypes {
|
53
|
+
__schema {
|
54
|
+
types {
|
55
|
+
fields {
|
56
|
+
type {
|
57
|
+
fields {
|
58
|
+
type {
|
59
|
+
fields {
|
60
|
+
type {
|
61
|
+
name
|
62
|
+
}
|
63
|
+
}
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}
|
67
|
+
}
|
68
|
+
}
|
69
|
+
}
|
70
|
+
}
|
71
|
+
"}
|
72
|
+
|
73
|
+
it "adds an error message for a too-deep query" do
|
74
|
+
assert_equal "Query has depth of 9, which exceeds max depth of 5", result.message
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
50
78
|
describe "When the query is not deeper than max_depth" do
|
51
79
|
before do
|
52
80
|
schema.max_depth(100)
|
@@ -295,19 +295,7 @@ describe GraphQL::ExecutionError do
|
|
295
295
|
|
296
296
|
describe "more than one ExecutionError" do
|
297
297
|
let(:query_string) { %|{ multipleErrorsOnNonNullableField} |}
|
298
|
-
it "the errors are inserted into the errors key and the data is nil even for a NonNullable field
|
299
|
-
|
300
|
-
# I Think the path here is _wrong_, since this is not an array field:
|
301
|
-
# expected_result = {
|
302
|
-
# "data"=>nil,
|
303
|
-
# "errors"=>
|
304
|
-
# [{"message"=>"This is an error message for some error.",
|
305
|
-
# "locations"=>[{"line"=>1, "column"=>3}],
|
306
|
-
# "path"=>["multipleErrorsOnNonNullableField", 0]},
|
307
|
-
# {"message"=>"This is another error message for a different error.",
|
308
|
-
# "locations"=>[{"line"=>1, "column"=>3}],
|
309
|
-
# "path"=>["multipleErrorsOnNonNullableField", 1]}]
|
310
|
-
# }
|
298
|
+
it "the errors are inserted into the errors key and the data is nil even for a NonNullable field" do
|
311
299
|
expected_result = {
|
312
300
|
"data"=>nil,
|
313
301
|
"errors"=>
|
@@ -320,6 +308,22 @@ describe GraphQL::ExecutionError do
|
|
320
308
|
}
|
321
309
|
assert_equal(expected_result, result)
|
322
310
|
end
|
323
|
-
end
|
324
311
|
|
312
|
+
describe "more than one ExecutionError on a field defined to return a list" do
|
313
|
+
let(:query_string) { %|{ multipleErrorsOnNonNullableListField} |}
|
314
|
+
it "the errors are inserted into the errors key and the data is nil even for a NonNullable field" do
|
315
|
+
expected_result = {
|
316
|
+
"data"=>nil,
|
317
|
+
"errors"=>
|
318
|
+
[{"message"=>"The first error message for a field defined to return a list of strings.",
|
319
|
+
"locations"=>[{"line"=>1, "column"=>3}],
|
320
|
+
"path"=>["multipleErrorsOnNonNullableListField", 0]},
|
321
|
+
{"message"=>"The second error message for a field defined to return a list of strings.",
|
322
|
+
"locations"=>[{"line"=>1, "column"=>3}],
|
323
|
+
"path"=>["multipleErrorsOnNonNullableListField", 1]}],
|
324
|
+
}
|
325
|
+
assert_equal(expected_result, result)
|
326
|
+
end
|
327
|
+
end
|
328
|
+
end
|
325
329
|
end
|
@@ -17,7 +17,12 @@ describe GraphQL::Introspection::DirectiveType do
|
|
17
17
|
}
|
18
18
|
}
|
19
19
|
|}
|
20
|
-
|
20
|
+
|
21
|
+
let(:schema) { Class.new(Dummy::Schema) }
|
22
|
+
let(:result) { schema.execute(query_string) }
|
23
|
+
before do
|
24
|
+
schema.max_depth(100)
|
25
|
+
end
|
21
26
|
|
22
27
|
it "shows directive info " do
|
23
28
|
expected = { "data" => {
|
@@ -2,14 +2,19 @@
|
|
2
2
|
require "spec_helper"
|
3
3
|
|
4
4
|
describe "GraphQL::Introspection::INTROSPECTION_QUERY" do
|
5
|
+
let(:schema) { Class.new(Dummy::Schema) }
|
5
6
|
let(:query_string) { GraphQL::Introspection::INTROSPECTION_QUERY }
|
6
|
-
let(:result) {
|
7
|
+
let(:result) { schema.execute(query_string) }
|
8
|
+
|
9
|
+
before do
|
10
|
+
schema.max_depth = 15
|
11
|
+
end
|
7
12
|
|
8
13
|
it "runs" do
|
9
14
|
assert(result["data"])
|
10
15
|
end
|
11
16
|
|
12
|
-
it "
|
17
|
+
it "is limited to the max query depth" do
|
13
18
|
query_type = GraphQL::ObjectType.define do
|
14
19
|
name "DeepQuery"
|
15
20
|
field :foo do
|
@@ -37,6 +37,7 @@ describe GraphQL::Introspection::SchemaType do
|
|
37
37
|
{"name"=>"maybeNull"},
|
38
38
|
{"name"=>"milk"},
|
39
39
|
{"name"=>"multipleErrorsOnNonNullableField"},
|
40
|
+
{"name"=>"multipleErrorsOnNonNullableListField"},
|
40
41
|
{"name"=>"root"},
|
41
42
|
{"name"=>"searchDairy"},
|
42
43
|
{"name"=>"tracingScalar"},
|
@@ -72,6 +72,11 @@ describe GraphQL::Schema::FieldExtension do
|
|
72
72
|
argument :input, Integer, required: true
|
73
73
|
end
|
74
74
|
|
75
|
+
field :tripled_by_option2, Integer, null: false, resolver_method: :pass_thru,
|
76
|
+
extensions: [{ MultiplyByOption => { factor: 3 } }] do
|
77
|
+
argument :input, Integer, required: true
|
78
|
+
end
|
79
|
+
|
75
80
|
field :multiply_input, Integer, null: false, resolver_method: :pass_thru, extensions: [MultiplyByArgument] do
|
76
81
|
argument :input, Integer, required: true
|
77
82
|
end
|
@@ -83,6 +88,11 @@ describe GraphQL::Schema::FieldExtension do
|
|
83
88
|
def pass_thru(input:, **args)
|
84
89
|
input # return it as-is, it will be modified by extensions
|
85
90
|
end
|
91
|
+
|
92
|
+
field :multiple_extensions, Integer, null: false, resolver_method: :pass_thru,
|
93
|
+
extensions: [DoubleFilter, { MultiplyByOption => { factor: 3 } }] do
|
94
|
+
argument :input, Integer, required: true
|
95
|
+
end
|
86
96
|
end
|
87
97
|
|
88
98
|
class Schema < GraphQL::Schema
|
@@ -122,7 +132,13 @@ describe GraphQL::Schema::FieldExtension do
|
|
122
132
|
assert_equal 12, res["data"]["tripledByOption"]
|
123
133
|
end
|
124
134
|
|
125
|
-
it "
|
135
|
+
it "supports extension with options via extensions kwarg" do
|
136
|
+
# The factor of three came from an option
|
137
|
+
res = exec_query("{ tripledByOption2(input: 4) }")
|
138
|
+
assert_equal 12, res["data"]["tripledByOption2"]
|
139
|
+
end
|
140
|
+
|
141
|
+
it "provides an empty hash as default options" do
|
126
142
|
res = exec_query("{ square(input: 4) }")
|
127
143
|
assert_equal 16, res["data"]["square"]
|
128
144
|
res = exec_query("{ cube(input: 4) }")
|
@@ -133,5 +149,11 @@ describe GraphQL::Schema::FieldExtension do
|
|
133
149
|
res = exec_query("{ multiplyInput(input: 3, factor: 5) }")
|
134
150
|
assert_equal 15, res["data"]["multiplyInput"]
|
135
151
|
end
|
152
|
+
|
153
|
+
it "supports multiple extensions via extensions kwarg" do
|
154
|
+
# doubled then multiplied by 3 specified via option
|
155
|
+
res = exec_query("{ multipleExtensions(input: 3) }")
|
156
|
+
assert_equal 18, res["data"]["multipleExtensions"]
|
157
|
+
end
|
136
158
|
end
|
137
159
|
end
|
@@ -129,6 +129,24 @@ describe GraphQL::Schema::Field do
|
|
129
129
|
assert_equal "TRUE", res["data"]["upcaseCheck3"]
|
130
130
|
assert_equal "\"WHY NOT?\"", res["data"]["upcaseCheck4"]
|
131
131
|
end
|
132
|
+
|
133
|
+
it "can be read via #extras" do
|
134
|
+
field = Jazz::Musician.fields["addError"]
|
135
|
+
assert_equal [:execution_errors], field.extras
|
136
|
+
end
|
137
|
+
|
138
|
+
it "can be added by passing an array of symbols to #extras" do
|
139
|
+
object = Class.new(Jazz::BaseObject) do
|
140
|
+
graphql_name "JustAName"
|
141
|
+
|
142
|
+
field :test, String, null: true, extras: [:lookahead]
|
143
|
+
end
|
144
|
+
|
145
|
+
field = object.fields['test']
|
146
|
+
|
147
|
+
field.extras([:ast_node])
|
148
|
+
assert_equal [:lookahead, :ast_node], field.extras
|
149
|
+
end
|
132
150
|
end
|
133
151
|
|
134
152
|
it "is the #owner of its arguments" do
|
@@ -33,7 +33,7 @@ describe GraphQL::Schema::List do
|
|
33
33
|
it "will return true if list types 'of_type' are the same" do
|
34
34
|
new_of_type = Jazz::Musician
|
35
35
|
new_list_type = GraphQL::Schema::List.new(new_of_type)
|
36
|
-
|
36
|
+
|
37
37
|
assert_equal list_type, new_list_type
|
38
38
|
end
|
39
39
|
end
|
@@ -43,4 +43,31 @@ describe GraphQL::Schema::List do
|
|
43
43
|
assert_kind_of GraphQL::ListType, list_type.to_graphql
|
44
44
|
end
|
45
45
|
end
|
46
|
+
|
47
|
+
describe "validation" do
|
48
|
+
class ListEnumValidationSchema < GraphQL::Schema
|
49
|
+
class Item < GraphQL::Schema::Enum
|
50
|
+
value "A"
|
51
|
+
value "B"
|
52
|
+
end
|
53
|
+
|
54
|
+
class Query < GraphQL::Schema::Object
|
55
|
+
field :echo, [Item], null: false do
|
56
|
+
argument :items, [Item], required: true
|
57
|
+
end
|
58
|
+
|
59
|
+
def echo(items:)
|
60
|
+
items
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
query(Query)
|
65
|
+
end
|
66
|
+
|
67
|
+
it "checks non-null lists of enums" do
|
68
|
+
res = ListEnumValidationSchema.execute "{ echo(items: [A, B, \"C\"]) }"
|
69
|
+
expected_error = "Argument 'items' on Field 'echo' has an invalid value. Expected type '[Item!]!'."
|
70
|
+
assert_equal [expected_error], res["errors"].map { |e| e["message"] }
|
71
|
+
end
|
72
|
+
end
|
46
73
|
end
|
@@ -410,4 +410,57 @@ describe GraphQL::StaticValidation::ArgumentLiteralsAreCompatible do
|
|
410
410
|
end
|
411
411
|
end
|
412
412
|
end
|
413
|
+
|
414
|
+
describe "custom error extensions" do
|
415
|
+
let(:schema) {
|
416
|
+
CoerceTestEmailType ||= GraphQL::ScalarType.define do
|
417
|
+
name "Email"
|
418
|
+
description "Email address"
|
419
|
+
|
420
|
+
coerce_input ->(value, ctx) do
|
421
|
+
if URI::MailTo::EMAIL_REGEXP.match(value)
|
422
|
+
value
|
423
|
+
else
|
424
|
+
raise GraphQL::CoercionError.new("Invalid email address", extensions: { "code" => "invalid_email_address" })
|
425
|
+
end
|
426
|
+
end
|
427
|
+
|
428
|
+
coerce_result ->(value, ctx) { value.to_f }
|
429
|
+
end
|
430
|
+
|
431
|
+
CoerceTestEmailQueryType ||= GraphQL::ObjectType.define do
|
432
|
+
name "Query"
|
433
|
+
description "The query root of this schema"
|
434
|
+
|
435
|
+
field :email do
|
436
|
+
type CoerceTestEmailType
|
437
|
+
argument :value, CoerceTestEmailType
|
438
|
+
resolve ->(obj, args, ctx) { args[:value] }
|
439
|
+
end
|
440
|
+
end
|
441
|
+
|
442
|
+
GraphQL::Schema.define do
|
443
|
+
query CoerceTestEmailQueryType
|
444
|
+
end
|
445
|
+
}
|
446
|
+
|
447
|
+
let(:query_string) {%|
|
448
|
+
query {
|
449
|
+
email(value: "a")
|
450
|
+
}
|
451
|
+
|}
|
452
|
+
|
453
|
+
describe "with a shallow coercion" do
|
454
|
+
it "sets error extensions code from a CoercionError if raised" do
|
455
|
+
assert_equal 1, errors.length
|
456
|
+
|
457
|
+
assert_includes errors, {
|
458
|
+
"message"=> "Invalid email address",
|
459
|
+
"locations"=>[{"line"=>3, "column"=>9}],
|
460
|
+
"path"=>["query", "email", "value"],
|
461
|
+
"extensions"=>{"code"=>"invalid_email_address", "typeName"=>"CoercionError"}
|
462
|
+
}
|
463
|
+
end
|
464
|
+
end
|
465
|
+
end
|
413
466
|
end
|
@@ -404,6 +404,14 @@ module Dummy
|
|
404
404
|
]
|
405
405
|
end
|
406
406
|
|
407
|
+
field :multiple_errors_on_non_nullable_list_field, [String], null: false
|
408
|
+
def multiple_errors_on_non_nullable_list_field
|
409
|
+
[
|
410
|
+
GraphQL::ExecutionError.new("The first error message for a field defined to return a list of strings."),
|
411
|
+
GraphQL::ExecutionError.new("The second error message for a field defined to return a list of strings.")
|
412
|
+
]
|
413
|
+
end
|
414
|
+
|
407
415
|
field :execution_error_with_options, Integer, null: true
|
408
416
|
def execution_error_with_options
|
409
417
|
GraphQL::ExecutionError.new("Permission Denied!", options: { "code" => "permission_denied" })
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.9.
|
4
|
+
version: 1.9.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Mosolgo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-08-
|
11
|
+
date: 2019-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: benchmark-ips
|
@@ -704,7 +704,6 @@ files:
|
|
704
704
|
- lib/graphql/version.rb
|
705
705
|
- readme.md
|
706
706
|
- spec/dummy/Gemfile
|
707
|
-
- spec/dummy/Gemfile.lock
|
708
707
|
- spec/dummy/README.md
|
709
708
|
- spec/dummy/Rakefile
|
710
709
|
- spec/dummy/app/assets/config/manifest.js
|
@@ -743,7 +742,6 @@ files:
|
|
743
742
|
- spec/dummy/config/puma.rb
|
744
743
|
- spec/dummy/config/routes.rb
|
745
744
|
- spec/dummy/config/secrets.yml
|
746
|
-
- spec/dummy/log/test.log
|
747
745
|
- spec/dummy/package.json
|
748
746
|
- spec/dummy/public/404.html
|
749
747
|
- spec/dummy/public/422.html
|
@@ -755,26 +753,6 @@ files:
|
|
755
753
|
- spec/dummy/test/application_system_test_case.rb
|
756
754
|
- spec/dummy/test/system/action_cable_subscription_test.rb
|
757
755
|
- spec/dummy/test/test_helper.rb
|
758
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/4w/4wzXRZrAkwKdgYaSE0pid5eB-fer8vSfSku_NPg4rMA.cache
|
759
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/7I/7IHVBiJT06QSpgLpLoJIxboQ0B-D_tMTxsvoezBTV3Q.cache
|
760
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/8w/8wY_SKagj8wHuwGNAAf6JnQ8joMbC6cEYpHrTAI8Urc.cache
|
761
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/AK/AKzz1u6bGb4auXcrObA_g5LL-oV0ejNGa448AgAi_WQ.cache
|
762
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/ET/ETW4uxvaYpruL8y6_ZptUH82ZowMaHIqvg5WexBFdEM.cache
|
763
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/F1/F1TWpjjyA56k9Z90n5B3xRn7DUdGjX73QCkYC6k07JQ.cache
|
764
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/F8/F8MUNRzORGFgr329fNM0xLaoWCXdv3BIalT7dsvLfjs.cache
|
765
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/KB/KB07ZaKNC5uXJ7TjLi-WqnY6g7dq8wWp_8N3HNjBNxg.cache
|
766
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Ms/MsKSimH_UCB-H1tLvDABDHuvGciuoW6kVqQWDrXU5FQ.cache
|
767
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Mt/Mtci-Kim50aPOmeClD4AIicKn1d1WJ0n454IjSd94sk.cache
|
768
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/QH/QHt3Tc1Y6M66Oo_pDuMyWrQNs4Pp3SMeZR5K1wJj2Ts.cache
|
769
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/XU/XU4k1OXnfMils5SrirorPvDSyDSqiOWLZNtmAH1HH8k.cache
|
770
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/ZI/ZIof7mZxWWCnraIFOCuV6a8QRWzKJXJnx2Xd7C0ZyX0.cache
|
771
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/cG/cGc_puuPS5pZKgUcy1Y_i1L6jl5UtsiIrMH59rTzR6c.cache
|
772
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/df/dfro_B6bx3KP1Go-7jEOqqZ2j4hVRseXIc3es9PKQno.cache
|
773
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/jO/jO1DfbqnG0mTULsjJJANc3fefrG2zt7DIMmcptMT628.cache
|
774
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/pE/pE7gO6pQ-z187Swb4hT554wmqsq-cNzgPWLrCz-LQQQ.cache
|
775
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/r9/r9iU1l58a6rxkZSW5RSC52_tD-_UQuHxoMVnkfJ7Mhs.cache
|
776
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/xi/xitPPFfPIyDMpaznV0sBBcw8eSCV8PJcLLWin78sCgE.cache
|
777
|
-
- spec/dummy/tmp/screenshots/failures_test_it_handles_subscriptions.png
|
778
756
|
- spec/fixtures/upgrader/account.original.rb
|
779
757
|
- spec/fixtures/upgrader/account.transformed.rb
|
780
758
|
- spec/fixtures/upgrader/blame_range.original.rb
|
@@ -984,7 +962,6 @@ files:
|
|
984
962
|
- spec/integration/rails/graphql/schema_spec.rb
|
985
963
|
- spec/integration/rails/graphql/tracing/active_support_notifications_tracing_spec.rb
|
986
964
|
- spec/integration/rails/spec_helper.rb
|
987
|
-
- spec/integration/tmp/app/graphql/types/page_type.rb
|
988
965
|
- spec/spec_helper.rb
|
989
966
|
- spec/support/dummy/data.rb
|
990
967
|
- spec/support/dummy/schema.rb
|
@@ -1026,7 +1003,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1026
1003
|
- !ruby/object:Gem::Version
|
1027
1004
|
version: '0'
|
1028
1005
|
requirements: []
|
1029
|
-
rubygems_version: 3.0.
|
1006
|
+
rubygems_version: 3.0.2
|
1030
1007
|
signing_key:
|
1031
1008
|
specification_version: 4
|
1032
1009
|
summary: A GraphQL language and runtime for Ruby
|
@@ -1082,33 +1059,10 @@ test_files:
|
|
1082
1059
|
- spec/dummy/public/robots.txt
|
1083
1060
|
- spec/dummy/package.json
|
1084
1061
|
- spec/dummy/Gemfile
|
1085
|
-
- spec/dummy/log/test.log
|
1086
|
-
- spec/dummy/Gemfile.lock
|
1087
|
-
- spec/dummy/tmp/screenshots/failures_test_it_handles_subscriptions.png
|
1088
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/pE/pE7gO6pQ-z187Swb4hT554wmqsq-cNzgPWLrCz-LQQQ.cache
|
1089
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Ms/MsKSimH_UCB-H1tLvDABDHuvGciuoW6kVqQWDrXU5FQ.cache
|
1090
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Mt/Mtci-Kim50aPOmeClD4AIicKn1d1WJ0n454IjSd94sk.cache
|
1091
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/KB/KB07ZaKNC5uXJ7TjLi-WqnY6g7dq8wWp_8N3HNjBNxg.cache
|
1092
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/df/dfro_B6bx3KP1Go-7jEOqqZ2j4hVRseXIc3es9PKQno.cache
|
1093
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/AK/AKzz1u6bGb4auXcrObA_g5LL-oV0ejNGa448AgAi_WQ.cache
|
1094
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/cG/cGc_puuPS5pZKgUcy1Y_i1L6jl5UtsiIrMH59rTzR6c.cache
|
1095
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/jO/jO1DfbqnG0mTULsjJJANc3fefrG2zt7DIMmcptMT628.cache
|
1096
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/xi/xitPPFfPIyDMpaznV0sBBcw8eSCV8PJcLLWin78sCgE.cache
|
1097
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/r9/r9iU1l58a6rxkZSW5RSC52_tD-_UQuHxoMVnkfJ7Mhs.cache
|
1098
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/XU/XU4k1OXnfMils5SrirorPvDSyDSqiOWLZNtmAH1HH8k.cache
|
1099
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/QH/QHt3Tc1Y6M66Oo_pDuMyWrQNs4Pp3SMeZR5K1wJj2Ts.cache
|
1100
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/4w/4wzXRZrAkwKdgYaSE0pid5eB-fer8vSfSku_NPg4rMA.cache
|
1101
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/ZI/ZIof7mZxWWCnraIFOCuV6a8QRWzKJXJnx2Xd7C0ZyX0.cache
|
1102
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/ET/ETW4uxvaYpruL8y6_ZptUH82ZowMaHIqvg5WexBFdEM.cache
|
1103
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/F1/F1TWpjjyA56k9Z90n5B3xRn7DUdGjX73QCkYC6k07JQ.cache
|
1104
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/F8/F8MUNRzORGFgr329fNM0xLaoWCXdv3BIalT7dsvLfjs.cache
|
1105
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/7I/7IHVBiJT06QSpgLpLoJIxboQ0B-D_tMTxsvoezBTV3Q.cache
|
1106
|
-
- spec/dummy/tmp/cache/assets/sprockets/v3.0/8w/8wY_SKagj8wHuwGNAAf6JnQ8joMbC6cEYpHrTAI8Urc.cache
|
1107
1062
|
- spec/integration/mongoid/spec_helper.rb
|
1108
1063
|
- spec/integration/mongoid/star_trek/schema.rb
|
1109
1064
|
- spec/integration/mongoid/star_trek/data.rb
|
1110
1065
|
- spec/integration/mongoid/graphql/relay/mongo_relation_connection_spec.rb
|
1111
|
-
- spec/integration/tmp/app/graphql/types/page_type.rb
|
1112
1066
|
- spec/integration/rails/spec_helper.rb
|
1113
1067
|
- spec/integration/rails/data.rb
|
1114
1068
|
- spec/integration/rails/graphql/tracing/active_support_notifications_tracing_spec.rb
|
data/spec/dummy/Gemfile.lock
DELETED
@@ -1,157 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: /Users/rmosolgo/code/graphql-ruby
|
3
|
-
specs:
|
4
|
-
graphql (1.9.0.pre2)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: https://rubygems.org/
|
8
|
-
specs:
|
9
|
-
actioncable (5.2.1)
|
10
|
-
actionpack (= 5.2.1)
|
11
|
-
nio4r (~> 2.0)
|
12
|
-
websocket-driver (>= 0.6.1)
|
13
|
-
actionmailer (5.2.1)
|
14
|
-
actionpack (= 5.2.1)
|
15
|
-
actionview (= 5.2.1)
|
16
|
-
activejob (= 5.2.1)
|
17
|
-
mail (~> 2.5, >= 2.5.4)
|
18
|
-
rails-dom-testing (~> 2.0)
|
19
|
-
actionpack (5.2.1)
|
20
|
-
actionview (= 5.2.1)
|
21
|
-
activesupport (= 5.2.1)
|
22
|
-
rack (~> 2.0)
|
23
|
-
rack-test (>= 0.6.3)
|
24
|
-
rails-dom-testing (~> 2.0)
|
25
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
26
|
-
actionview (5.2.1)
|
27
|
-
activesupport (= 5.2.1)
|
28
|
-
builder (~> 3.1)
|
29
|
-
erubi (~> 1.4)
|
30
|
-
rails-dom-testing (~> 2.0)
|
31
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
32
|
-
activejob (5.2.1)
|
33
|
-
activesupport (= 5.2.1)
|
34
|
-
globalid (>= 0.3.6)
|
35
|
-
activemodel (5.2.1)
|
36
|
-
activesupport (= 5.2.1)
|
37
|
-
activerecord (5.2.1)
|
38
|
-
activemodel (= 5.2.1)
|
39
|
-
activesupport (= 5.2.1)
|
40
|
-
arel (>= 9.0)
|
41
|
-
activestorage (5.2.1)
|
42
|
-
actionpack (= 5.2.1)
|
43
|
-
activerecord (= 5.2.1)
|
44
|
-
marcel (~> 0.3.1)
|
45
|
-
activesupport (5.2.1)
|
46
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
47
|
-
i18n (>= 0.7, < 2)
|
48
|
-
minitest (~> 5.1)
|
49
|
-
tzinfo (~> 1.1)
|
50
|
-
addressable (2.5.2)
|
51
|
-
public_suffix (>= 2.0.2, < 4.0)
|
52
|
-
arel (9.0.0)
|
53
|
-
builder (3.2.3)
|
54
|
-
capybara (3.7.2)
|
55
|
-
addressable
|
56
|
-
mini_mime (>= 0.1.3)
|
57
|
-
nokogiri (~> 1.8)
|
58
|
-
rack (>= 1.6.0)
|
59
|
-
rack-test (>= 0.6.3)
|
60
|
-
xpath (~> 3.1)
|
61
|
-
childprocess (0.9.0)
|
62
|
-
ffi (~> 1.0, >= 1.0.11)
|
63
|
-
concurrent-ruby (1.0.5)
|
64
|
-
crass (1.0.4)
|
65
|
-
erubi (1.7.1)
|
66
|
-
ffi (1.9.25)
|
67
|
-
globalid (0.4.1)
|
68
|
-
activesupport (>= 4.2.0)
|
69
|
-
i18n (1.1.0)
|
70
|
-
concurrent-ruby (~> 1.0)
|
71
|
-
listen (3.1.5)
|
72
|
-
rb-fsevent (~> 0.9, >= 0.9.4)
|
73
|
-
rb-inotify (~> 0.9, >= 0.9.7)
|
74
|
-
ruby_dep (~> 1.2)
|
75
|
-
loofah (2.2.2)
|
76
|
-
crass (~> 1.0.2)
|
77
|
-
nokogiri (>= 1.5.9)
|
78
|
-
mail (2.7.0)
|
79
|
-
mini_mime (>= 0.1.1)
|
80
|
-
marcel (0.3.3)
|
81
|
-
mimemagic (~> 0.3.2)
|
82
|
-
method_source (0.9.0)
|
83
|
-
mimemagic (0.3.2)
|
84
|
-
mini_mime (1.0.1)
|
85
|
-
mini_portile2 (2.3.0)
|
86
|
-
minitest (5.11.3)
|
87
|
-
nio4r (2.3.1)
|
88
|
-
nokogiri (1.8.4)
|
89
|
-
mini_portile2 (~> 2.3.0)
|
90
|
-
public_suffix (3.0.3)
|
91
|
-
puma (3.12.0)
|
92
|
-
rack (2.0.5)
|
93
|
-
rack-test (1.1.0)
|
94
|
-
rack (>= 1.0, < 3)
|
95
|
-
rails (5.2.1)
|
96
|
-
actioncable (= 5.2.1)
|
97
|
-
actionmailer (= 5.2.1)
|
98
|
-
actionpack (= 5.2.1)
|
99
|
-
actionview (= 5.2.1)
|
100
|
-
activejob (= 5.2.1)
|
101
|
-
activemodel (= 5.2.1)
|
102
|
-
activerecord (= 5.2.1)
|
103
|
-
activestorage (= 5.2.1)
|
104
|
-
activesupport (= 5.2.1)
|
105
|
-
bundler (>= 1.3.0)
|
106
|
-
railties (= 5.2.1)
|
107
|
-
sprockets-rails (>= 2.0.0)
|
108
|
-
rails-dom-testing (2.0.3)
|
109
|
-
activesupport (>= 4.2.0)
|
110
|
-
nokogiri (>= 1.6)
|
111
|
-
rails-html-sanitizer (1.0.4)
|
112
|
-
loofah (~> 2.2, >= 2.2.2)
|
113
|
-
railties (5.2.1)
|
114
|
-
actionpack (= 5.2.1)
|
115
|
-
activesupport (= 5.2.1)
|
116
|
-
method_source
|
117
|
-
rake (>= 0.8.7)
|
118
|
-
thor (>= 0.19.0, < 2.0)
|
119
|
-
rake (12.3.1)
|
120
|
-
rb-fsevent (0.10.3)
|
121
|
-
rb-inotify (0.9.10)
|
122
|
-
ffi (>= 0.5.0, < 2)
|
123
|
-
ruby_dep (1.5.0)
|
124
|
-
rubyzip (1.2.2)
|
125
|
-
selenium-webdriver (3.14.0)
|
126
|
-
childprocess (~> 0.5)
|
127
|
-
rubyzip (~> 1.2)
|
128
|
-
sprockets (3.7.2)
|
129
|
-
concurrent-ruby (~> 1.0)
|
130
|
-
rack (> 1, < 3)
|
131
|
-
sprockets-rails (3.2.1)
|
132
|
-
actionpack (>= 4.0)
|
133
|
-
activesupport (>= 4.0)
|
134
|
-
sprockets (>= 3.0.0)
|
135
|
-
thor (0.20.0)
|
136
|
-
thread_safe (0.3.6)
|
137
|
-
tzinfo (1.2.5)
|
138
|
-
thread_safe (~> 0.1)
|
139
|
-
websocket-driver (0.7.0)
|
140
|
-
websocket-extensions (>= 0.1.0)
|
141
|
-
websocket-extensions (0.1.3)
|
142
|
-
xpath (3.1.0)
|
143
|
-
nokogiri (~> 1.8)
|
144
|
-
|
145
|
-
PLATFORMS
|
146
|
-
ruby
|
147
|
-
|
148
|
-
DEPENDENCIES
|
149
|
-
capybara
|
150
|
-
graphql!
|
151
|
-
listen
|
152
|
-
puma
|
153
|
-
rails (~> 5.2.1)
|
154
|
-
selenium-webdriver
|
155
|
-
|
156
|
-
BUNDLED WITH
|
157
|
-
2.0.1
|
data/spec/dummy/log/test.log
DELETED
@@ -1,199 +0,0 @@
|
|
1
|
-
-----------------------------------------------------------
|
2
|
-
ActionCableSubscriptionsTest: test_it_handles_subscriptions
|
3
|
-
-----------------------------------------------------------
|
4
|
-
Started GET "/" for 127.0.0.1 at 2018-09-29 14:31:04 -0400
|
5
|
-
Processing by PagesController#show as HTML
|
6
|
-
Rendering pages/show.html within layouts/application
|
7
|
-
Rendered pages/show.html within layouts/application (1.3ms)
|
8
|
-
Completed 200 OK in 211ms (Views: 208.8ms)
|
9
|
-
Started GET "/assets/application-03569c14ba2ebaf689cf2b8eecd6aba17af7402d872a3eca6c4ec8fac4eb31e9.js" for 127.0.0.1 at 2018-09-29 14:31:05 -0400
|
10
|
-
Started GET "/cable" for 127.0.0.1 at 2018-09-29 14:31:05 -0400
|
11
|
-
Started GET "/cable/" [WebSocket] for 127.0.0.1 at 2018-09-29 14:31:05 -0400
|
12
|
-
Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)
|
13
|
-
GraphqlChannel is transmitting the subscription confirmation
|
14
|
-
GraphqlChannel is transmitting the subscription confirmation
|
15
|
-
GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-1"}})
|
16
|
-
GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-2"}})
|
17
|
-
Could not execute command from ({"command"=>"message", "identifier"=>"{\"channel\":\"GraphqlChannel\",\"id\":\"1662699726a\"}", "data"=>"{\"query\":\"subscription($id: ID!) { payload(id: $id) { value } }\",\"variables\":{\"id\":\"updates-1\"},\"action\":\"execute\"}"}) [ArgumentError - wrong number of arguments (given 1, expected 0)]: /Users/rmosolgo/code/graphql-ruby/spec/dummy/app/channels/graphql_channel.rb:19:in `payload' | /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb:524:in `public_send' | /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb:524:in `block in public_send_field' | /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb:536:in `with_extensions' | /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb:515:in `public_send_field'
|
18
|
-
Could not execute command from ({"command"=>"message", "identifier"=>"{\"channel\":\"GraphqlChannel\",\"id\":\"166269a4ccc\"}", "data"=>"{\"query\":\"subscription($id: ID!) { payload(id: $id) { value } }\",\"variables\":{\"id\":\"updates-2\"},\"action\":\"execute\"}"}) [ArgumentError - wrong number of arguments (given 1, expected 0)]: /Users/rmosolgo/code/graphql-ruby/spec/dummy/app/channels/graphql_channel.rb:19:in `payload' | /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb:524:in `public_send' | /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb:524:in `block in public_send_field' | /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb:536:in `with_extensions' | /Users/rmosolgo/code/graphql-ruby/lib/graphql/schema/field.rb:515:in `public_send_field'
|
19
|
-
GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>1})
|
20
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzE\"}"
|
21
|
-
GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>2})
|
22
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzI\"}"
|
23
|
-
GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>3})
|
24
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzM\"}"
|
25
|
-
Finished "/cable/" [WebSocket] for 127.0.0.1 at 2018-09-29 14:31:08 -0400
|
26
|
-
-----------------------------------------------------------
|
27
|
-
ActionCableSubscriptionsTest: test_it_handles_subscriptions
|
28
|
-
-----------------------------------------------------------
|
29
|
-
Started GET "/" for 127.0.0.1 at 2018-09-29 14:31:34 -0400
|
30
|
-
Processing by PagesController#show as HTML
|
31
|
-
Rendering pages/show.html within layouts/application
|
32
|
-
Rendered pages/show.html within layouts/application (1.2ms)
|
33
|
-
Completed 200 OK in 209ms (Views: 206.7ms)
|
34
|
-
Started GET "/assets/application-03569c14ba2ebaf689cf2b8eecd6aba17af7402d872a3eca6c4ec8fac4eb31e9.js" for 127.0.0.1 at 2018-09-29 14:31:34 -0400
|
35
|
-
Started GET "/cable" for 127.0.0.1 at 2018-09-29 14:31:34 -0400
|
36
|
-
Started GET "/cable/" [WebSocket] for 127.0.0.1 at 2018-09-29 14:31:34 -0400
|
37
|
-
Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)
|
38
|
-
GraphqlChannel is transmitting the subscription confirmation
|
39
|
-
GraphqlChannel is transmitting the subscription confirmation
|
40
|
-
GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-1"}})
|
41
|
-
GraphqlChannel transmitting {:result=>{"data"=>nil}, :more=>true}
|
42
|
-
GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-2"}})
|
43
|
-
GraphqlChannel transmitting {:result=>{"data"=>nil}, :more=>true}
|
44
|
-
GraphqlChannel is streaming from graphql-subscription:d39b7767-bfcf-487f-9985-a99e0074a99c
|
45
|
-
GraphqlChannel is streaming from graphql-subscription:95a2d0a0-e2a1-47d2-b9c4-a305e9532f41
|
46
|
-
GraphqlChannel is streaming from graphql-event::payload:id:updates-1
|
47
|
-
GraphqlChannel is streaming from graphql-event::payload:id:updates-2
|
48
|
-
GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>1})
|
49
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzE\"}"
|
50
|
-
[ActionCable] Broadcasting to graphql-subscription:d39b7767-bfcf-487f-9985-a99e0074a99c: {:result=>{"data"=>{"payload"=>{"value"=>1}}}, :more=>true}
|
51
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>1}}}, "more"=>true} (via streamed from graphql-subscription:d39b7767-bfcf-487f-9985-a99e0074a99c)
|
52
|
-
GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>2})
|
53
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzI\"}"
|
54
|
-
[ActionCable] Broadcasting to graphql-subscription:d39b7767-bfcf-487f-9985-a99e0074a99c: {:result=>{"data"=>{"payload"=>{"value"=>2}}}, :more=>true}
|
55
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>2}}}, "more"=>true} (via streamed from graphql-subscription:d39b7767-bfcf-487f-9985-a99e0074a99c)
|
56
|
-
GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>3})
|
57
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzM\"}"
|
58
|
-
[ActionCable] Broadcasting to graphql-subscription:d39b7767-bfcf-487f-9985-a99e0074a99c: {:result=>{"data"=>{"payload"=>{"value"=>3}}}, :more=>true}
|
59
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>3}}}, "more"=>true} (via streamed from graphql-subscription:d39b7767-bfcf-487f-9985-a99e0074a99c)
|
60
|
-
GraphqlChannel#make_trigger({"id"=>"updates-2", "value"=>1})
|
61
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-2: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzE\"}"
|
62
|
-
[ActionCable] Broadcasting to graphql-subscription:95a2d0a0-e2a1-47d2-b9c4-a305e9532f41: {:result=>{"data"=>{"payload"=>{"value"=>1}}}, :more=>true}
|
63
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>1}}}, "more"=>true} (via streamed from graphql-subscription:95a2d0a0-e2a1-47d2-b9c4-a305e9532f41)
|
64
|
-
GraphqlChannel#make_trigger({"id"=>"updates-2", "value"=>2})
|
65
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-2: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzI\"}"
|
66
|
-
[ActionCable] Broadcasting to graphql-subscription:95a2d0a0-e2a1-47d2-b9c4-a305e9532f41: {:result=>{"data"=>{"payload"=>{"value"=>2}}}, :more=>true}
|
67
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>2}}}, "more"=>true} (via streamed from graphql-subscription:95a2d0a0-e2a1-47d2-b9c4-a305e9532f41)
|
68
|
-
Unsubscribing from channel: {"channel":"GraphqlChannel","id":"166269a8bd0"}
|
69
|
-
GraphqlChannel stopped streaming from graphql-subscription:d39b7767-bfcf-487f-9985-a99e0074a99c
|
70
|
-
GraphqlChannel stopped streaming from graphql-event::payload:id:updates-1
|
71
|
-
Could not execute command from ({"command"=>"message", "identifier"=>"{\"channel\":\"GraphqlChannel\",\"id\":\"166269a8bd0\"}", "data"=>"{\"id\":\"updates-1\",\"value\":4,\"action\":\"make_trigger\"}"}) [RuntimeError - Unable to find subscription with identifier: {"channel":"GraphqlChannel","id":"166269a8bd0"}]: /Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/action_cable/connection/subscriptions.rb:78:in `find' | /Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/action_cable/connection/subscriptions.rb:55:in `perform_action' | /Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/action_cable/connection/subscriptions.rb:19:in `execute_command' | /Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/action_cable/connection/base.rb:87:in `dispatch_websocket_message' | /Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/action_cable/server/worker.rb:60:in `block in invoke'
|
72
|
-
GraphqlChannel#make_trigger({"id"=>"updates-2", "value"=>3})
|
73
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-2: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzM\"}"
|
74
|
-
[ActionCable] Broadcasting to graphql-subscription:95a2d0a0-e2a1-47d2-b9c4-a305e9532f41: {:result=>{"data"=>{"payload"=>{"value"=>3}}}, :more=>true}
|
75
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>3}}}, "more"=>true} (via streamed from graphql-subscription:95a2d0a0-e2a1-47d2-b9c4-a305e9532f41)
|
76
|
-
GraphqlChannel#make_trigger({"id"=>"updates-2", "value"=>4})
|
77
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-2: "4x"
|
78
|
-
[ActionCable] Broadcasting to graphql-subscription:95a2d0a0-e2a1-47d2-b9c4-a305e9532f41: {:result=>{"data"=>{"payload"=>{"value"=>400}}}, :more=>true}
|
79
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>400}}}, "more"=>true} (via streamed from graphql-subscription:95a2d0a0-e2a1-47d2-b9c4-a305e9532f41)
|
80
|
-
Finished "/cable/" [WebSocket] for 127.0.0.1 at 2018-09-29 14:31:36 -0400
|
81
|
-
GraphqlChannel stopped streaming from graphql-subscription:95a2d0a0-e2a1-47d2-b9c4-a305e9532f41
|
82
|
-
GraphqlChannel stopped streaming from graphql-event::payload:id:updates-2
|
83
|
-
-----------------------------------------------------------
|
84
|
-
ActionCableSubscriptionsTest: test_it_handles_subscriptions
|
85
|
-
-----------------------------------------------------------
|
86
|
-
Started GET "/" for 127.0.0.1 at 2018-09-29 14:31:58 -0400
|
87
|
-
Processing by PagesController#show as HTML
|
88
|
-
Rendering pages/show.html within layouts/application
|
89
|
-
Rendered pages/show.html within layouts/application (1.2ms)
|
90
|
-
Completed 200 OK in 244ms (Views: 241.4ms)
|
91
|
-
Started GET "/assets/application-03569c14ba2ebaf689cf2b8eecd6aba17af7402d872a3eca6c4ec8fac4eb31e9.js" for 127.0.0.1 at 2018-09-29 14:31:58 -0400
|
92
|
-
Started GET "/cable" for 127.0.0.1 at 2018-09-29 14:31:58 -0400
|
93
|
-
Started GET "/cable/" [WebSocket] for 127.0.0.1 at 2018-09-29 14:31:58 -0400
|
94
|
-
Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)
|
95
|
-
GraphqlChannel is transmitting the subscription confirmation
|
96
|
-
GraphqlChannel is transmitting the subscription confirmation
|
97
|
-
GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-1"}})
|
98
|
-
GraphqlChannel transmitting {:result=>{"data"=>{}}, :more=>true}
|
99
|
-
GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-2"}})
|
100
|
-
GraphqlChannel transmitting {:result=>{"data"=>{}}, :more=>true}
|
101
|
-
GraphqlChannel is streaming from graphql-subscription:2b19317b-9279-4b20-95fc-adee4a81161b
|
102
|
-
GraphqlChannel is streaming from graphql-event::payload:id:updates-1
|
103
|
-
GraphqlChannel is streaming from graphql-subscription:5f944467-ccfa-4765-9b4a-3bccb29b0b6b
|
104
|
-
GraphqlChannel is streaming from graphql-event::payload:id:updates-2
|
105
|
-
GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>1})
|
106
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzE\"}"
|
107
|
-
[ActionCable] Broadcasting to graphql-subscription:2b19317b-9279-4b20-95fc-adee4a81161b: {:result=>{"data"=>{"payload"=>{"value"=>1}}}, :more=>true}
|
108
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>1}}}, "more"=>true} (via streamed from graphql-subscription:2b19317b-9279-4b20-95fc-adee4a81161b)
|
109
|
-
GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>2})
|
110
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzI\"}"
|
111
|
-
[ActionCable] Broadcasting to graphql-subscription:2b19317b-9279-4b20-95fc-adee4a81161b: {:result=>{"data"=>{"payload"=>{"value"=>2}}}, :more=>true}
|
112
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>2}}}, "more"=>true} (via streamed from graphql-subscription:2b19317b-9279-4b20-95fc-adee4a81161b)
|
113
|
-
GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>3})
|
114
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzM\"}"
|
115
|
-
[ActionCable] Broadcasting to graphql-subscription:2b19317b-9279-4b20-95fc-adee4a81161b: {:result=>{"data"=>{"payload"=>{"value"=>3}}}, :more=>true}
|
116
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>3}}}, "more"=>true} (via streamed from graphql-subscription:2b19317b-9279-4b20-95fc-adee4a81161b)
|
117
|
-
GraphqlChannel#make_trigger({"id"=>"updates-2", "value"=>1})
|
118
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-2: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzE\"}"
|
119
|
-
[ActionCable] Broadcasting to graphql-subscription:5f944467-ccfa-4765-9b4a-3bccb29b0b6b: {:result=>{"data"=>{"payload"=>{"value"=>1}}}, :more=>true}
|
120
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>1}}}, "more"=>true} (via streamed from graphql-subscription:5f944467-ccfa-4765-9b4a-3bccb29b0b6b)
|
121
|
-
GraphqlChannel#make_trigger({"id"=>"updates-2", "value"=>2})
|
122
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-2: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzI\"}"
|
123
|
-
[ActionCable] Broadcasting to graphql-subscription:5f944467-ccfa-4765-9b4a-3bccb29b0b6b: {:result=>{"data"=>{"payload"=>{"value"=>2}}}, :more=>true}
|
124
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>2}}}, "more"=>true} (via streamed from graphql-subscription:5f944467-ccfa-4765-9b4a-3bccb29b0b6b)
|
125
|
-
Unsubscribing from channel: {"channel":"GraphqlChannel","id":"166269a7cac"}
|
126
|
-
GraphqlChannel stopped streaming from graphql-subscription:2b19317b-9279-4b20-95fc-adee4a81161b
|
127
|
-
GraphqlChannel stopped streaming from graphql-event::payload:id:updates-1
|
128
|
-
Could not execute command from ({"command"=>"message", "identifier"=>"{\"channel\":\"GraphqlChannel\",\"id\":\"166269a7cac\"}", "data"=>"{\"id\":\"updates-1\",\"value\":4,\"action\":\"make_trigger\"}"}) [RuntimeError - Unable to find subscription with identifier: {"channel":"GraphqlChannel","id":"166269a7cac"}]: /Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/action_cable/connection/subscriptions.rb:78:in `find' | /Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/action_cable/connection/subscriptions.rb:55:in `perform_action' | /Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/action_cable/connection/subscriptions.rb:19:in `execute_command' | /Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/action_cable/connection/base.rb:87:in `dispatch_websocket_message' | /Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/action_cable/server/worker.rb:60:in `block in invoke'
|
129
|
-
GraphqlChannel#make_trigger({"id"=>"updates-2", "value"=>3})
|
130
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-2: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzM\"}"
|
131
|
-
[ActionCable] Broadcasting to graphql-subscription:5f944467-ccfa-4765-9b4a-3bccb29b0b6b: {:result=>{"data"=>{"payload"=>{"value"=>3}}}, :more=>true}
|
132
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>3}}}, "more"=>true} (via streamed from graphql-subscription:5f944467-ccfa-4765-9b4a-3bccb29b0b6b)
|
133
|
-
GraphqlChannel#make_trigger({"id"=>"updates-2", "value"=>4})
|
134
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-2: "4x"
|
135
|
-
[ActionCable] Broadcasting to graphql-subscription:5f944467-ccfa-4765-9b4a-3bccb29b0b6b: {:result=>{"data"=>{"payload"=>{"value"=>400}}}, :more=>true}
|
136
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>400}}}, "more"=>true} (via streamed from graphql-subscription:5f944467-ccfa-4765-9b4a-3bccb29b0b6b)
|
137
|
-
Finished "/cable/" [WebSocket] for 127.0.0.1 at 2018-09-29 14:32:00 -0400
|
138
|
-
GraphqlChannel stopped streaming from graphql-subscription:5f944467-ccfa-4765-9b4a-3bccb29b0b6b
|
139
|
-
GraphqlChannel stopped streaming from graphql-event::payload:id:updates-2
|
140
|
-
-----------------------------------------------------------
|
141
|
-
ActionCableSubscriptionsTest: test_it_handles_subscriptions
|
142
|
-
-----------------------------------------------------------
|
143
|
-
Started GET "/" for 127.0.0.1 at 2018-10-05 11:46:22 -0400
|
144
|
-
Processing by PagesController#show as HTML
|
145
|
-
Rendering pages/show.html within layouts/application
|
146
|
-
Rendered pages/show.html within layouts/application (1.7ms)
|
147
|
-
Completed 200 OK in 254ms (Views: 251.5ms)
|
148
|
-
Started GET "/assets/application-03569c14ba2ebaf689cf2b8eecd6aba17af7402d872a3eca6c4ec8fac4eb31e9.js" for 127.0.0.1 at 2018-10-05 11:46:22 -0400
|
149
|
-
Started GET "/cable" for 127.0.0.1 at 2018-10-05 11:46:22 -0400
|
150
|
-
Started GET "/cable/" [WebSocket] for 127.0.0.1 at 2018-10-05 11:46:22 -0400
|
151
|
-
Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)
|
152
|
-
GraphqlChannel is transmitting the subscription confirmation
|
153
|
-
GraphqlChannel is transmitting the subscription confirmation
|
154
|
-
GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-2"}})
|
155
|
-
GraphqlChannel#execute({"query"=>"subscription($id: ID!) { payload(id: $id) { value } }", "variables"=>{"id"=>"updates-1"}})
|
156
|
-
GraphqlChannel transmitting {:result=>{"data"=>nil}, :more=>true}
|
157
|
-
GraphqlChannel transmitting {:result=>{"data"=>nil}, :more=>true}
|
158
|
-
GraphqlChannel is streaming from graphql-subscription:6da90bd0-cd94-41db-bf3e-760e37b2873f
|
159
|
-
GraphqlChannel is streaming from graphql-subscription:c781954b-7b9a-4742-9f9c-69b869d85fad
|
160
|
-
GraphqlChannel is streaming from graphql-event::payload:id:updates-2
|
161
|
-
GraphqlChannel is streaming from graphql-event::payload:id:updates-1
|
162
|
-
GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>1})
|
163
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzE\"}"
|
164
|
-
[ActionCable] Broadcasting to graphql-subscription:6da90bd0-cd94-41db-bf3e-760e37b2873f: {:result=>{"data"=>{"payload"=>{"value"=>1}}}, :more=>true}
|
165
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>1}}}, "more"=>true} (via streamed from graphql-subscription:6da90bd0-cd94-41db-bf3e-760e37b2873f)
|
166
|
-
GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>2})
|
167
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzI\"}"
|
168
|
-
[ActionCable] Broadcasting to graphql-subscription:6da90bd0-cd94-41db-bf3e-760e37b2873f: {:result=>{"data"=>{"payload"=>{"value"=>2}}}, :more=>true}
|
169
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>2}}}, "more"=>true} (via streamed from graphql-subscription:6da90bd0-cd94-41db-bf3e-760e37b2873f)
|
170
|
-
GraphqlChannel#make_trigger({"id"=>"updates-1", "value"=>3})
|
171
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-1: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzM\"}"
|
172
|
-
[ActionCable] Broadcasting to graphql-subscription:6da90bd0-cd94-41db-bf3e-760e37b2873f: {:result=>{"data"=>{"payload"=>{"value"=>3}}}, :more=>true}
|
173
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>3}}}, "more"=>true} (via streamed from graphql-subscription:6da90bd0-cd94-41db-bf3e-760e37b2873f)
|
174
|
-
GraphqlChannel#make_trigger({"id"=>"updates-2", "value"=>1})
|
175
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-2: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzE\"}"
|
176
|
-
[ActionCable] Broadcasting to graphql-subscription:c781954b-7b9a-4742-9f9c-69b869d85fad: {:result=>{"data"=>{"payload"=>{"value"=>1}}}, :more=>true}
|
177
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>1}}}, "more"=>true} (via streamed from graphql-subscription:c781954b-7b9a-4742-9f9c-69b869d85fad)
|
178
|
-
GraphqlChannel#make_trigger({"id"=>"updates-2", "value"=>2})
|
179
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-2: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzI\"}"
|
180
|
-
[ActionCable] Broadcasting to graphql-subscription:c781954b-7b9a-4742-9f9c-69b869d85fad: {:result=>{"data"=>{"payload"=>{"value"=>2}}}, :more=>true}
|
181
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>2}}}, "more"=>true} (via streamed from graphql-subscription:c781954b-7b9a-4742-9f9c-69b869d85fad)
|
182
|
-
Unsubscribing from channel: {"channel":"GraphqlChannel","id":"16644e966c2"}
|
183
|
-
GraphqlChannel stopped streaming from graphql-subscription:6da90bd0-cd94-41db-bf3e-760e37b2873f
|
184
|
-
GraphqlChannel stopped streaming from graphql-event::payload:id:updates-1
|
185
|
-
Could not execute command from ({"command"=>"message", "identifier"=>"{\"channel\":\"GraphqlChannel\",\"id\":\"16644e966c2\"}", "data"=>"{\"id\":\"updates-1\",\"value\":4,\"action\":\"make_trigger\"}"}) [RuntimeError - Unable to find subscription with identifier: {"channel":"GraphqlChannel","id":"16644e966c2"}]: /Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/action_cable/connection/subscriptions.rb:78:in `find' | /Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/action_cable/connection/subscriptions.rb:55:in `perform_action' | /Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/action_cable/connection/subscriptions.rb:19:in `execute_command' | /Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/action_cable/connection/base.rb:87:in `dispatch_websocket_message' | /Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/action_cable/server/worker.rb:60:in `block in invoke'
|
186
|
-
GraphqlChannel#make_trigger({"id"=>"updates-2", "value"=>3})
|
187
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-2: "{\"__gid__\":\"Z2lkOi8vZHVtbXkvR3JhcGhxbENoYW5uZWw6OkV4YW1wbGVQYXlsb2FkLzM\"}"
|
188
|
-
[ActionCable] Broadcasting to graphql-subscription:c781954b-7b9a-4742-9f9c-69b869d85fad: {:result=>{"data"=>{"payload"=>{"value"=>3}}}, :more=>true}
|
189
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>3}}}, "more"=>true} (via streamed from graphql-subscription:c781954b-7b9a-4742-9f9c-69b869d85fad)
|
190
|
-
GraphqlChannel#make_trigger({"id"=>"updates-2", "value"=>4})
|
191
|
-
[ActionCable] Broadcasting to graphql-event::payload:id:updates-2: "4x"
|
192
|
-
[ActionCable] Broadcasting to graphql-subscription:c781954b-7b9a-4742-9f9c-69b869d85fad: {:result=>{"data"=>{"payload"=>{"value"=>400}}}, :more=>true}
|
193
|
-
GraphqlChannel transmitting {"result"=>{"data"=>{"payload"=>{"value"=>400}}}, "more"=>true} (via streamed from graphql-subscription:c781954b-7b9a-4742-9f9c-69b869d85fad)
|
194
|
-
Finished "/cable/" [WebSocket] for 127.0.0.1 at 2018-10-05 11:46:25 -0400
|
195
|
-
GraphqlChannel stopped streaming from graphql-subscription:c781954b-7b9a-4742-9f9c-69b869d85fad
|
196
|
-
GraphqlChannel stopped streaming from graphql-event::payload:id:updates-2
|
197
|
-
-----------------------------------------------------------
|
198
|
-
ActionCableSubscriptionsTest: test_it_handles_subscriptions
|
199
|
-
-----------------------------------------------------------
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4w/4wzXRZrAkwKdgYaSE0pid5eB-fer8vSfSku_NPg4rMA.cache
DELETED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7I/7IHVBiJT06QSpgLpLoJIxboQ0B-D_tMTxsvoezBTV3Q.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"%��
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8w/8wY_SKagj8wHuwGNAAf6JnQ8joMbC6cEYpHrTAI8Urc.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"%A��G�{h t�l�m�V���NE���f���
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/AK/AKzz1u6bGb4auXcrObA_g5LL-oV0ejNGa448AgAi_WQ.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
I"�/Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actionview-5.2.1/lib/assets/compiled/rails-ujs.js?type=application/javascript&pipeline=self&id=796d21c1f660d0727db2c56f43915a7a091f297126acf936c5ffbbeeae910c17:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ET/ETW4uxvaYpruL8y6_ZptUH82ZowMaHIqvg5WexBFdEM.cache
DELETED
@@ -1,3 +0,0 @@
|
|
1
|
-
[o:Set:
|
2
|
-
@hash}
|
3
|
-
I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"~file-digest:///Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actionview-5.2.1/lib/assets/compiled/rails-ujs.js;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/F1/F1TWpjjyA56k9Z90n5B3xRn7DUdGjX73QCkYC6k07JQ.cache
DELETED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/F8/F8MUNRzORGFgr329fNM0xLaoWCXdv3BIalT7dsvLfjs.cache
DELETED
@@ -1,2 +0,0 @@
|
|
1
|
-
[o:Set:
|
2
|
-
@hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"8file-digest://app/assets/javascripts/application.js;TTI"$file-digest://app/assets/config;TTI".file-digest://app/assets/config/rails-ujs;TTI")file-digest://app/assets/javascripts;TTI"3file-digest://app/assets/javascripts/rails-ujs;TTI"wfile-digest:///Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/assets/compiled;TTI"|file-digest:///Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/assets/compiled/rails-ujs;TTI"vfile-digest:///Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actionview-5.2.1/lib/assets/compiled;TTI"{file-digest:///Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actionview-5.2.1/lib/assets/compiled/rails-ujs;TTI"~file-digest:///Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actionview-5.2.1/lib/assets/compiled/rails-ujs.js;TTI"1file-digest://app/assets/config/action_cable;TTI"6file-digest://app/assets/javascripts/action_cable;TTI"file-digest:///Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/assets/compiled/action_cable;TTI"�file-digest:///Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/assets/compiled/action_cable.js;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/KB/KB07ZaKNC5uXJ7TjLi-WqnY6g7dq8wWp_8N3HNjBNxg.cache
DELETED
@@ -1,2 +0,0 @@
|
|
1
|
-
[o:Set:
|
2
|
-
@hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Lprocessors:type=application/javascript&file_type=application/javascript;TTI"8file-digest://app/assets/javascripts/application.js;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"~file-digest:///Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actionview-5.2.1/lib/assets/compiled/rails-ujs.js;TTI"�file-digest:///Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/assets/compiled/action_cable.js;TTI"$file-digest://app/assets/config;TTI".file-digest://app/assets/config/rails-ujs;TTI")file-digest://app/assets/javascripts;TTI"3file-digest://app/assets/javascripts/rails-ujs;TTI"wfile-digest:///Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/assets/compiled;TTI"|file-digest:///Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/assets/compiled/rails-ujs;TTI"vfile-digest:///Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actionview-5.2.1/lib/assets/compiled;TTI"{file-digest:///Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actionview-5.2.1/lib/assets/compiled/rails-ujs;TTI"1file-digest://app/assets/config/action_cable;TTI"6file-digest://app/assets/javascripts/action_cable;TTI"file-digest:///Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/assets/compiled/action_cable;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ms/MsKSimH_UCB-H1tLvDABDHuvGciuoW6kVqQWDrXU5FQ.cache
DELETED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Mt/Mtci-Kim50aPOmeClD4AIicKn1d1WJ0n454IjSd94sk.cache
DELETED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/QH/QHt3Tc1Y6M66Oo_pDuMyWrQNs4Pp3SMeZR5K1wJj2Ts.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
I"�app/assets/javascripts/application.js?type=application/javascript&id=2ee40e48961834681557f3d62ba66cca730386fc65c8e753fcc131c5eb57f691:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/XU/XU4k1OXnfMils5SrirorPvDSyDSqiOWLZNtmAH1HH8k.cache
DELETED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ZI/ZIof7mZxWWCnraIFOCuV6a8QRWzKJXJnx2Xd7C0ZyX0.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=cc953a7e5d4fae38988cd3dedb6bc5c7d501af2190fe07930d5a3ac7b8f03ad7:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/cG/cGc_puuPS5pZKgUcy1Y_i1L6jl5UtsiIrMH59rTzR6c.cache
DELETED
@@ -1,3 +0,0 @@
|
|
1
|
-
[o:Set:
|
2
|
-
@hash}
|
3
|
-
I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"�file-digest:///Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/assets/compiled/action_cable.js;TTF
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/df/dfro_B6bx3KP1Go-7jEOqqZ2j4hVRseXIc3es9PKQno.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
I"�/Users/rmosolgo/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/actioncable-5.2.1/lib/assets/compiled/action_cable.js?type=application/javascript&pipeline=self&id=511553fd80002b90bc2b116eebc32ea1592732ff16395e6f2424f75f0ffc1870:ET
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jO/jO1DfbqnG0mTULsjJJANc3fefrG2zt7DIMmcptMT628.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"%�d�-�K���`���8Y��3�/Y����a~K
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pE/pE7gO6pQ-z187Swb4hT554wmqsq-cNzgPWLrCz-LQQQ.cache
DELETED
Binary file
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/r9/r9iU1l58a6rxkZSW5RSC52_tD-_UQuHxoMVnkfJ7Mhs.cache
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
"%i����O����H�3
|
data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xi/xitPPFfPIyDMpaznV0sBBcw8eSCV8PJcLLWin78sCgE.cache
DELETED
Binary file
|
Binary file
|