summaryrefslogtreecommitdiff
path: root/spec/graphql/types/base_enum_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/graphql/types/base_enum_spec.rb')
-rw-r--r--spec/graphql/types/base_enum_spec.rb48
1 files changed, 43 insertions, 5 deletions
diff --git a/spec/graphql/types/base_enum_spec.rb b/spec/graphql/types/base_enum_spec.rb
index 744aee40044..bab0278ee25 100644
--- a/spec/graphql/types/base_enum_spec.rb
+++ b/spec/graphql/types/base_enum_spec.rb
@@ -3,6 +3,38 @@
require 'spec_helper'
RSpec.describe Types::BaseEnum do
+ describe '.from_rails_enum' do
+ let(:enum_type) { Class.new(described_class) }
+ let(:template) { "The name is '%{name}', James %{name}." }
+
+ let(:enum) do
+ {
+ 'foo' => 1,
+ 'bar' => 2,
+ 'baz' => 100
+ }
+ end
+
+ it 'contructs the correct values' do
+ enum_type.from_rails_enum(enum, description: template)
+
+ expect(enum_type.values).to match(
+ 'FOO' => have_attributes(
+ description: "The name is 'foo', James foo.",
+ value: 'foo'
+ ),
+ 'BAR' => have_attributes(
+ description: "The name is 'bar', James bar.",
+ value: 'bar'
+ ),
+ 'BAZ' => have_attributes(
+ description: "The name is 'baz', James baz.",
+ value: 'baz'
+ )
+ )
+ end
+ end
+
describe '.declarative_enum' do
let(:use_name) { true }
let(:use_description) { true }
@@ -26,12 +58,15 @@ RSpec.describe Types::BaseEnum do
end
end
- subject(:set_declarative_enum) { enum_type.declarative_enum(enum_module, use_name: use_name, use_description: use_description) }
+ subject(:set_declarative_enum) do
+ enum_type.declarative_enum(enum_module, use_name: use_name, use_description: use_description)
+ end
describe '#graphql_name' do
context 'when the use_name is `true`' do
it 'changes the graphql_name' do
- expect { set_declarative_enum }.to change { enum_type.graphql_name }.from('OriginalName').to('Name')
+ expect { set_declarative_enum }
+ .to change(enum_type, :graphql_name).from('OriginalName').to('Name')
end
end
@@ -39,7 +74,8 @@ RSpec.describe Types::BaseEnum do
let(:use_name) { false }
it 'does not change the graphql_name' do
- expect { set_declarative_enum }.not_to change { enum_type.graphql_name }.from('OriginalName')
+ expect { set_declarative_enum }
+ .not_to change(enum_type, :graphql_name).from('OriginalName')
end
end
end
@@ -47,7 +83,8 @@ RSpec.describe Types::BaseEnum do
describe '#description' do
context 'when the use_description is `true`' do
it 'changes the description' do
- expect { set_declarative_enum }.to change { enum_type.description }.from('Original description').to('Description')
+ expect { set_declarative_enum }
+ .to change(enum_type, :description).from('Original description').to('Description')
end
end
@@ -55,7 +92,8 @@ RSpec.describe Types::BaseEnum do
let(:use_description) { false }
it 'does not change the description' do
- expect { set_declarative_enum }.not_to change { enum_type.description }.from('Original description')
+ expect { set_declarative_enum }
+ .not_to change(enum_type, :description).from('Original description')
end
end
end