summaryrefslogtreecommitdiff
path: root/spec/functions
diff options
context:
space:
mode:
Diffstat (limited to 'spec/functions')
-rwxr-xr-xspec/functions/fqdn_rotate_spec.rb16
1 files changed, 15 insertions, 1 deletions
diff --git a/spec/functions/fqdn_rotate_spec.rb b/spec/functions/fqdn_rotate_spec.rb
index 6c76781..db7a717 100755
--- a/spec/functions/fqdn_rotate_spec.rb
+++ b/spec/functions/fqdn_rotate_spec.rb
@@ -21,6 +21,18 @@ describe 'fqdn_rotate' do
expect(val1).to eq(val2)
end
+ it "allows extra arguments to control the random rotation on a single host" do
+ val1 = fqdn_rotate("abcdefg", :extra_identifier => [1, "different", "host"])
+ val2 = fqdn_rotate("abcdefg", :extra_identifier => [2, "different", "host"])
+ expect(val1).not_to eq(val2)
+ end
+
+ it "considers the same host and same extra arguments to have the same random rotation" do
+ val1 = fqdn_rotate("abcdefg", :extra_identifier => [1, "same", "host"])
+ val2 = fqdn_rotate("abcdefg", :extra_identifier => [1, "same", "host"])
+ expect(val1).to eq(val2)
+ end
+
it "should rotate a string to give different values on different hosts" do
val1 = fqdn_rotate("abcdefg", :host => 'one')
val2 = fqdn_rotate("abcdefg", :host => 'two')
@@ -51,11 +63,13 @@ describe 'fqdn_rotate' do
def fqdn_rotate(value, args = {})
host = args[:host] || '127.0.0.1'
+ extra = args[:extra_identifier] || []
# workaround not being able to use let(:facts) because some tests need
# multiple different hostnames in one context
scope.stubs(:lookupvar).with("::fqdn").returns(host)
- scope.function_fqdn_rotate([value])
+ function_args = [value] + extra
+ scope.function_fqdn_rotate(function_args)
end
end