1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
require 'spec_helper'
describe Puppet::Type.type(:sshkey) do
it "uses :name as its namevar" do
expect(described_class.key_attributes).to eq [:name]
end
describe "when validating attributes" do
[:name, :provider].each do |param|
it "has a #{param} parameter" do
expect(described_class.attrtype(param)).to eq :param
end
end
[:host_aliases, :ensure, :key, :type].each do |property|
it "has a #{property} property" do
expect(described_class.attrtype(property)).to eq :property
end
end
end
describe "when validating values" do
[
:'ssh-dss', :dsa,
:'ssh-rsa', :rsa,
:'ecdsa-sha2-nistp256',
:'ecdsa-sha2-nistp384',
:'ecdsa-sha2-nistp521',
:'ssh-ed25519', :ed25519,
].each do |keytype|
it "supports #{keytype} as a type value" do
described_class.new(:name => "foo", :type => keytype)
end
end
it "aliases :rsa to :ssh-rsa" do
key = described_class.new(:name => "foo", :type => :rsa)
expect(key.should(:type)).to eq :'ssh-rsa'
end
it "aliases :dsa to :ssh-dss" do
key = described_class.new(:name => "foo", :type => :dsa)
expect(key.should(:type)).to eq :'ssh-dss'
end
it "doesn't support values other than ssh-dss, ssh-rsa, dsa, rsa for type" do
expect {
described_class.new(:name => "whev", :type => :'ssh-dsa')
}.to raise_error(Puppet::Error, /Invalid value.*ssh-dsa/)
end
it "accepts one host_alias" do
described_class.new(:name => "foo", :host_aliases => 'foo.bar.tld')
end
it "accepts multiple host_aliases as an array" do
described_class.new(:name => "foo", :host_aliases => ['foo.bar.tld','10.0.9.9'])
end
it "doesn't accept spaces in any host_alias" do
expect {
described_class.new(:name => "foo", :host_aliases => ['foo.bar.tld','foo bar'])
}.to raise_error(Puppet::Error, /cannot include whitespace/)
end
it "doesn't accept aliases in the resourcename" do
expect {
described_class.new(:name => 'host,host.domain,ip')
}.to raise_error(Puppet::Error, /No comma in resourcename/)
end
end
end
|