Sha256: 7164ddaceeafe2c53263ad6ca279c193dfabaab70a71d5eeaff782ee27982316

Contents?: true

Size: 1.63 KB

Versions: 2

Compression:

Stored size: 1.63 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)
          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

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

          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

2 entries across 2 versions & 1 rubygems

Version Path
dri-0.1.3 lib/dri/commands/fetch/testcases.rb
dri-0.1.2 lib/dri/commands/fetch/testcases.rb