2 describe Puppet::Type.type(:rabbitmq_user) do
4 Puppet::Type.type(:rabbitmq_user).new(name: 'foo', password: 'pass')
7 it 'accepts a user name' do
9 expect(user[:name]).to eq('dan')
11 it 'admin is false when :admin is not set' do
13 expect(user[:admin]).to eq(:false)
15 it 'accepts a password' do
16 user[:password] = 'foo'
17 expect(user[:password]).to eq('foo')
19 it 'requires a name' do
21 Puppet::Type.type(:rabbitmq_user).new({})
22 end.to raise_error(Puppet::Error, 'Title or name must be provided')
24 it 'does not allow whitespace in the name' do
27 end.to raise_error(Puppet::Error, %r{Valid values match})
29 [true, false, 'true', 'false'].each do |val|
30 it "admin property should accept #{val}" do
32 expect(user[:admin]).to eq(val.to_s.to_sym)
35 it 'does not accept non-boolean values for admin' do
38 end.to raise_error(Puppet::Error, %r{Invalid value})
40 it 'does not accept tags with spaces' do
42 user[:tags] = ['policy maker']
43 end.to raise_error(Puppet::Error, %r{Invalid tag})
45 it 'does not accept the administrator tag' do
47 user[:tags] = ['administrator']
48 end.to raise_error(Puppet::Error, %r{must use admin property})