Involve Slack attachments in agent tests.

ssube 9 years ago
parent
commit
27eeaa603f
1 changed files with 15 additions and 2 deletions
  1. 15 2
      spec/models/agents/slack_agent_spec.rb

+ 15 - 2
spec/models/agents/slack_agent_spec.rb

@@ -2,11 +2,14 @@ require 'spec_helper'
2 2
 
3 3
 describe Agents::SlackAgent do
4 4
   before(:each) do
5
+    @fallback = "Its going to rain"
6
+    @attachments = [{'fallback' => "{{fallback}}"}]
5 7
     @valid_params = {
6 8
                       'webhook_url' => 'https://hooks.slack.com/services/random1/random2/token',
7 9
                       'channel' => '#random',
8 10
                       'username' => "{{username}}",
9
-                      'message' => "{{message}}"
11
+                      'message' => "{{message}}",
12
+                      'attachments' => @attachments
10 13
                     }
11 14
 
12 15
     @checker = Agents::SlackAgent.new(:name => "slacker", :options => @valid_params)
@@ -15,7 +18,7 @@ describe Agents::SlackAgent do
15 18
 
16 19
     @event = Event.new
17 20
     @event.agent = agents(:bob_weather_agent)
18
-    @event.payload = { :channel => '#random', :message => 'Looks like its going to rain', username: "Huggin user"}
21
+    @event.payload = { :channel => '#random', :message => 'Looks like its going to rain', username: "Huggin user", fallback: @fallback}
19 22
     @event.save!
20 23
   end
21 24
 
@@ -44,12 +47,22 @@ describe Agents::SlackAgent do
44 47
       @checker.options['icon_emoji'] = "something"
45 48
       expect(@checker).to be_valid
46 49
     end
50
+
51
+    it "should allow attachments" do
52
+      @checker.options['attachments'] = nil
53
+      expect(@checker).to be_valid
54
+      @checker.options['attachments'] = []
55
+      expect(@checker).to be_valid
56
+      @checker.options['attachments'] = @attachments
57
+      expect(@checker).to be_valid
58
+    end
47 59
   end
48 60
 
49 61
   describe "#receive" do
50 62
     it "receive an event without errors" do
51 63
       any_instance_of(Slack::Notifier) do |obj|
52 64
         mock(obj).ping(@event.payload[:message],
65
+                       attachments: [{'fallback' => @fallback}],
53 66
                        channel: @event.payload[:channel],
54 67
                        username: @event.payload[:username]
55 68
                       )