graphql 1.9.10 → 1.9.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/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
|