gds_zendesk 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
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