Sha256: f5296707dbfb342f58ca4d8350792f1d5129a603edd83df53ccd19e2dcdd5dd6

Contents?: true

Size: 1.38 KB

Versions: 14

Compression:

Stored size: 1.38 KB

Contents

# frozen_string_literal: true

shared_context "with a graphql type" do
  let!(:current_organization) { create(:organization) }
  let!(:current_user) { create(:user, organization: current_organization) }
  let(:model) { OpenStruct.new({}) }
  let(:type_class) { described_class }
  let(:variables) { {} }
  let(:root_value) { model }

  let(:schema) do
    klass = type_class

    GraphQL::Schema.define do
      query klass

      orphan_types(Decidim::Api.orphan_types)

      resolve_type ->(_type, _obj, _ctx) {}
    end
  end

  let(:response) do
    execute_query query, variables.stringify_keys
  end

  def execute_query(query, variables)
    result = schema.execute(
      query,
      root_value: root_value,
      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"]
  end
end

shared_context "with a graphql scalar type" do
  include_context "with a graphql type"

  let(:root_value) do
    OpenStruct.new(value: model)
  end

  let(:type_class) do
    klass = described_class

    GraphQL::ObjectType.define do
      name "Test#{klass.name}"
      description "Fake test type"

      field :value, klass
    end
  end

  let(:response) do
    execute_query("{ value }", {}).try(:[], "value")
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
decidim-api-0.23.6 lib/decidim/api/test/type_context.rb
decidim-api-0.23.5 lib/decidim/api/test/type_context.rb
decidim-api-0.23.4 lib/decidim/api/test/type_context.rb
decidim-api-0.23.3 lib/decidim/api/test/type_context.rb
decidim-api-0.23.2 lib/decidim/api/test/type_context.rb
decidim-api-0.23.1 lib/decidim/api/test/type_context.rb
decidim-api-0.23.1.rc1 lib/decidim/api/test/type_context.rb
decidim-api-0.23.0 lib/decidim/api/test/type_context.rb
decidim-api-0.22.0 lib/decidim/api/test/type_context.rb
decidim-api-0.21.0 lib/decidim/api/test/type_context.rb
decidim-api-0.20.1 lib/decidim/api/test/type_context.rb
decidim-api-0.20.0 lib/decidim/api/test/type_context.rb
decidim-api-0.19.1 lib/decidim/api/test/type_context.rb
decidim-api-0.19.0 lib/decidim/api/test/type_context.rb