52 lines
1.4 KiB
Ruby
52 lines
1.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rubocop_spec_helper'
|
|
require_relative '../../../../rubocop/cop/graphql/enum_names'
|
|
|
|
RSpec.describe RuboCop::Cop::Graphql::EnumNames do
|
|
describe 'class name' do
|
|
it 'adds an offense when class name does not end with `Enum`' do
|
|
expect_offense(<<~ENUM)
|
|
module Types
|
|
class Fake < BaseEnum
|
|
^^^^ #{described_class::CLASS_NAME_SUFFIX_MSG}
|
|
graphql_name 'Fake'
|
|
end
|
|
end
|
|
ENUM
|
|
end
|
|
end
|
|
|
|
describe 'graphql_name' do
|
|
it 'adds an offense when `graphql_name` is not set' do
|
|
expect_offense(<<~ENUM)
|
|
module Types
|
|
class FakeEnum < BaseEnum
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^ #{described_class::GRAPHQL_NAME_MISSING_MSG}
|
|
end
|
|
end
|
|
ENUM
|
|
end
|
|
|
|
it 'adds no offense when `declarative_enum` is used' do
|
|
expect_no_offenses(<<~ENUM)
|
|
module Types
|
|
class FakeEnum < BaseEnum
|
|
declarative_enum ::FakeModule::FakeDeclarativeEnum
|
|
end
|
|
end
|
|
ENUM
|
|
end
|
|
|
|
it 'adds an offense when `graphql_name` includes `enum`' do
|
|
expect_offense(<<~ENUM)
|
|
module Types
|
|
class FakeEnum < BaseEnum
|
|
graphql_name 'FakeEnum'
|
|
^^^^^^^^^^ #{described_class::GRAPHQL_NAME_WITH_ENUM_MSG}
|
|
end
|
|
end
|
|
ENUM
|
|
end
|
|
end
|
|
end
|