@@ -19,10 +19,21 @@ const proxyquire = require(`proxyquire`).noCallThru();
1919const sinon = require ( `sinon` ) ;
2020const test = require ( `ava` ) ;
2121const tools = require ( `@google-cloud/nodejs-repo-tools` ) ;
22+ const vision = require ( '@google-cloud/vision' ) . v1p1beta1 ;
2223
2324const bucketName = `my-bucket` ;
2425const filename = `image.jpg` ;
2526
27+ var VisionStub = sinon . stub ( vision , 'ImageAnnotatorClient' ) ;
28+ VisionStub . returns ( {
29+ safeSearchDetection : sinon . stub ( ) . returns ( Promise . resolve ( [ {
30+ safeSearchAnnotation : {
31+ adult : 'VERY_LIKELY' ,
32+ violence : 'VERY_LIKELY'
33+ }
34+ } ] ) )
35+ } ) ;
36+
2637function getSample ( ) {
2738 const file = {
2839 getMetadata : sinon . stub ( ) . returns ( Promise . resolve ( [ { } ] ) ) ,
@@ -39,11 +50,7 @@ function getSample () {
3950 const storageMock = {
4051 bucket : sinon . stub ( ) . returns ( bucket )
4152 } ;
42- const visionMock = {
43- detectSafeSearch : sinon . stub ( ) . returns ( Promise . resolve ( [ { violence : true } ] ) )
44- } ;
4553 const StorageMock = sinon . stub ( ) . returns ( storageMock ) ;
46- const VisionMock = sinon . stub ( ) . returns ( visionMock ) ;
4754 const childProcessMock = {
4855 exec : sinon . stub ( ) . yields ( )
4956 } ;
@@ -53,7 +60,6 @@ function getSample () {
5360
5461 return {
5562 program : proxyquire ( `../` , {
56- '@google-cloud/vision' : VisionMock ,
5763 '@google-cloud/storage' : StorageMock ,
5864 'child_process' : childProcessMock ,
5965 'fs' : fsMock
@@ -63,8 +69,7 @@ function getSample () {
6369 childProcess : childProcessMock ,
6470 storage : storageMock ,
6571 bucket,
66- file,
67- vision : visionMock
72+ file
6873 }
6974 } ;
7075}
@@ -96,8 +101,17 @@ test.serial(`blurOffensiveImages blurs images`, async (t) => {
96101} ) ;
97102
98103test . serial ( `blurOffensiveImages ignores safe images` , async ( t ) => {
104+ VisionStub . restore ( ) ;
105+ VisionStub = sinon . stub ( vision , 'ImageAnnotatorClient' ) ;
106+ VisionStub . returns ( {
107+ safeSearchDetection : sinon . stub ( ) . returns ( Promise . resolve ( [ {
108+ safeSearchAnnotation : {
109+ adult : 'VERY_UNLIKELY' ,
110+ violence : 'VERY_UNLIKELY'
111+ }
112+ } ] ) )
113+ } ) ;
99114 const sample = getSample ( ) ;
100- sample . mocks . vision . detectSafeSearch = sinon . stub ( ) . returns ( Promise . resolve ( [ { } ] ) ) ;
101115 await sample . program . blurOffensiveImages ( { data : { bucket : bucketName , name : filename } } ) ;
102116 t . is ( console . log . callCount , 2 ) ;
103117 t . deepEqual ( console . log . getCall ( 0 ) . args , [ `Analyzing ${ sample . mocks . file . name } .` ] ) ;
0 commit comments