Skip to content

Commit 8d3b465

Browse files
updtate authorize_url method, add extra test
1 parent 292ab6e commit 8d3b465

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

lib/hubspot/oauth_helper.rb

+3-2
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,19 @@ module Hubspot
22
class OAuthHelper
33
AUTHORIZE_URL = 'https://app.hubspot.com/oauth/authorize'.freeze
44
class << self
5-
def authorize_url(client_id, redirect_uri, scopes = nil, optional_scopes = nil, state = "")
5+
def authorize_url(client_id, redirect_uri, scopes = nil, optional_scopes = nil, state = nil)
66
query_params = {
77
"client_id" => client_id,
88
"redirect_uri" => redirect_uri
99
}
1010

1111
query_params["scope"] = scopes.join(' ') if scopes
1212
query_params["optional_scope"] = optional_scopes.join(' ') if optional_scopes
13+
query_params['state'] ||= state if state
1314

1415
params = URI.encode_www_form(query_params)
1516

16-
"#{AUTHORIZE_URL}?#{params}&state=#{state}"
17+
"#{AUTHORIZE_URL}?#{params}"
1718
end
1819
end
1920
end

spec/helpers/authorize_url_spec.rb

+23-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
client_id: data[:client_id],
2121
redirect_uri: data[:redirect_uri]
2222
}
23-
expected_url = "#{AUTHORIZE_URL}?#{URI.encode_www_form(expected_params)}&state="
23+
expected_url = "#{AUTHORIZE_URL}?#{URI.encode_www_form(expected_params)}"
2424

2525
result = Hubspot::OAuthHelper.authorize_url(data[:client_id], data[:redirect_uri])
2626

@@ -33,7 +33,7 @@
3333
redirect_uri: data[:redirect_uri],
3434
scope: data[:scope].join(' ')
3535
}
36-
expected_url = "#{AUTHORIZE_URL}?#{URI.encode_www_form(expected_params)}&state="
36+
expected_url = "#{AUTHORIZE_URL}?#{URI.encode_www_form(expected_params)}"
3737

3838
result = Hubspot::OAuthHelper.authorize_url(data[:client_id], data[:redirect_uri], data[:scope])
3939

@@ -46,10 +46,30 @@
4646
redirect_uri: data[:redirect_uri],
4747
scope: data[:optional_scope].join(' ')
4848
}
49-
expected_url = "#{AUTHORIZE_URL}?#{URI.encode_www_form(expected_params)}&state="
49+
expected_url = "#{AUTHORIZE_URL}?#{URI.encode_www_form(expected_params)}"
5050

5151
result = Hubspot::OAuthHelper.authorize_url(data[:client_id], data[:redirect_uri], data[:optional_scope])
5252

53+
expect(result).to eq(expected_url)
54+
end
55+
it 'returns the correct URL' do
56+
expected_params = {
57+
client_id: data[:client_id],
58+
redirect_uri: data[:redirect_uri],
59+
scope: data[:scope].join(' '),
60+
optional_scope: data[:optional_scope].join(' '),
61+
state: "test_state"
62+
}
63+
expected_url = "#{AUTHORIZE_URL}?#{URI.encode_www_form(expected_params)}"
64+
65+
result = Hubspot::OAuthHelper.authorize_url(
66+
data[:client_id],
67+
data[:redirect_uri],
68+
data[:scope],
69+
data[:optional_scope],
70+
"test_state"
71+
)
72+
5373
expect(result).to eq(expected_url)
5474
end
5575
end

0 commit comments

Comments
 (0)