@@ -403,6 +403,57 @@ describe('BigQuery/Job', () => {
403403 job . getQueryResults ( options , assert . ifError ) ;
404404 } ) ;
405405
406+ it ( 'should skip parsing if skipParsing is true' , done => {
407+ const response = {
408+ schema : { } ,
409+ rows : [ { f : [ { v : 'hi' } ] } ] ,
410+ } ;
411+
412+ BIGQUERY . request = (
413+ reqOpts : DecorateRequestOptions ,
414+ callback : Function ,
415+ ) => {
416+ callback ( null , response ) ;
417+ } ;
418+
419+ const mergeStub = sandbox . stub ( BigQuery , 'mergeSchemaWithRows_' ) ;
420+
421+ job . getQueryResults ( { skipParsing : true } , ( err : Error , rows : { } [ ] ) => {
422+ assert . ifError ( err ) ;
423+ assert . strictEqual ( rows , response . rows ) ;
424+ assert . strictEqual ( mergeStub . called , false ) ;
425+ done ( ) ;
426+ } ) ;
427+ } ) ;
428+
429+ it ( 'should not delete resp.rows if skipParsing is true' , done => {
430+ const options : QueryResultsOptions = {
431+ skipParsing : true ,
432+ } ;
433+
434+ const rawRows = [ { f : [ { v : 'hi' } ] } ] ;
435+ const resp = {
436+ jobComplete : true ,
437+ rows : rawRows ,
438+ schema : {
439+ fields : [ { name : 'name' , type : 'STRING' } ] ,
440+ } ,
441+ } ;
442+
443+ job . bigQuery . request = ( reqOpts : { } , callback : Function ) => {
444+ callback ( null , resp ) ;
445+ } ;
446+
447+ job . getQueryResults (
448+ options ,
449+ ( err : Error , rows : { } , nextQuery : { } , response : any ) => {
450+ assert . ifError ( err ) ;
451+ assert . deepStrictEqual ( response . rows , rawRows ) ;
452+ done ( ) ;
453+ } ,
454+ ) ;
455+ } ) ;
456+
406457 it ( 'should return the query when the job is not complete' , done => {
407458 BIGQUERY . request = (
408459 reqOpts : DecorateRequestOptions ,
@@ -447,6 +498,32 @@ describe('BigQuery/Job', () => {
447498 ) ;
448499 } ) ;
449500
501+ it ( 'should delete resp.rows if skipParsing is false by default' , done => {
502+ const options : QueryResultsOptions = { } ;
503+
504+ const rawRows = [ { f : [ { v : 'hi' } ] } ] ;
505+ const resp = {
506+ jobComplete : true ,
507+ rows : rawRows ,
508+ schema : {
509+ fields : [ { name : 'name' , type : 'STRING' } ] ,
510+ } ,
511+ } ;
512+
513+ job . bigQuery . request = ( reqOpts : { } , callback : Function ) => {
514+ callback ( null , resp ) ;
515+ } ;
516+
517+ job . getQueryResults (
518+ options ,
519+ ( err : Error , rows : { } , nextQuery : { } , response : any ) => {
520+ assert . ifError ( err ) ;
521+ assert . deepStrictEqual ( response . rows , undefined ) ;
522+ done ( ) ;
523+ } ,
524+ ) ;
525+ } ) ;
526+
450527 it ( 'should populate nextQuery when more results exist' , done => {
451528 job . getQueryResults (
452529 options ,
0 commit comments