# 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