@@ -22,7 +22,6 @@ import osm = require('os');
22
22
import * as rimraf from 'rimraf' ;
23
23
24
24
import { Docker } from '../../src/docker/docker' ;
25
- import { Exec } from '../../src/exec' ;
26
25
27
26
import { ConfigFile } from '../../src/types/docker/docker' ;
28
27
@@ -105,48 +104,132 @@ describe('isAvailable', () => {
105
104
} ) ;
106
105
} ) ;
107
106
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
+
108
161
describe ( 'context' , ( ) => {
109
162
it ( 'call docker context show' , async ( ) => {
110
- const execSpy = jest . spyOn ( Exec , 'getExecOutput' ) ;
163
+ const execSpy = jest . spyOn ( Docker , 'getExecOutput' ) ;
111
164
await Docker . context ( ) . catch ( ( ) => {
112
165
// noop
113
166
} ) ;
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
+ ] ) ;
118
180
} ) ;
119
181
} ) ;
120
182
121
183
describe ( 'contextInspect' , ( ) => {
122
184
it ( 'call docker context inspect' , async ( ) => {
123
- const execSpy = jest . spyOn ( Exec , 'getExecOutput' ) ;
185
+ const execSpy = jest . spyOn ( Docker , 'getExecOutput' ) ;
124
186
await Docker . contextInspect ( 'foo' ) . catch ( ( ) => {
125
187
// noop
126
188
} ) ;
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
+ ] ) ;
131
202
} ) ;
132
203
} ) ;
133
204
134
205
describe ( 'printVersion' , ( ) => {
135
206
it ( 'call docker version' , async ( ) => {
136
- const execSpy = jest . spyOn ( Exec , 'exec' ) ;
207
+ const execSpy = jest . spyOn ( Docker , 'exec' ) ;
137
208
await Docker . printVersion ( ) . catch ( ( ) => {
138
209
// noop
139
210
} ) ;
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' ] ] ) ;
141
218
} ) ;
142
219
} ) ;
143
220
144
221
describe ( 'printInfo' , ( ) => {
145
222
it ( 'call docker info' , async ( ) => {
146
- const execSpy = jest . spyOn ( Exec , 'exec' ) ;
223
+ const execSpy = jest . spyOn ( Docker , 'exec' ) ;
147
224
await Docker . printInfo ( ) . catch ( ( ) => {
148
225
// noop
149
226
} ) ;
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' ] ] ) ;
151
234
} ) ;
152
235
} ) ;
0 commit comments