Sha256: 27c1990340618a3b0dc63085d963f5dac182a7135d44910215b54a574948971b
Contents?: true
Size: 1.44 KB
Versions: 3
Compression:
Stored size: 1.44 KB
Contents
require 'opto' require 'kontena/cli/stacks/yaml/opto/service_link_resolver' describe Kontena::Cli::Stacks::YAML::Opto::Resolvers::ServiceLink do let(:subject) do described_class.new({'prompt' => 'foo'}) end describe '#resolve' do it 'returns nil if no matching services' do expect(subject).to receive(:get_services).and_return([]) expect(subject).not_to receive(:prompt) expect(subject.resolve).to be_nil end it 'prompts user if matching services' do prompt = double(:prompt) allow(subject).to receive(:prompt).and_return(prompt) expect(prompt).to receive(:select).and_return('null/bar') expect(subject).to receive(:get_services).and_return([ {'id' => 'foo/null/bar'} ]) expect(subject.resolve).to eq('null/bar') end end describe '#default_index' do let(:option) do ::Opto::Option.new(default: 'foo/bar') end let(:subject) do described_class.new({'prompt' => 'foo'}, option) end it 'returns matching index' do services = [ {'id' => 'test/foo/foo'}, {'id' => 'test/foo/bar'}, {'id' => 'test/asd/asd'} ] index = subject.default_index(services) expect(index).to eq(2) end it 'returns 0 if no matches' do services = [ {'id' => 'test/foo/foo'}, {'id' => 'test/asd/asd'} ] index = subject.default_index(services) expect(index).to eq(0) end end end
Version data entries
3 entries across 3 versions & 1 rubygems