@@ -1136,6 +1136,40 @@ describe('GrpcService', function() {
11361136 } ) ;
11371137 } ) ;
11381138
1139+ describe ( 'decorateError_' , function ( ) {
1140+ var expectedDecoratedError = new Error ( 'err.' ) ;
1141+
1142+ beforeEach ( function ( ) {
1143+ sinon . stub ( GrpcService , 'decorateGrpcResponse_' , function ( ) {
1144+ return expectedDecoratedError ;
1145+ } ) ;
1146+ } ) ;
1147+
1148+ it ( 'should decorate an Error object' , function ( ) {
1149+ var grpcError = new Error ( 'Hello' ) ;
1150+ grpcError . code = 2 ;
1151+
1152+ var decoratedError = GrpcService . decorateError_ ( grpcError ) ;
1153+ var decorateArgs = GrpcService . decorateGrpcResponse_ . getCall ( 0 ) . args ;
1154+
1155+ assert . strictEqual ( decoratedError , expectedDecoratedError ) ;
1156+ assert . strictEqual ( decorateArgs [ 0 ] instanceof Error , true ) ;
1157+ assert . strictEqual ( decorateArgs [ 1 ] , grpcError ) ;
1158+ } ) ;
1159+
1160+ it ( 'should decorate a plain object' , function ( ) {
1161+ var grpcMessage = { code : 2 } ;
1162+
1163+ var decoratedError = GrpcService . decorateError_ ( grpcMessage ) ;
1164+ var decorateArgs = GrpcService . decorateGrpcResponse_ . getCall ( 0 ) . args ;
1165+
1166+ assert . strictEqual ( decoratedError , expectedDecoratedError ) ;
1167+ assert . deepEqual ( decorateArgs [ 0 ] , { } ) ;
1168+ assert . strictEqual ( decorateArgs [ 0 ] instanceof Error , false ) ;
1169+ assert . strictEqual ( decorateArgs [ 1 ] , grpcMessage ) ;
1170+ } ) ;
1171+ } ) ;
1172+
11391173 describe ( 'decorateGrpcResponse_' , function ( ) {
11401174 it ( 'should retrieve the HTTP code from the gRPC error map' , function ( ) {
11411175 var errorMap = GrpcService . GRPC_ERROR_CODE_TO_HTTP ;
@@ -1165,46 +1199,27 @@ describe('GrpcService', function() {
11651199 assert . strictEqual ( extended . message , errorMessage ) ;
11661200 } ) ;
11671201
1168- it ( 'should return null for unknown errors' , function ( ) {
1169- var error = new Error ( ) ;
1170- var extended = GrpcService . decorateGrpcResponse_ ( error , { code : 9999 } ) ;
1171-
1172- assert . strictEqual ( extended , null ) ;
1173- } ) ;
1174- } ) ;
1175-
1176- describe ( 'decorateError_' , function ( ) {
1177- var fakeError = new Error ( 'err.' ) ;
1178-
1179- beforeEach ( function ( ) {
1180- sinon . stub ( GrpcService , 'decorateGrpcResponse_' , function ( ) {
1181- return fakeError ;
1182- } ) ;
1183- } ) ;
1184-
1185- it ( 'should call decorateGrpcResponse_ with an error object' , function ( ) {
1186- var grpcError = new Error ( 'err.' ) ;
1202+ it ( 'should use a stringified JSON message from the error' , function ( ) {
1203+ var errorMessage = 'This is an error message.' ;
11871204
1188- grpcError . code = 2 ;
1205+ var err = {
1206+ code : 1 ,
1207+ message : JSON . stringify ( {
1208+ description : errorMessage
1209+ } )
1210+ } ;
11891211
1190- var error = GrpcService . decorateError_ ( grpcError ) ;
1191- var args = GrpcService . decorateGrpcResponse_ . getCall ( 0 ) . args ;
1212+ var error = new Error ( ) ;
1213+ var extended = GrpcService . decorateGrpcResponse_ ( error , err ) ;
11921214
1193- assert . strictEqual ( fakeError , error ) ;
1194- assert ( args [ 0 ] instanceof Error ) ;
1195- assert . strictEqual ( args [ 1 ] , grpcError ) ;
1215+ assert . strictEqual ( extended . message , errorMessage ) ;
11961216 } ) ;
11971217
1198- it ( 'should call decorateGrpcResponse_ with a plain object' , function ( ) {
1199- var grpcMessage = { code : 2 } ;
1200-
1201- var error = GrpcService . decorateError_ ( grpcMessage ) ;
1202- var args = GrpcService . decorateGrpcResponse_ . getCall ( 0 ) . args ;
1218+ it ( 'should return null for unknown errors' , function ( ) {
1219+ var error = new Error ( ) ;
1220+ var extended = GrpcService . decorateGrpcResponse_ ( error , { code : 9999 } ) ;
12031221
1204- assert . strictEqual ( fakeError , error ) ;
1205- assert . deepEqual ( args [ 0 ] , { } ) ;
1206- assert ( ! ( args [ 0 ] instanceof Error ) ) ;
1207- assert . strictEqual ( args [ 1 ] , grpcMessage ) ;
1222+ assert . strictEqual ( extended , null ) ;
12081223 } ) ;
12091224 } ) ;
12101225
0 commit comments