Sha256: e23250c0dc021d637852fdcfc3496ecb306c8fde8a8af52cca51034f826f2299

Contents?: true

Size: 986 Bytes

Versions: 4

Compression:

Stored size: 986 Bytes

Contents

# frozen_string_literal: true
RSpec.shared_context "graphql type" do
  let!(:current_organization) { create(:organization) }
  let!(:current_user) { create(:user, organization: current_organization) }
  let(:model) { OpenStruct.new({}) }

  let(:schema) do
    resolver = ->(_obj, _args, _ctx) { model }
    type_class = described_class

    query_type = GraphQL::ObjectType.define do
      name "FakeTestQuery"

      field :type, !type_class do
        resolve resolver
      end
    end

    GraphQL::Schema.define do
      query query_type
    end
  end

  let(:response) do
    execute_query "{ type #{query}}"
  end

  def execute_query(query, variables = {})
    result = schema.execute(
      query,
      context: {
        current_organization: current_organization,
        current_user: current_user
      },
      variables: variables
    )

    raise Exception, result["errors"].map { |e| e["message"] }.join(", ") if result["errors"]
    result["data"]["type"]
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
decidim-api-0.0.2 lib/decidim/api/test/type_context.rb
decidim-0.0.2 decidim-api/lib/decidim/api/test/type_context.rb
decidim-api-0.0.1 lib/decidim/api/test/type_context.rb
decidim-0.0.1 decidim-api/lib/decidim/api/test/type_context.rb