Sha256: 0ee2fa89a5a10970f2c564e7860cc34707f78fbf0da6d8f11ee26829acc97ff0

Contents?: true

Size: 1.68 KB

Versions: 3

Compression:

Stored size: 1.68 KB

Contents

# frozen_string_literal: true

require_relative '../../command'

require 'pastel'

module Dri
  module Commands
    class Fetch
      class Testcases < Dri::Command
        def initialize(options)
          @options = options
          @available_pipelines = %w[
            main
            canary
            master
            production
            staging-canary
            staging-ref
            staging
          ]
        end

        def execute(input: $stdin, output: $stdout) # rubocop:disable Metrics/AbcSize
          verify_config_exists

          if @options[:filter_pipelines]
            filtered_pipelines = prompt.multi_select("Select pipelines:", @available_pipelines)
          end

          logger.info "Fetching currently failing testcases..."

          title_label = add_color('Title:', :bright_yellow)
          url_label = add_color('URL:', :bright_yellow)
          divider = add_color('---', :cyan)

          spinner.start

          pipelines = @options[:filter_pipelines] ? filtered_pipelines : @available_pipelines

          logger.error "No pipelines selected to continue to fetch testcases." if pipelines.empty?

          pipelines.each do |pipeline|
            logger.info "Fetching failing testcases in #{pipeline}\n"
            response = api_client.fetch_failing_testcases(pipeline, state: 'opened')

            output.puts "♦♦♦♦♦ #{add_color(pipeline, :black, :on_white)}♦♦♦♦♦\n\n"

            response.each do |test_case|
              output.puts "#{title_label} #{test_case.title}\n#{url_label} #{test_case.web_url}"
              output.puts "#{divider}\n"
            end
          end

          spinner.stop
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dri-0.10.2 lib/dri/commands/fetch/testcases.rb
dri-0.10.1 lib/dri/commands/fetch/testcases.rb
dri-0.10.0 lib/dri/commands/fetch/testcases.rb