@@ -57,7 +57,9 @@ describe('util.submit-addon', () => {
57
57
beforeEach ( ( ) => {
58
58
statStub = sinon
59
59
. stub ( fsPromises , 'stat' )
60
+ . onFirstCall ( )
60
61
. resolves ( { isFile : ( ) => true } ) ;
62
+ statStub . callThrough ( ) ;
61
63
getPreviousUuidOrUploadXpiStub = sinon
62
64
. stub ( Client . prototype , 'getPreviousUuidOrUploadXpi' )
63
65
. resolves ( uploadUuid ) ;
@@ -197,6 +199,7 @@ describe('util.submit-addon', () => {
197
199
198
200
it ( 'includes source data to be patched if submissionSource defined for new addon' , async ( ) => {
199
201
const submissionSource = 'path/to/source/zip' ;
202
+ statStub . onSecondCall ( ) . resolves ( { isFile : ( ) => true } ) ;
200
203
await signAddon ( {
201
204
...signAddonDefaults ,
202
205
submissionSource,
@@ -214,6 +217,7 @@ describe('util.submit-addon', () => {
214
217
215
218
it ( 'includes source data to be patched if submissionSource defined for new version' , async ( ) => {
216
219
const submissionSource = 'path/to/source/zip' ;
220
+ statStub . onSecondCall ( ) . resolves ( { isFile : ( ) => true } ) ;
217
221
const id = '@thisID' ;
218
222
await signAddon ( {
219
223
...signAddonDefaults ,
@@ -230,6 +234,34 @@ describe('util.submit-addon', () => {
230
234
{ version : { source : fakeFileFromSync } } ,
231
235
) ;
232
236
} ) ;
237
+
238
+ it ( 'throws error if submissionSource is not found' , async ( ) => {
239
+ const submissionSource = 'path/to/source/zip' ;
240
+ const signAddonPromise = signAddon ( {
241
+ ...signAddonDefaults ,
242
+ submissionSource,
243
+ } ) ;
244
+ await assert . isRejected (
245
+ signAddonPromise ,
246
+ `error with ${ submissionSource } : ` +
247
+ 'Error: ENOENT: no such file or directory' ,
248
+ ) ;
249
+ } ) ;
250
+
251
+ it ( 'throws error if submissionSource is a directory' , async ( ) => {
252
+ await withTempDir ( async ( tmpDir ) => {
253
+ const submissionSource = path . join ( tmpDir . path ( ) , 'someDirectory' ) ;
254
+ await fsPromises . mkdir ( submissionSource ) ;
255
+ const signAddonPromise = signAddon ( {
256
+ ...signAddonDefaults ,
257
+ submissionSource,
258
+ } ) ;
259
+ await assert . isRejected (
260
+ signAddonPromise ,
261
+ `error with ${ submissionSource } : ` + 'Error: not a file' ,
262
+ ) ;
263
+ } ) ;
264
+ } ) ;
233
265
} ) ;
234
266
235
267
describe ( 'Client' , ( ) => {
0 commit comments