teams_connector 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ab23bea9187dbc4806aeb67be1e50fb1c4ab13e70cd970e1d271d868b334f167
4
- data.tar.gz: c5c2c7790793e887476e3695eca41e52d5b34d964b6a5a3cbe609d3aae4d2133
3
+ metadata.gz: 46a69bacfa1eb6a6b46616d436ff4b8c7890db602ce30c7f082e004e53e161c3
4
+ data.tar.gz: e98ac0f36a4fc64a1ec41f100ce6b062dc4b1ff4579a2094e2b6d49530b2b5f3
5
5
  SHA512:
6
- metadata.gz: 4d6590a7d1abc3e621ba30fa8fa542369f4963c11eb492cdbb256f3e8eeec721339de6acffec5d09ad723379b524642a28970a7d05551bd0478ec561b1f73222
7
- data.tar.gz: c95960a2a23486a648167444617a3c1caba767ac204500f95a39c041f974244ff492fff2b39745d990958c16db8430537674321aafb9680b3a4eac7643df968d
6
+ metadata.gz: f5183b39ff855da474a6417861020f44b2933a4e93fbc497207eab427802e88a33d41511ca30c90390741baf85f39a72b30804ddf78a302f1247e49bfb3edd69
7
+ data.tar.gz: b68b7311f4ba4f7fd2b37c99bdc960fef80d0c7528fdad6a06002820df60131c0f4b5ae1eb2f5f08a9d57e54c5a7673ee96add2d9aca7219c76301ccc5d27f14
data/CHANGES.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Teams Connector Changelog
2
2
 
3
+ 0.1.4
4
+ ---
5
+ - Add rudimentary testing method
6
+
3
7
  0.1.3
4
8
  ---
5
9
  - Allow sending a notification to multiple channels at the same time
data/README.md CHANGED
@@ -109,6 +109,21 @@ end
109
109
  TeamsConnector::Notification::AdaptiveCard.new(content: builder).deliver_later
110
110
  ```
111
111
 
112
+ ## Testing
113
+
114
+ To test TeamsConnector integration in your application you can use the `:testing` method.
115
+ Instead of performing real HTTP requests, an array in `TeamsConnector.testing.requests` is filled in chronological order.
116
+
117
+ The request elements have the following structure:
118
+ ```ruby
119
+ {
120
+ channel: :default,
121
+ template: :facts_card,
122
+ content: "rendered content",
123
+ time: Time.now
124
+ }
125
+ ```
126
+
112
127
  ## Development
113
128
 
114
129
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -19,7 +19,7 @@ module TeamsConnector
19
19
  end
20
20
 
21
21
  def method=(method)
22
- raise ArgumentError, "Method '#{method.to_s}' is not supported" unless [:direct, :sidekiq].include? method
22
+ raise ArgumentError, "Method '#{method.to_s}' is not supported" unless [:direct, :sidekiq, :testing].include? method
23
23
  raise ArgumentError, "Sidekiq is not available" if method == :sidekiq && !defined? Sidekiq
24
24
  @method = method
25
25
  end
@@ -27,6 +27,8 @@ module TeamsConnector
27
27
 
28
28
  if TeamsConnector.configuration.method == :sidekiq
29
29
  TeamsConnector::PostWorker.perform_async(url, content)
30
+ elsif TeamsConnector.configuration.method == :testing
31
+ TeamsConnector.testing.perform_request channel, @template, content
30
32
  else
31
33
  response = Net::HTTP.post(URI(url), content, { "Content-Type": "application/json" })
32
34
  response.value
@@ -0,0 +1,13 @@
1
+ module TeamsConnector
2
+ class Testing
3
+ attr_reader :requests
4
+
5
+ def initialize
6
+ @requests = []
7
+ end
8
+
9
+ def perform_request(channel, template, content)
10
+ @requests.push({channel: channel, content: content, template: template, time: Time.now})
11
+ end
12
+ end
13
+ end
@@ -1,3 +1,3 @@
1
1
  module TeamsConnector
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -7,7 +7,7 @@ require 'teams_connector/builder'
7
7
 
8
8
  module TeamsConnector
9
9
  class << self
10
- attr_accessor :configuration
10
+ attr_accessor :configuration, :testing
11
11
  end
12
12
 
13
13
  def self.configuration
@@ -22,6 +22,16 @@ module TeamsConnector
22
22
  yield configuration
23
23
  end
24
24
 
25
+ def self.testing
26
+ require 'teams_connector/testing'
27
+ @testing ||= Testing.new
28
+ end
29
+
30
+ def self.reset_testing
31
+ require 'teams_connector/testing'
32
+ @testing = Testing.new
33
+ end
34
+
25
35
  def self.project_root
26
36
  if defined?(Rails)
27
37
  return Rails.root
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teams_connector
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lucas Keune
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-11-17 00:00:00.000000000 Z
11
+ date: 2021-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -121,6 +121,7 @@ files:
121
121
  - lib/teams_connector/notification/adaptive_card.rb
122
122
  - lib/teams_connector/notification/message.rb
123
123
  - lib/teams_connector/post_worker.rb
124
+ - lib/teams_connector/testing.rb
124
125
  - lib/teams_connector/version.rb
125
126
  - teams_connector.gemspec
126
127
  - templates/teams_connector/adaptive_card.json.erb