Sha256: 1d61978a52002418b6c64871b24569ad756bc9580856f251f8cfa1b0d43cd3b5

Contents?: true

Size: 1.74 KB

Versions: 43

Compression:

Stored size: 1.74 KB

Contents

require 'tty-markdown'

require_relative 'suite_input_template'

module Inferno
  module CLI
    class Suite < Thor
      desc 'input_template SUITE_ID', 'Create a template for preset inputs'
      long_desc <<~LONGDESC
        Generates a template for creating an input preset for a Test Suite.

        With -f option, the preset template is written to the specified
        filename.
      LONGDESC
      option :filename, banner: '<filename>', aliases: [:f]
      def input_template(suite_id)
        ENV['NO_DB'] = 'true'
        SuiteInputTemplate.new.run(suite_id, options)
      end

      desc 'describe SUITE_ID', 'Show information about a suite'
      long_desc <<~LONGDESC
        Display a suite's description and available options.
      LONGDESC
      def describe(suite_id)
        ENV['NO_DB'] = 'true'
        Inferno::Application.start(:suites)

        suite = Inferno::Repositories::TestSuites.new.find(suite_id)

        if suite.blank?
          message = "No suite found with id `#{suite_id}`. Run `inferno suites` to see a list of available suites"

          puts TTY::Markdown.parse(message)
          return
        end

        description = ''
        description += "# #{suite.title}\n"
        description += "#{suite.description}\n" if suite.description

        if suite.suite_options.present?
          description += "***\n\n"
          description += "# Suite Options\n\n"
          suite.suite_options.each do |option|
            description += "* `#{option.id}`: #{option.title}\n"
            option.list_options.each do |list_option|
              description += "  * `#{list_option[:value]}`: #{list_option[:label]}\n"
            end
          end
        end

        puts TTY::Markdown.parse(description)
      end
    end
  end
end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
inferno_core-0.6.2 lib/inferno/apps/cli/suite.rb
inferno_core-0.6.1 lib/inferno/apps/cli/suite.rb
inferno_core-0.6.0 lib/inferno/apps/cli/suite.rb
inferno_core-0.5.4 lib/inferno/apps/cli/suite.rb
inferno_core-0.5.3 lib/inferno/apps/cli/suite.rb
inferno_core-0.5.2 lib/inferno/apps/cli/suite.rb
inferno_core-0.5.1 lib/inferno/apps/cli/suite.rb
inferno_core-0.5.0 lib/inferno/apps/cli/suite.rb
inferno_core-0.4.44 lib/inferno/apps/cli/suite.rb
inferno_core-0.4.43 lib/inferno/apps/cli/suite.rb
inferno_core-0.4.42 lib/inferno/apps/cli/suite.rb
inferno_core-0.4.41 lib/inferno/apps/cli/suite.rb
inferno_core-0.4.40 lib/inferno/apps/cli/suite.rb
inferno_core-0.4.39 lib/inferno/apps/cli/suite.rb
inferno_core-0.4.38 lib/inferno/apps/cli/suite.rb
inferno_core-0.4.35 lib/inferno/apps/cli/suite.rb
inferno_core-0.4.34 lib/inferno/apps/cli/suite.rb
inferno_core-0.4.33 lib/inferno/apps/cli/suite.rb
inferno_core-0.4.32 lib/inferno/apps/cli/suite.rb
inferno_core-0.4.31 lib/inferno/apps/cli/suite.rb