Sha256: adc143997db4f906b304ff241276bb1c548b2acb696b8445cdcc24a60980e68c

Contents?: true

Size: 1.74 KB

Versions: 1

Compression:

Stored size: 1.74 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
            nightly
            production
            staging-canary
            staging-orchestrated
            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 |pipeline|
              output.puts "#{title_label} #{pipeline['title']}\n#{url_label} #{pipeline['web_url']}"
              output.puts "#{divider}\n"
            end
          end

          spinner.stop
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dri-0.2.0 lib/dri/commands/fetch/testcases.rb