spec/lib/flapjack/data/contact_spec.rb in flapjack-0.7.35 vs spec/lib/flapjack/data/contact_spec.rb in flapjack-0.8.0
- old
+ new
@@ -68,87 +68,95 @@
:redis => @redis)
end
it "returns a list of all contacts" do
contacts = Flapjack::Data::Contact.all(:redis => @redis)
- contacts.should_not be_nil
- contacts.should be_an(Array)
- contacts.should have(2).contacts
- contacts[0].name.should == 'Jane Janeley'
- contacts[1].name.should == 'John Johnson'
+ expect(contacts).not_to be_nil
+ expect(contacts).to be_an(Array)
+ expect(contacts.size).to eq(2)
+ expect(contacts[0].name).to eq('Jane Janeley')
+ expect(contacts[1].name).to eq('John Johnson')
end
it "finds a contact by id" do
contact = Flapjack::Data::Contact.find_by_id('c362', :redis => @redis)
- contact.should_not be_nil
- contact.name.should == "John Johnson"
+ expect(contact).not_to be_nil
+ expect(contact.name).to eq("John Johnson")
end
+ it "finds contacts by ids" do
+ contacts = Flapjack::Data::Contact.find_by_ids(['c362','c363_a-f@42%*'], :redis => @redis)
+ expect(contacts).not_to be_nil
+ expect(contacts.length).to eq(2)
+ contact = contacts.first
+ expect(contact.name).to eq("John Johnson")
+ end
+
it "adds a contact with the same id as an existing one, clears notification rules" do
contact = Flapjack::Data::Contact.find_by_id('c363_a-f@42%*', :redis => @redis)
- contact.should_not be_nil
+ expect(contact).not_to be_nil
contact.add_notification_rule(notification_rule_data)
nr = contact.notification_rules
- nr.should_not be_nil
- nr.should have(2).notification_rules
+ expect(nr).not_to be_nil
+ expect(nr.size).to eq(2)
Flapjack::Data::Contact.add({'id' => 'c363_a-f@42%*',
'first_name' => 'Smithy',
'last_name' => 'Smith',
'email' => 'smithys@example.com'},
:redis => @redis)
contact = Flapjack::Data::Contact.find_by_id('c363_a-f@42%*', :redis => @redis)
- contact.should_not be_nil
- contact.name.should == 'Smithy Smith'
+ expect(contact).not_to be_nil
+ expect(contact.name).to eq('Smithy Smith')
rules = contact.notification_rules
- rules.should have(1).notification_rule
- nr.map(&:id).should_not include(rules.first.id)
+ expect(rules.size).to eq(1)
+ expect(nr.map(&:id)).not_to include(rules.first.id)
end
it "updates a contact and clears their media settings" do
contact = Flapjack::Data::Contact.find_by_id('c363_a-f@42%*', :redis => @redis)
contact.update('media' => {})
- contact.media.should be_empty
+ expect(contact.media).to be_empty
end
it "updates a contact, does not clear notification rules" do
contact = Flapjack::Data::Contact.find_by_id('c363_a-f@42%*', :redis => @redis)
- contact.should_not be_nil
+ expect(contact).not_to be_nil
contact.add_notification_rule(notification_rule_data)
nr1 = contact.notification_rules
- nr1.should_not be_nil
- nr1.should have(2).notification_rules
+ expect(nr1).not_to be_nil
+ expect(nr1.size).to eq(2)
contact.update('first_name' => 'John',
'last_name' => 'Smith',
'email' => 'johns@example.com')
- contact.name.should == 'John Smith'
+ expect(contact.name).to eq('John Smith')
nr2 = contact.notification_rules
- nr2.should_not be_nil
- nr2.should have(2).notification_rules
- nr1.map(&:id).should == nr2.map(&:id)
+ expect(nr2).not_to be_nil
+ expect(nr2.size).to eq(2)
+ expect(nr1.map(&:id)).to eq(nr2.map(&:id))
end
it "adds a notification rule for a contact" do
contact = Flapjack::Data::Contact.find_by_id('c363_a-f@42%*', :redis => @redis)
- contact.should_not be_nil
+ expect(contact).not_to be_nil
expect {
contact.add_notification_rule(notification_rule_data)
}.to change { contact.notification_rules.size }.from(1).to(2)
end
it "removes a notification rule from a contact" do
contact = Flapjack::Data::Contact.find_by_id('c363_a-f@42%*', :redis => @redis)
- contact.should_not be_nil
+ expect(contact).not_to be_nil
rule = contact.add_notification_rule(notification_rule_data)
expect {
contact.delete_notification_rule(rule)
@@ -159,33 +167,33 @@
contact = Flapjack::Data::Contact.find_by_id('c363_a-f@42%*', :redis => @redis)
@redis.smembers("contact_notification_rules:c363_a-f@42%*").each do |rule_id|
@redis.srem("contact_notification_rules:c363_a-f@42%*", rule_id)
end
- @redis.smembers("contact_notification_rules:c363_a-f@42%*").should be_empty
+ expect(@redis.smembers("contact_notification_rules:c363_a-f@42%*")).to be_empty
rules = contact.notification_rules
- rules.should have(1).rule
+ expect(rules.size).to eq(1)
rule = rules.first
[:entities, :tags, :time_restrictions,
:warning_media, :critical_media,
:warning_blackhole, :critical_blackhole].each do |k|
- rule.send(k).should == general_notification_rule_data[k]
+ expect(rule.send(k)).to eq(general_notification_rule_data[k])
end
end
it "creates a general notification rule for a pre-existing contact if the existing general one was changed" do
contact = Flapjack::Data::Contact.find_by_id('c363_a-f@42%*', :redis => @redis)
rules = contact.notification_rules
- rules.should have(1).notification_rule
+ expect(rules.size).to eq(1)
rule = rules.first
rule.update(notification_rule_data)
rules = contact.notification_rules
- rules.should have(2).notification_rules
- rules.select {|r| r.is_specific? }.should have(1).rule
+ expect(rules.size).to eq(2)
+ expect(rules.select {|r| r.is_specific? }.size).to eq(1)
end
it "deletes a contact by id, including linked entities, checks, tags and notification rules" do
contact = Flapjack::Data::Contact.find_by_id('c362', :redis => @redis)
contact.add_tags('admin')
@@ -221,113 +229,113 @@
ec.update_state('ok', :timestamp => t, :summary => 'a')
ec.last_update = t
contact = Flapjack::Data::Contact.find_by_id('c362', :redis => @redis)
eandcs = contact.entities(:checks => true)
- eandcs.should_not be_nil
- eandcs.should be_an(Array)
- eandcs.should have(1).entity_and_checks
+ expect(eandcs).not_to be_nil
+ expect(eandcs).to be_an(Array)
+ expect(eandcs.size).to eq(1)
eandc = eandcs.first
- eandc.should be_a(Hash)
+ expect(eandc).to be_a(Hash)
entity = eandc[:entity]
- entity.name.should == entity_name
+ expect(entity.name).to eq(entity_name)
checks = eandc[:checks]
- checks.should be_a(Set)
- checks.should have(1).check
- checks.should include('PING')
+ expect(checks).to be_a(Set)
+ expect(checks.size).to eq(1)
+ expect(checks).to include('PING')
end
it "returns pagerduty credentials for a contact" do
contact = Flapjack::Data::Contact.find_by_id('c362', :redis => @redis)
credentials = contact.pagerduty_credentials
- credentials.should_not be_nil
- credentials.should be_a(Hash)
- credentials.should == {'service_key' => '123456789012345678901234',
+ expect(credentials).not_to be_nil
+ expect(credentials).to be_a(Hash)
+ expect(credentials).to eq({'service_key' => '123456789012345678901234',
'subdomain' => 'flpjck',
'username' => 'flapjack',
- 'password' => 'very_secure'}
+ 'password' => 'very_secure'})
end
it "sets pagerduty credentials for a contact" do
contact = Flapjack::Data::Contact.find_by_id('c362', :redis => @redis)
contact.set_pagerduty_credentials('service_key' => '567890123456789012345678',
'subdomain' => 'eggs',
'username' => 'flapjack',
'password' => 'tomato')
- @redis.hget('contact_media:c362', 'pagerduty').should == '567890123456789012345678'
- @redis.hgetall('contact_pagerduty:c362').should == {
+ expect(@redis.hget('contact_media:c362', 'pagerduty')).to eq('567890123456789012345678')
+ expect(@redis.hgetall('contact_pagerduty:c362')).to eq({
'subdomain' => 'eggs',
'username' => 'flapjack',
'password' => 'tomato'
- }
+ })
end
it "sets the interval for a contact's media" do
contact = Flapjack::Data::Contact.find_by_id('c362', :redis => @redis)
contact.set_interval_for_media('email', 42)
email_interval_raw = @redis.hget("contact_media_intervals:#{contact.id}", 'email')
- email_interval_raw.should == '42'
+ expect(email_interval_raw).to eq('42')
end
it "returns the interval for a contact's media" do
contact = Flapjack::Data::Contact.find_by_id('c363_a-f@42%*', :redis => @redis)
email_interval = contact.interval_for_media('email')
- email_interval.should == 60
+ expect(email_interval).to eq(60)
end
it "returns default 15 mins for interval for a contact's media that has no set interval" do
contact = Flapjack::Data::Contact.find_by_id('c362', :redis => @redis)
email_interval = contact.interval_for_media('email')
- email_interval.should == 900
+ expect(email_interval).to eq(900)
end
it "removes the interval for a contact's media" do
contact = Flapjack::Data::Contact.find_by_id('c363_a-f@42%*', :redis => @redis)
contact.set_interval_for_media('email', nil)
email_interval_raw = @redis.hget("contact_media_intervals:#{contact.id}", 'email')
- email_interval_raw.should be_nil
+ expect(email_interval_raw).to be_nil
end
it "sets the rollup threshold for a contact's media" do
contact = Flapjack::Data::Contact.find_by_id('c362', :redis => @redis)
email_rollup_threshold = contact.set_rollup_threshold_for_media('email', 3)
email_rollup_threshold_raw = @redis.hget("contact_media_rollup_thresholds:#{contact.id}", 'email')
- email_rollup_threshold_raw.should == '3'
+ expect(email_rollup_threshold_raw).to eq('3')
end
it "returns the rollup threshold for a contact's media" do
contact = Flapjack::Data::Contact.find_by_id('c363_a-f@42%*', :redis => @redis)
email_rollup_threshold = contact.rollup_threshold_for_media('email')
- email_rollup_threshold.should_not be_nil
- email_rollup_threshold.should be_a(Integer)
- email_rollup_threshold.should == 5
+ expect(email_rollup_threshold).not_to be_nil
+ expect(email_rollup_threshold).to be_a(Integer)
+ expect(email_rollup_threshold).to eq(5)
end
it "removes the rollup threshold for a contact's media" do
contact = Flapjack::Data::Contact.find_by_id('c363_a-f@42%*', :redis => @redis)
email_rollup_threshold = contact.set_rollup_threshold_for_media('email', nil)
email_rollup_threshold_raw = @redis.hget("contact_media_rollup_thresholds:#{contact.id}", 'email')
- email_rollup_threshold_raw.should be_nil
+ expect(email_rollup_threshold_raw).to be_nil
end
it "sets the address for a contact's media" do
contact = Flapjack::Data::Contact.find_by_id('c362', :redis => @redis)
contact.set_address_for_media('email', 'spongebob@example.com')
email_address_raw = @redis.hget("contact_media:#{contact.id}", 'email')
- email_address_raw.should == 'spongebob@example.com'
+ expect(email_address_raw).to eq('spongebob@example.com')
end
it "removes a contact's media" do
contact = Flapjack::Data::Contact.find_by_id('c363_a-f@42%*', :redis => @redis)
contact.remove_media('email')
email_address_raw = @redis.hget("contac_media:#{contact.id}", 'email')
- email_address_raw.should be_nil
+ expect(email_address_raw).to be_nil
email_rollup_threshold_raw = @redis.hget("contact_media_rollup_thresholds:#{contact.id}", 'email')
- email_rollup_threshold_raw.should be_nil
+ expect(email_rollup_threshold_raw).to be_nil
email_interval_raw = @redis.hget("contact_media_intervals:#{contact.id}", 'email')
- email_interval_raw.should be_nil
+ expect(email_interval_raw).to be_nil
end
end