Skip to content
This repository was archived by the owner on Jan 11, 2022. It is now read-only.

Commit d007bdd

Browse files
committed
test .graph
1 parent b0609b8 commit d007bdd

1 file changed

Lines changed: 71 additions & 1 deletion

File tree

test/authz_test.coffee

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,4 +171,74 @@ describe 'conjur_authz', ()->
171171
assert !err
172172
assert !allowed
173173
done()
174-
174+
175+
describe "#graph", ->
176+
defaultOpts = { ancestors: true, descendants: true }
177+
defaultGraph = [['parent', 'child']]
178+
defaultRoles = ['a', 'b']
179+
stubGet = (result, roles, options, graph) ->
180+
options ||= defaultOpts
181+
graph ||= defaultGraph
182+
roles ||= defaultRoles
183+
gently.expect g.rest, 'get', (url, opts) ->
184+
assert.equal url, g.format('http://example.com/%s/roles?%s&ancestors=%s&descendants=%s%s',
185+
account, g.arrayParam('roles', roles),
186+
options.ancestors, options.descendants, if options.fromRole then "&from_role=" + g.pathEscape(options.fromRole) else '' );
187+
{
188+
on: (arg, callback) ->
189+
assert.equal arg, 'complete'
190+
if result == 'error'
191+
callback new Error('error')
192+
else if result == 'errorCode'
193+
callback null, {statusCode: 500}
194+
else
195+
callback graph, {statusCode: 200}
196+
}
197+
198+
stubGetSuccess = stubGet.bind(null, 'success')
199+
stubGetError = stubGet.bind(null, 'error')
200+
stubGetFailure = stubGet.bind(null, 'errorCode')
201+
202+
callRoleGraph = (roleIds, options, callback) ->
203+
conjur_authz.connect('http://example.com', token).graph account, roleIds, options, callback
204+
205+
206+
it 'accepts a string', (done) ->
207+
stubGetSuccess [ 'role' ]
208+
callRoleGraph 'role', defaultOpts, ->
209+
done()
210+
211+
it 'accepts an array', (done) ->
212+
stubGetSuccess ['role1', 'role2']
213+
callRoleGraph ['role1', 'role2'], defaultOpts, ->
214+
done()
215+
216+
it 'fires the callback with an error when an error occurs', (done) ->
217+
stubGetError ['role']
218+
cb = (err, res) ->
219+
assert.notEqual err, null
220+
assert.equal res, null
221+
done()
222+
callRoleGraph 'role', defaultOpts, cb
223+
224+
it 'fires the callback with an error when the response status is not 200', (done) ->
225+
stubGetFailure ['role']
226+
cb = (err, res) ->
227+
assert.notEqual err, null
228+
assert.equal res, null
229+
done()
230+
callRoleGraph 'role', defaultOpts, cb
231+
232+
it 'fires the callback with (null, graph) when the request succeeds', (done) ->
233+
stubGetSuccess ['role']
234+
cb = (err, res) ->
235+
assert.equal null, err
236+
assert.deepEqual res, defaultGraph
237+
done()
238+
callRoleGraph 'role', defaultOpts, cb
239+
240+
241+
242+
243+
244+

0 commit comments

Comments
 (0)