File: enum_value_spec.rb

package info (click to toggle)
ruby-graphql 2.2.17-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 9,584 kB
  • sloc: ruby: 67,505; ansic: 1,753; yacc: 831; javascript: 331; makefile: 6
file content (38 lines) | stat: -rw-r--r-- 1,036 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# frozen_string_literal: true
require "spec_helper"

describe GraphQL::Schema::EnumValue do
  describe "#path" do
    it "Has the owner name too" do
      enum = Class.new(GraphQL::Schema::Enum) do
        graphql_name "Abc"
        value(:XYZ)
      end

      assert_equal "Abc.XYZ", enum.values["XYZ"].path
    end
  end

  it "can accept a proc as a value" do
    enum = Class.new(GraphQL::Schema::Enum) do
      graphql_name "SortBy"
      value 'BY_NAME', value: ->(scope, direction: :asc) {
        scope.order(name: direction)
      }
      value 'BY_EMAIL', value: ->(scope, direction: :asc) {
        scope.order(email: direction)
      }
    end

    assert_instance_of Proc, enum.values["BY_NAME"].value
  end

  describe "#deprecation_reason" do
    it "can be written and read" do
      enum_value = GraphQL::Schema::EnumValue.new(:x, owner: nil)
      assert_nil enum_value.deprecation_reason
      enum_value.deprecation_reason = "No good!"
      assert_equal "No good!", enum_value.deprecation_reason
    end
  end
end