1 | should = require('chai').should()
|
2 | rack = require '../.'
|
3 |
|
4 | class DelayedAsset extends rack.Asset
|
5 | create: (options) ->
|
6 | @delay = options.delay
|
7 | build = =>
|
8 | @emit 'created', contents: "delay#{@delay}"
|
9 | setTimeout build, @delay
|
10 |
|
11 | class CollectionAsset extends rack.Asset
|
12 | create: (options) ->
|
13 | for i in [1..options.size]
|
14 | @addAsset new DelayedAsset
|
15 | delay: i * 100
|
16 | url: '/delayed' + i
|
17 | @emit 'created'
|
18 |
|
19 | describe 'an asset collection', ->
|
20 |
|
21 | it 'should wait for all sub-assets to build', (done) ->
|
22 | asset = new CollectionAsset size: 3
|
23 | asset.on 'complete', ->
|
24 | subassetsBuilt = true
|
25 | for subasset in asset.assets
|
26 | subassetsBuilt = false unless subasset.completed
|
27 | subassetsBuilt.should.be.ok
|
28 | done()
|