lib/graphql-preview.rb in graphql-preview-0.1.0 vs lib/graphql-preview.rb in graphql-preview-0.1.1

- old
+ new

@@ -12,14 +12,22 @@ unless context.key?(:schema_previews) raise ArgumentError, "[GraphQLPreview] `:schema_previews` was not provided to the `context`" end - context[:schema_previews].include?(member.metadata[:preview_toggled_by].toggled_by) + schema_preview_environment = context[:schema_preview_environment] || SchemaModification::DEFAULT_ENVIRONMENT + + toggled_by_preview = member.metadata[:preview_toggled_by][schema_preview_environment] + + if toggled_by_preview + context[:schema_previews].include?(toggled_by_preview.toggled_by) + else + false + end end - def self.use(schema_def, enabled_previews: []) + def self.use(schema_def, enabled_previews: [], possible_environments: [SchemaModification::DEFAULT_ENVIRONMENT]) unless enabled_previews.is_a?(Array) raise ArgumentError, "Expected `enabled_previews` to be an array, but it was `#{enabled_previews.class}`" end enabled_previews.each do |preview| @@ -27,11 +35,11 @@ raise ArgumentError, "Preview #{preview} must inherit from `GraphQLPreview::SchemaModification`" end end schema = schema_def.target - schema_def.instrument(:field, Instrumenter.new(enabled_previews)) - enabled_previews.each { |preview| preview.apply_to_schema(schema) } + schema_def.instrument(:field, Instrumenter.new(enabled_previews, possible_environments)) + enabled_previews.each { |preview| preview.apply_to_schema(schema, possible_environments) } schema.metadata[:enabled_previews] = enabled_previews end end module GraphQL