@@ -434,4 +434,86 @@ describe('Storage', function() {
434434 } ) ;
435435 } ) ;
436436 } ) ;
437+
438+ describe ( 'getServiceAccount' , function ( ) {
439+ it ( 'should make the correct request' , function ( done ) {
440+ storage . request = function ( reqOpts ) {
441+ assert . strictEqual (
442+ reqOpts . uri ,
443+ `/projects/${ storage . projectId } /serviceAccount`
444+ ) ;
445+ assert . deepStrictEqual ( reqOpts . qs , { } ) ;
446+ done ( ) ;
447+ } ;
448+
449+ storage . getServiceAccount ( assert . ifError ) ;
450+ } ) ;
451+
452+ it ( 'should allow user options' , function ( done ) {
453+ const options = { } ;
454+
455+ storage . request = function ( reqOpts ) {
456+ assert . strictEqual ( reqOpts . qs , options ) ;
457+ done ( ) ;
458+ } ;
459+
460+ storage . getServiceAccount ( options , assert . ifError ) ;
461+ } ) ;
462+
463+ describe ( 'error' , function ( ) {
464+ const ERROR = new Error ( 'Error.' ) ;
465+ const API_RESPONSE = { } ;
466+
467+ beforeEach ( function ( ) {
468+ storage . request = function ( reqOpts , callback ) {
469+ callback ( ERROR , API_RESPONSE ) ;
470+ } ;
471+ } ) ;
472+
473+ it ( 'should return the error and apiResponse' , function ( done ) {
474+ storage . getServiceAccount ( function ( err , serviceAccount , apiResponse ) {
475+ assert . strictEqual ( err , ERROR ) ;
476+ assert . strictEqual ( serviceAccount , null ) ;
477+ assert . strictEqual ( apiResponse , API_RESPONSE ) ;
478+ done ( ) ;
479+ } ) ;
480+ } ) ;
481+ } ) ;
482+
483+ describe ( 'success' , function ( ) {
484+ const API_RESPONSE = { } ;
485+
486+ beforeEach ( function ( ) {
487+ storage . request = function ( reqOpts , callback ) {
488+ callback ( null , API_RESPONSE ) ;
489+ } ;
490+ } ) ;
491+
492+ it ( 'should convert snake_case response to camelCase' , function ( done ) {
493+ const apiResponse = {
494+ snake_case : true ,
495+ } ;
496+
497+ storage . request = function ( reqOpts , callback ) {
498+ callback ( null , apiResponse ) ;
499+ } ;
500+
501+ storage . getServiceAccount ( function ( err , serviceAccount ) {
502+ assert . ifError ( err ) ;
503+ assert . strictEqual ( serviceAccount . snakeCase , apiResponse . snake_case ) ;
504+ assert . strictEqual ( serviceAccount . snake_case , undefined ) ;
505+ done ( ) ;
506+ } ) ;
507+ } ) ;
508+
509+ it ( 'should return the serviceAccount and apiResponse' , function ( done ) {
510+ storage . getServiceAccount ( function ( err , serviceAccount , apiResponse ) {
511+ assert . ifError ( err ) ;
512+ assert . deepStrictEqual ( serviceAccount , { } ) ;
513+ assert . strictEqual ( apiResponse , API_RESPONSE ) ;
514+ done ( ) ;
515+ } ) ;
516+ } ) ;
517+ } ) ;
518+ } ) ;
437519} ) ;
0 commit comments