@@ -22,7 +22,6 @@ import osm = require('os');
2222import * as rimraf from 'rimraf' ;
2323
2424import { Docker } from '../../src/docker/docker' ;
25- import { Exec } from '../../src/exec' ;
2625
2726import { ConfigFile } from '../../src/types/docker/docker' ;
2827
@@ -105,48 +104,132 @@ describe('isAvailable', () => {
105104 } ) ;
106105} ) ;
107106
107+ describe ( 'exec' , ( ) => {
108+ it ( 'returns docker version' , async ( ) => {
109+ const execSpy = jest . spyOn ( Docker , 'exec' ) ;
110+ await Docker . exec ( [ 'version' ] , {
111+ ignoreReturnCode : true ,
112+ silent : true
113+ } ) ;
114+ expect ( execSpy ) . toHaveBeenCalledTimes ( 1 ) ;
115+ const callfunc = execSpy . mock . calls [ 0 ] ;
116+ expect ( Object . keys ( callfunc [ 1 ] ?. env || { } ) . length ) . toBeGreaterThan ( 0 ) ;
117+ const env = callfunc [ 1 ] ?. env ;
118+ expect ( env ) . toHaveProperty ( 'DOCKER_CONTENT_TRUST' ) ;
119+ expect ( env ?. DOCKER_CONTENT_TRUST ) . toBe ( 'false' ) ;
120+ if ( callfunc [ 1 ] ?. env ) {
121+ // already checked env
122+ callfunc [ 1 ] . env = undefined ;
123+ }
124+ expect ( callfunc ) . toEqual ( [
125+ [ 'version' ] ,
126+ {
127+ ignoreReturnCode : true ,
128+ silent : true
129+ }
130+ ] ) ;
131+ } ) ;
132+ } ) ;
133+
134+ describe ( 'getExecOutput' , ( ) => {
135+ it ( 'returns docker version' , async ( ) => {
136+ const execSpy = jest . spyOn ( Docker , 'getExecOutput' ) ;
137+ await Docker . getExecOutput ( [ 'version' ] , {
138+ ignoreReturnCode : true ,
139+ silent : true
140+ } ) ;
141+ expect ( execSpy ) . toHaveBeenCalledTimes ( 1 ) ;
142+ const callfunc = execSpy . mock . calls [ 0 ] ;
143+ expect ( Object . keys ( callfunc [ 1 ] ?. env || { } ) . length ) . toBeGreaterThan ( 0 ) ;
144+ const env = callfunc [ 1 ] ?. env ;
145+ expect ( env ) . toHaveProperty ( 'DOCKER_CONTENT_TRUST' ) ;
146+ expect ( env ?. DOCKER_CONTENT_TRUST ) . toBe ( 'false' ) ;
147+ if ( callfunc [ 1 ] ?. env ) {
148+ // already checked env
149+ callfunc [ 1 ] . env = undefined ;
150+ }
151+ expect ( callfunc ) . toEqual ( [
152+ [ 'version' ] ,
153+ {
154+ ignoreReturnCode : true ,
155+ silent : true
156+ }
157+ ] ) ;
158+ } ) ;
159+ } ) ;
160+
108161describe ( 'context' , ( ) => {
109162 it ( 'call docker context show' , async ( ) => {
110- const execSpy = jest . spyOn ( Exec , 'getExecOutput' ) ;
163+ const execSpy = jest . spyOn ( Docker , 'getExecOutput' ) ;
111164 await Docker . context ( ) . catch ( ( ) => {
112165 // noop
113166 } ) ;
114- expect ( execSpy ) . toHaveBeenCalledWith ( `docker` , [ 'context' , 'inspect' , '--format' , '{{.Name}}' ] , {
115- ignoreReturnCode : true ,
116- silent : true
117- } ) ;
167+ expect ( execSpy ) . toHaveBeenCalledTimes ( 1 ) ;
168+ const callfunc = execSpy . mock . calls [ 0 ] ;
169+ if ( callfunc && callfunc [ 1 ] ) {
170+ // we don't want to check env opt
171+ callfunc [ 1 ] . env = undefined ;
172+ }
173+ expect ( callfunc ) . toEqual ( [
174+ [ 'context' , 'inspect' , '--format' , '{{.Name}}' ] ,
175+ {
176+ ignoreReturnCode : true ,
177+ silent : true
178+ }
179+ ] ) ;
118180 } ) ;
119181} ) ;
120182
121183describe ( 'contextInspect' , ( ) => {
122184 it ( 'call docker context inspect' , async ( ) => {
123- const execSpy = jest . spyOn ( Exec , 'getExecOutput' ) ;
185+ const execSpy = jest . spyOn ( Docker , 'getExecOutput' ) ;
124186 await Docker . contextInspect ( 'foo' ) . catch ( ( ) => {
125187 // noop
126188 } ) ;
127- expect ( execSpy ) . toHaveBeenCalledWith ( `docker` , [ 'context' , 'inspect' , '--format=json' , 'foo' ] , {
128- ignoreReturnCode : true ,
129- silent : true
130- } ) ;
189+ expect ( execSpy ) . toHaveBeenCalledTimes ( 1 ) ;
190+ const callfunc = execSpy . mock . calls [ 0 ] ;
191+ if ( callfunc && callfunc [ 1 ] ) {
192+ // we don't want to check env opt
193+ callfunc [ 1 ] . env = undefined ;
194+ }
195+ expect ( callfunc ) . toEqual ( [
196+ [ 'context' , 'inspect' , '--format=json' , 'foo' ] ,
197+ {
198+ ignoreReturnCode : true ,
199+ silent : true
200+ }
201+ ] ) ;
131202 } ) ;
132203} ) ;
133204
134205describe ( 'printVersion' , ( ) => {
135206 it ( 'call docker version' , async ( ) => {
136- const execSpy = jest . spyOn ( Exec , 'exec' ) ;
207+ const execSpy = jest . spyOn ( Docker , 'exec' ) ;
137208 await Docker . printVersion ( ) . catch ( ( ) => {
138209 // noop
139210 } ) ;
140- expect ( execSpy ) . toHaveBeenCalledWith ( `docker` , [ 'version' ] ) ;
211+ expect ( execSpy ) . toHaveBeenCalledTimes ( 1 ) ;
212+ const callfunc = execSpy . mock . calls [ 0 ] ;
213+ if ( callfunc && callfunc [ 1 ] ) {
214+ // we don't want to check env opt
215+ callfunc [ 1 ] . env = undefined ;
216+ }
217+ expect ( callfunc ) . toEqual ( [ [ 'version' ] ] ) ;
141218 } ) ;
142219} ) ;
143220
144221describe ( 'printInfo' , ( ) => {
145222 it ( 'call docker info' , async ( ) => {
146- const execSpy = jest . spyOn ( Exec , 'exec' ) ;
223+ const execSpy = jest . spyOn ( Docker , 'exec' ) ;
147224 await Docker . printInfo ( ) . catch ( ( ) => {
148225 // noop
149226 } ) ;
150- expect ( execSpy ) . toHaveBeenCalledWith ( `docker` , [ 'info' ] ) ;
227+ expect ( execSpy ) . toHaveBeenCalledTimes ( 1 ) ;
228+ const callfunc = execSpy . mock . calls [ 0 ] ;
229+ if ( callfunc && callfunc [ 1 ] ) {
230+ // we don't want to check env opt
231+ callfunc [ 1 ] . env = undefined ;
232+ }
233+ expect ( callfunc ) . toEqual ( [ [ 'info' ] ] ) ;
151234 } ) ;
152235} ) ;
0 commit comments