Sha256: 09dbaa82aa4f879000137b58838387d03741d33517d577ea1c401027a535e6b4

Contents?: true

Size: 1.2 KB

Versions: 14

Compression:

Stored size: 1.2 KB

Contents

# frozen_string_literal: true

module RuboCop
  module Cop
    # Source and test generator for new cops
    #
    # This generator will take a cop name and generate a source file
    # and test file when given a valid qualified cop name.
    class Generator
      TEST_TEMPLATE = <<~TEST
        # frozen_string_literal: true

        require 'test_helper'

        class %<cop_name>sTest < Minitest::Test
          def test_registers_offense_when_using_bad_method
            assert_offense(<<~RUBY)
              bad_method
              ^^^^^^^^^^ Use `#good_method` instead of `#bad_method`.
            RUBY

            assert_correction(<<~RUBY)
              good_method
            RUBY
          end

          def test_does_not_register_offense_when_using_good_method
            assert_no_offenses(<<~RUBY)
              good_method
            RUBY
          end
        end
      TEST

      def write_test
        write_unless_file_exists(test_path, generated_test)
      end

      private

      def test_path
        File.join('test', 'rubocop', 'cop', 'minitest', "#{snake_case(badge.cop_name.to_s)}_test.rb")
      end

      def generated_test
        generate(TEST_TEMPLATE)
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
rubocop-minitest-0.27.0 lib/rubocop/cop/generator.rb
rubocop-minitest-0.26.1 lib/rubocop/cop/generator.rb
rubocop-minitest-0.26.0 lib/rubocop/cop/generator.rb
rubocop-minitest-0.25.1 lib/rubocop/cop/generator.rb
rubocop-minitest-0.25.0 lib/rubocop/cop/generator.rb
rubocop-minitest-0.24.0 lib/rubocop/cop/generator.rb
rubocop-minitest-0.23.2 lib/rubocop/cop/generator.rb
rubocop-minitest-0.23.1 lib/rubocop/cop/generator.rb
rubocop-minitest-0.23.0 lib/rubocop/cop/generator.rb
rubocop-minitest-0.22.2 lib/rubocop/cop/generator.rb
rubocop-minitest-0.22.1 lib/rubocop/cop/generator.rb
rubocop-minitest-0.22.0 lib/rubocop/cop/generator.rb
rubocop-minitest-0.21.1 lib/rubocop/cop/generator.rb
rubocop-minitest-0.21.0 lib/rubocop/cop/generator.rb