gds_zendesk 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGELOG.md ADDED
@@ -0,0 +1,3 @@
1
+ # 1.0.3
2
+
3
+ * Update the `zendesk_api` library to the latest version (1.5.1)
data/gds_zendesk.gemspec CHANGED
@@ -18,11 +18,10 @@ Gem::Specification.new do |gem|
18
18
  gem.require_paths = ["lib"]
19
19
 
20
20
  gem.add_dependency 'null_logger', '0.0.1'
21
- gem.add_dependency 'zendesk_api', '1.0.2'
21
+ gem.add_dependency 'zendesk_api', '1.5.1'
22
22
 
23
23
  gem.add_development_dependency 'rake', '10.0.3'
24
- gem.add_development_dependency 'rspec', '2.12.0'
24
+ gem.add_development_dependency 'rspec', '3.1.0'
25
25
  gem.add_development_dependency 'gem_publisher', '1.2.0'
26
- gem.add_development_dependency 'faraday_middleware', '0.8.8' # had to pin for gem resolution to work on Jenkins
27
- gem.add_development_dependency "webmock", '1.9.0'
26
+ gem.add_development_dependency "webmock", '1.18.0'
28
27
  end
@@ -0,0 +1,20 @@
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ VENV_PATH="${HOME}/venv/${JOB_NAME}"
5
+
6
+ [ -x ${VENV_PATH}/bin/pip ] || virtualenv ${VENV_PATH}
7
+ . ${VENV_PATH}/bin/activate
8
+
9
+ pip install -q ghtools
10
+
11
+ REPO="alphagov/gds_zendesk"
12
+ gh-status "$REPO" "$GIT_COMMIT" pending -d "\"Build #${BUILD_NUMBER} is running on Jenkins\"" -u "$BUILD_URL" >/dev/null
13
+
14
+ if ./jenkins.sh; then
15
+ gh-status "$REPO" "$GIT_COMMIT" success -d "\"Build #${BUILD_NUMBER} succeeded on Jenkins\"" -u "$BUILD_URL" >/dev/null
16
+ exit 0
17
+ else
18
+ gh-status "$REPO" "$GIT_COMMIT" failure -d "\"Build #${BUILD_NUMBER} failed on Jenkins\"" -u "$BUILD_URL" >/dev/null
19
+ exit 1
20
+ fi
@@ -4,39 +4,43 @@ module GDSZendesk
4
4
  module TestHelpers
5
5
  def zendesk_has_no_user_with_email(email)
6
6
  stub_request(:get, "#{zendesk_endpoint}/users/search?query=#{email}").
7
- to_return(body: {users: [], previous_page: nil, next_page: nil, count: 0}.to_json,
7
+ to_return(body: {users: [], previous_page: nil, next_page: nil, count: 0}.to_json,
8
8
  headers: {'Content-Type' => 'application/json'})
9
9
  end
10
10
 
11
11
  def zendesk_has_user(user_details)
12
12
  stub_request(:get, "#{zendesk_endpoint}/users/search?query=#{user_details[:email]}").
13
- to_return(body: {users: [user_details], previous_page: nil, next_page: nil, count: 1}.to_json,
13
+ to_return(body: {users: [user_details], previous_page: nil, next_page: nil, count: 1}.to_json,
14
14
  headers: {'Content-Type' => 'application/json'})
15
15
  end
16
16
 
17
17
  def stub_zendesk_user_creation(user_properties = nil)
18
18
  stub = stub_http_request(:post, "#{zendesk_endpoint}/users")
19
19
  stub.with(body: {user: user_properties}) unless user_properties.nil?
20
- stub.to_return(status: 201, body: { user: { id: 12345, name: "abc" }})
20
+ stub.to_return(status: 201, body: { user: { id: 12345, name: "abc" }}.to_json,
21
+ headers: {'Content-Type' => 'application/json'})
21
22
  end
22
23
 
23
24
  def stub_zendesk_ticket_creation(ticket_properties = nil)
24
25
  stub = stub_http_request(:post, "#{zendesk_endpoint}/tickets")
25
26
  stub.with(body: {ticket: ticket_properties}) unless ticket_properties.nil?
26
- stub.to_return(status: 201, body: { ticket: { id: 12345 }})
27
+ stub.to_return(status: 201, body: { ticket: { id: 12345 }}.to_json,
28
+ headers: {'Content-Type' => 'application/json'})
27
29
  end
28
30
 
29
31
  def stub_zendesk_ticket_creation_with_body(body)
30
32
  stub_http_request(:post, "#{zendesk_endpoint}/tickets").
31
33
  with(body: body).
32
- to_return(status: 201, body: { ticket: { id: 12345 }})
34
+ to_return(status: 201, body: { ticket: { id: 12345 }}.to_json,
35
+ headers: {'Content-Type' => 'application/json'})
33
36
  end
34
37
 
35
38
  def stub_zendesk_user_update(user_id, user_properties)
36
39
  stub_http_request(:put, "#{zendesk_endpoint}/users/#{user_id}").
37
40
  with(body: {user: user_properties}).
38
- to_return(status: 201, body: { user: { id: 12345, name: "abc" }})
39
- end
41
+ to_return(status: 201, body: { user: { id: 12345, name: "abc" }}.to_json,
42
+ headers: {'Content-Type' => 'application/json'})
43
+ end
40
44
 
41
45
  def zendesk_is_unavailable
42
46
  stub_request(:any, /#{zendesk_endpoint}\/.*/).to_return(status: 503)
@@ -64,4 +68,4 @@ module GDSZendesk
64
68
  body: { ticket: hash_including(requester: hash_including(requester_options)) }, times: 1
65
69
  end
66
70
  end
67
- end
71
+ end
@@ -1,3 +1,3 @@
1
1
  module GDSZendesk
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
@@ -16,23 +16,23 @@ module GDSZendesk
16
16
  end
17
17
 
18
18
  it "should raise an error if no username is provided" do
19
- lambda { Client.new(password: "abc") }.should raise_error(ArgumentError,
19
+ expect { Client.new(password: "abc") }.to raise_error(ArgumentError,
20
20
  /username not provided/)
21
21
  end
22
22
 
23
23
  it "should raise an error if no password is provided" do
24
- lambda { Client.new(username: "abc") }.should raise_error(ArgumentError,
24
+ expect { Client.new(username: "abc") }.to raise_error(ArgumentError,
25
25
  /password not provided/)
26
26
  end
27
27
 
28
28
  it "should use a null logger if no logger has been provided" do
29
- client.config_options[:logger].should be_an_instance_of(NullLogger::Logger)
29
+ expect(client.config_options[:logger]).to be_an_instance_of(NullLogger::Logger)
30
30
  end
31
31
 
32
32
  it "should use the passed logger if one has been provided" do
33
- custom_logger = stub("logger")
33
+ custom_logger = double("logger")
34
34
 
35
- client(logger: custom_logger).config_options[:logger].should eq(custom_logger)
35
+ expect(client(logger: custom_logger).config_options[:logger]).to eq(custom_logger)
36
36
  end
37
37
 
38
38
  it "should raise tickets in Zendesk" do
@@ -41,7 +41,7 @@ module GDSZendesk
41
41
 
42
42
  client.ticket.create(some: "data")
43
43
 
44
- post_stub.should have_been_requested
44
+ expect(post_stub).to have_been_requested
45
45
  end
46
46
  end
47
47
  end
@@ -6,25 +6,25 @@ module GDSZendesk
6
6
  let(:ticket_options) { { opt1: "val1" } }
7
7
 
8
8
  it "should log the ticket details" do
9
- logger = stub("logger")
10
- logger.should_receive(:info).with("Zendesk ticket created: #{ticket_options.inspect}")
9
+ logger = double("logger")
10
+ expect(logger).to receive(:info).with("Zendesk ticket created: #{ticket_options.inspect}")
11
11
 
12
12
  client = DummyClient.new(logger: logger)
13
13
  client.ticket.create!(ticket_options)
14
14
  end
15
15
 
16
16
  it "can simulate failures, triggered by a specific description or comment" do
17
- logger = mock("logger")
17
+ logger = double("logger")
18
18
  client = DummyClient.new(logger: logger)
19
- logger.should_receive(:info).with(/Simulating Zendesk ticket creation failure/).twice
19
+ expect(logger).to receive(:info).with(/Simulating Zendesk ticket creation failure/).twice
20
20
 
21
- lambda {
21
+ expect {
22
22
  client.ticket.create!(description: "break_zendesk")
23
- }.should raise_error(ZendeskAPI::Error::RecordInvalid)
24
-
25
- lambda {
23
+ }.to raise_error(ZendeskAPI::Error::RecordInvalid)
24
+
25
+ expect {
26
26
  client.ticket.create!(comment: { value: "break_zendesk" })
27
- }.should raise_error(ZendeskAPI::Error::RecordInvalid)
27
+ }.to raise_error(ZendeskAPI::Error::RecordInvalid)
28
28
  end
29
29
  end
30
30
 
@@ -32,8 +32,8 @@ module GDSZendesk
32
32
  let(:created_user_options) { { email: "a@b.com" } }
33
33
 
34
34
  it "should log the user details" do
35
- logger = stub("logger")
36
- logger.should_receive(:info).with("Zendesk user created: #{created_user_options.inspect}")
35
+ logger = double("logger")
36
+ expect(logger).to receive(:info).with("Zendesk user created: #{created_user_options.inspect}")
37
37
 
38
38
  client = DummyClient.new(logger: logger)
39
39
  client.users.create!(created_user_options)
@@ -18,15 +18,15 @@ module GDSZendesk
18
18
  context "creating/updating a user" do
19
19
  it "should update the phone and job title if those are set" do
20
20
  stub_post = stub_zendesk_user_update(123, phone: "12345", details: "Job title: Developer")
21
- users.create_or_update_user(stub("requested user", email: "test@test.com", phone: "12345", job: "Developer"))
21
+ users.create_or_update_user(double("requested user", email: "test@test.com", phone: "12345", job: "Developer"))
22
22
 
23
- stub_post.should have_been_requested
23
+ expect(stub_post).to have_been_requested
24
24
  end
25
25
  end
26
26
 
27
27
  it "should know whether the user is suspended or not" do
28
28
  zendesk_has_user(email: "test@test.com", id: 123, suspended: "true")
29
- users.suspended?("test@test.com").should be_true
29
+ expect(users.suspended?("test@test.com")).to be_truthy
30
30
  end
31
31
  end
32
32
 
@@ -36,7 +36,7 @@ module GDSZendesk
36
36
  end
37
37
 
38
38
  it "should not be suspended" do
39
- users.should_not be_suspended("test@test.com")
39
+ expect(users).to_not be_suspended("test@test.com")
40
40
  end
41
41
 
42
42
  context "creating/updating" do
@@ -48,13 +48,13 @@ module GDSZendesk
48
48
  phone: "12345",
49
49
  details: "Job title: Developer"
50
50
  )
51
- user_being_requested = stub("requested user",
51
+ user_being_requested = double("requested user",
52
52
  name: "Abc", email: "test@test.com", phone: "12345", job: "Developer")
53
53
 
54
54
  users.create_or_update_user(user_being_requested)
55
- stub_post.should have_been_requested
55
+ expect(stub_post).to have_been_requested
56
56
  end
57
57
  end
58
58
  end
59
59
  end
60
- end
60
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gds_zendesk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
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: 2014-01-06 00:00:00.000000000 Z
12
+ date: 2014-12-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: null_logger
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - '='
36
36
  - !ruby/object:Gem::Version
37
- version: 1.0.2
37
+ version: 1.5.1
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - '='
44
44
  - !ruby/object:Gem::Version
45
- version: 1.0.2
45
+ version: 1.5.1
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: rake
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -66,7 +66,7 @@ dependencies:
66
66
  requirements:
67
67
  - - '='
68
68
  - !ruby/object:Gem::Version
69
- version: 2.12.0
69
+ version: 3.1.0
70
70
  type: :development
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
@@ -74,7 +74,7 @@ dependencies:
74
74
  requirements:
75
75
  - - '='
76
76
  - !ruby/object:Gem::Version
77
- version: 2.12.0
77
+ version: 3.1.0
78
78
  - !ruby/object:Gem::Dependency
79
79
  name: gem_publisher
80
80
  requirement: !ruby/object:Gem::Requirement
@@ -91,22 +91,6 @@ dependencies:
91
91
  - - '='
92
92
  - !ruby/object:Gem::Version
93
93
  version: 1.2.0
94
- - !ruby/object:Gem::Dependency
95
- name: faraday_middleware
96
- requirement: !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - '='
100
- - !ruby/object:Gem::Version
101
- version: 0.8.8
102
- type: :development
103
- prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - '='
108
- - !ruby/object:Gem::Version
109
- version: 0.8.8
110
94
  - !ruby/object:Gem::Dependency
111
95
  name: webmock
112
96
  requirement: !ruby/object:Gem::Requirement
@@ -114,7 +98,7 @@ dependencies:
114
98
  requirements:
115
99
  - - '='
116
100
  - !ruby/object:Gem::Version
117
- version: 1.9.0
101
+ version: 1.18.0
118
102
  type: :development
119
103
  prerelease: false
120
104
  version_requirements: !ruby/object:Gem::Requirement
@@ -122,7 +106,7 @@ dependencies:
122
106
  requirements:
123
107
  - - '='
124
108
  - !ruby/object:Gem::Version
125
- version: 1.9.0
109
+ version: 1.18.0
126
110
  description: Client and models for communicating with Zendesk
127
111
  email:
128
112
  - benilov@gmail.com
@@ -131,12 +115,14 @@ extensions: []
131
115
  extra_rdoc_files: []
132
116
  files:
133
117
  - .gitignore
118
+ - CHANGELOG.md
134
119
  - Gemfile
135
120
  - LICENCE.txt
136
121
  - README.md
137
122
  - Rakefile
138
123
  - gds_zendesk.gemspec
139
124
  - jenkins.sh
125
+ - jenkins_branches.sh
140
126
  - lib/gds_zendesk.rb
141
127
  - lib/gds_zendesk/client.rb
142
128
  - lib/gds_zendesk/dummy_client.rb
@@ -163,7 +149,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
163
149
  version: '0'
164
150
  segments:
165
151
  - 0
166
- hash: 4508364526887278478
152
+ hash: -991943749347888154
167
153
  required_rubygems_version: !ruby/object:Gem::Requirement
168
154
  none: false
169
155
  requirements:
@@ -172,7 +158,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
172
158
  version: '0'
173
159
  segments:
174
160
  - 0
175
- hash: 4508364526887278478
161
+ hash: -991943749347888154
176
162
  requirements: []
177
163
  rubyforge_project:
178
164
  rubygems_version: 1.8.23