Sha256: 21aa5634ee1be61ed39781e972e0b5c77a9b6b4ab52b75020cc0933ea906dbf3

Contents?: true

Size: 1.51 KB

Versions: 2

Compression:

Stored size: 1.51 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

          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.1 lib/dri/commands/fetch/testcases.rb
dri-0.1.0 lib/dri/commands/fetch/testcases.rb