gds-api-adapters 7.14.0 → 7.15.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -17,6 +17,10 @@ class GdsApi::Support < GdsApi::Base
17
17
  post_json!("#{base_url}/anonymous_feedback/long_form_contacts", { :long_form_contact => request_details }, options[:headers] || {})
18
18
  end
19
19
 
20
+ def create_transactions(request_details, options = {})
21
+ post_json!("#{base_url}/anonymous_feedback/transactions", { :transactions => request_details }, options[:headers] || {})
22
+ end
23
+
20
24
  private
21
25
  def base_url
22
26
  endpoint
@@ -27,6 +27,12 @@ module GdsApi
27
27
  post_stub.to_return(:status => 201)
28
28
  end
29
29
 
30
+ def stub_support_transactions_creation(request_details = nil)
31
+ post_stub = stub_http_request(:post, "#{SUPPORT_ENDPOINT}/anonymous_feedback/transactions")
32
+ post_stub.with(:body => {"transactions" => request_details}) unless request_details.nil?
33
+ post_stub.to_return(:status => 201)
34
+ end
35
+
30
36
  def support_isnt_available
31
37
  stub_request(:post, /#{SUPPORT_ENDPOINT}\/.*/).to_return(:status => 503)
32
38
  end
@@ -1,3 +1,3 @@
1
1
  module GdsApi
2
- VERSION = '7.14.0'
2
+ VERSION = '7.15.0'
3
3
  end
@@ -99,4 +99,34 @@ describe GdsApi::Support do
99
99
 
100
100
  assert_raises(GdsApi::HTTPErrorResponse) { @api.create_problem_report({}) }
101
101
  end
102
+
103
+ it "can pass transaction feedback" do
104
+ request_details = {"transaction-completed-values"=>"1", "details"=>"abc"}
105
+
106
+ stub_post = stub_request(:post, "#{@base_api_url}/anonymous_feedback/transactions").
107
+ with(:body => {"transactions" => request_details}.to_json).
108
+ to_return(:status => 201)
109
+
110
+ @api.create_transactions(request_details)
111
+
112
+ assert_requested(stub_post)
113
+ end
114
+
115
+ it "can add a custom header onto the transaction feedback to the support app" do
116
+ stub_request(:post, "#{@base_api_url}/anonymous_feedback/transactions")
117
+
118
+ @api.create_transactions({}, headers: { "X-Varnish" => "12345"})
119
+
120
+ assert_requested(:post, %r{/transactions}) do |request|
121
+ request.headers["X-Varnish"] == "12345"
122
+ end
123
+ end
124
+
125
+ it "throws an exception when the support app isn't available" do
126
+ support_isnt_available
127
+
128
+ assert_raises(GdsApi::HTTPErrorResponse) { @api.create_transactions({}) }
129
+ end
130
+
131
+
102
132
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gds-api-adapters
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.14.0
4
+ version: 7.15.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-23 00:00:00.000000000 Z
12
+ date: 2013-10-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: plek
@@ -340,7 +340,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
340
340
  version: '0'
341
341
  segments:
342
342
  - 0
343
- hash: -758637662694178891
343
+ hash: 988402629754510037
344
344
  required_rubygems_version: !ruby/object:Gem::Requirement
345
345
  none: false
346
346
  requirements:
@@ -349,7 +349,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
349
349
  version: '0'
350
350
  segments:
351
351
  - 0
352
- hash: -758637662694178891
352
+ hash: 988402629754510037
353
353
  requirements: []
354
354
  rubyforge_project:
355
355
  rubygems_version: 1.8.23