Sha256: 789226027fec4caa1b4d74b25f575178656666abea42fe8aa6f8590be79905cd

Contents?: true

Size: 1.79 KB

Versions: 3

Compression:

Stored size: 1.79 KB

Contents

# frozen_string_literal: true

require 'cucumber/term/banner'

module Cucumber
  module Formatter
    class PublishBannerPrinter
      include Term::Banner

      def initialize(configuration)
        return if configuration.publish_enabled?

        configuration.on_event :test_run_finished do |_event|
          display_publish_ad(configuration.error_stream)
        end
      end

      # rubocop:disable Metrics/MethodLength
      def display_publish_ad(io)
        display_banner(
          [
            [
              'Share your Cucumber Report with your team at ',
              link('https://reports.cucumber.io')
            ],
            '',
            [
              'Command line option:    ',
              highlight('--publish')
            ],
            [
              'Environment variable:   ',
              highlight('CUCUMBER_PUBLISH_ENABLED=true')
            ],
            [
              'cucumber.yml:           ',
              highlight('default: --publish')
            ],
            '',
            [
              'More information at ',
              link('https://reports.cucumber.io/docs/cucumber-ruby')
            ],
            '',
            [
              'To disable this message, specify ',
              pre('CUCUMBER_PUBLISH_QUIET=true'),
              ' or use the '
            ],
            [
              pre('--publish-quiet'),
              ' option. You can also add this to your ',
              pre('cucumber.yml:')
            ],
            [pre('default: --publish-quiet')]
          ],
          io
        )
      end
      # rubocop:enable Metrics/MethodLength

      def highlight(text)
        [text, :cyan]
      end

      def link(text)
        [text, :cyan, :bold, :underline]
      end

      def pre(text)
        [text, :bold]
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
cucumber-5.1.1 lib/cucumber/formatter/publish_banner_printer.rb
cucumber-5.1.0 lib/cucumber/formatter/publish_banner_printer.rb
cucumber-5.0.0 lib/cucumber/formatter/publish_banner_printer.rb