Sha256: 6eac4574cf3c38168fa5d29744d3009e6c53501f49114a128959f788ec770bc7
Contents?: true
Size: 1.43 KB
Versions: 1
Compression:
Stored size: 1.43 KB
Contents
require "spec_helper" RSpec.describe <%= configuration.project_namespaced_class %>::CLI::Shell do using Refinements::Pathnames using Infusible::Stub subject(:shell) { described_class.new } include_context "with application dependencies" before { <%= configuration.project_namespaced_class %>::CLI::Actions::Import.stub configuration:, kernel:, logger: } after { <%= configuration.project_namespaced_class %>::CLI::Actions::Import.unstub :configuration, :kernel, :logger } describe "#call" do it "edits configuration" do shell.call %w[--config edit] expect(kernel).to have_received(:system).with("$EDITOR ") end it "views configuration" do shell.call %w[--config view] expect(kernel).to have_received(:system).with("cat ") end it "prints version" do shell.call %w[--version] expect(kernel).to have_received(:puts).with(/<%= configuration.project_label %>\s\d+\.\d+\.\d+/) end it "prints help (usage)" do shell.call %w[--help] expect(kernel).to have_received(:puts).with(/<%= configuration.project_label %>.+USAGE.+/m) end it "prints usage when no options are given" do shell.call expect(kernel).to have_received(:puts).with(/<%= configuration.project_label %>.+USAGE.+/m) end it "prints error with invalid option" do shell.call %w[--bogus] expect(logger.reread).to match(/🛑.+invalid option.+bogus/) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
gemsmith-19.8.0 | lib/gemsmith/templates/%project_name%/spec/lib/%project_path%/cli/shell_spec.rb.erb |