Sha256: c984c9e0893232a160b83260de8585e7f52aa2bbbe82a52e02d7996b2ecb2c56
Contents?: true
Size: 1.57 KB
Versions: 2
Compression:
Stored size: 1.57 KB
Contents
# frozen_string_literal: true require 'spec_helper' require 'commander/methods' describe Commander::Methods do it 'includes Commander::UI' do expect(subject.ancestors).to include(Commander::UI) end describe 'AskForClass' do it 'includes Commander::UI::AskForClass' do expect(subject.ancestors).to include(Commander::UI::AskForClass) end describe 'defining methods' do let(:terminal) { double } before do allow(terminal).to receive(:ask) @old_highline = HighLine.default_instance HighLine.default_instance = terminal end after do HighLine.default_instance = @old_highline end subject do Class.new do include Commander::UI::AskForClass end.new end it 'defines common "ask_for_*" methods' do expect(subject.respond_to?(:ask_for_float)).to be_truthy end it 'responds to "ask_for_*" methods for classes that implement #parse' do expect(subject.respond_to?(:ask_for_datetime)).to be_truthy end it 'fails "ask_for_*" method invocations without a prompt' do expect do subject.ask_for_datetime end.to raise_error(ArgumentError) end it 'implements "ask_for_*"' do expect(terminal).to receive(:ask) subject.ask_for_datetime('hi') end end end it 'includes Commander::Delegates' do expect(subject.ancestors).to include(Commander::Delegates) end it 'does not change the Object ancestors' do expect(Object.ancestors).not_to include(Commander::UI) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
commander-5.0.0 | spec/methods_spec.rb |
commander-4.6.0 | spec/methods_spec.rb |