@@ -5,7 +5,7 @@ import { render, click, settled, waitFor } from '@ember/test-helpers';
5
5
import { DEFAULT_QUEUE , FileState } from ' ember-file-upload' ;
6
6
import type { UploadFile } from ' ember-file-upload' ;
7
7
import { selectFiles } from ' ember-file-upload/test-support' ;
8
- import { uploadHandler } from ' ember-file-upload' ;
8
+ import { type FileQueueService , uploadHandler } from ' ember-file-upload' ;
9
9
import { later } from ' @ember/runloop' ;
10
10
import fileQueue from ' ember-file-upload/helpers/file-queue' ;
11
11
import { on } from ' @ember/modifier' ;
@@ -274,4 +274,63 @@ module('Integration | Helper | file-queue', function (hooks) {
274
274
await settled ();
275
275
assert .dom (' [data-test-file]' ).doesNotExist (' queue was flushed' );
276
276
});
277
+
278
+ // Service before helper issue ref: https://github.com/adopted-ember-addons/ember-file-upload/issues/1085
279
+ test (' service can be used before helper with DEFUALT_QUEUE' , async function (assert ) {
280
+ const fileQueueService = this .owner .lookup (
281
+ ' service:file-queue' ,
282
+ ) as FileQueueService ;
283
+
284
+ await render (
285
+ <template >
286
+ {{fileQueue }}
287
+
288
+ <ul >
289
+ {{#each fileQueueService.files as | file | }}
290
+ <li >
291
+ {{file.name }}
292
+ </li >
293
+ {{/each }}
294
+ </ul >
295
+
296
+ {{#let ( fileQueue ) as | queue | }}
297
+ <label >
298
+ <input type =' file' {{queue.selectFile }} hidden />
299
+ Select File
300
+ </label >
301
+ {{/let }}
302
+ </template >,
303
+ );
304
+
305
+ assert .dom (' label' ).exists (' regression would throw during rendering' );
306
+ });
307
+
308
+ test (' service can be used before helper with named queue, provided FileQueueService.create is called first' , async function (assert ) {
309
+ const fileQueueService = this .owner .lookup (
310
+ ' service:file-queue' ,
311
+ ) as FileQueueService ;
312
+ const customName = ' uploads' ;
313
+ fileQueueService .create (customName );
314
+
315
+ await render (
316
+ <template >
317
+ <ul >
318
+ {{#each fileQueueService.files as | file | }}
319
+ <li >
320
+ {{file.name }}
321
+ </li >
322
+ {{/each }}
323
+ </ul >
324
+
325
+ {{#let ( fileQueue name =customName ) as | queue | }}
326
+ <label >
327
+ <input type =' file' {{queue.selectFile }} hidden />
328
+ Select File
329
+ </label >
330
+ {{/let }}
331
+ </template >,
332
+ );
333
+
334
+ assert .dom (' label' ).exists (' regression would throw during rendering' );
335
+ });
277
336
});
0 commit comments