# 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'), '=', highlight('true') ], [ 'cucumber.yml: ', highlight('default: --publish') ], '', [ 'More information at ', link('https://cucumber.io/docs/cucumber/environment-variables/') ], '', [ '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