@@ -30,7 +30,7 @@ describe(`[workbox-build] lib/transform-manifest.js`, function() {
3030 const FILE_DETAILS = [ ENTRY1 , ENTRY2 , ENTRY3 ] ;
3131
3232 it ( `should filter out files above maximumFileSizeToCacheInBytes` , async function ( ) {
33- const { size, count, manifestEntries} = transformManifest ( {
33+ const { size, count, manifestEntries} = await transformManifest ( {
3434 maximumFileSizeToCacheInBytes : MAXIMUM_FILE_SIZE ,
3535 fileDetails : FILE_DETAILS ,
3636 } ) ;
@@ -47,7 +47,7 @@ describe(`[workbox-build] lib/transform-manifest.js`, function() {
4747 } ) ;
4848
4949 it ( `should remove revision info based on dontCacheBustURLsMatching` , async function ( ) {
50- const { size, count, manifestEntries} = transformManifest ( {
50+ const { size, count, manifestEntries} = await transformManifest ( {
5151 dontCacheBustURLsMatching : new RegExp ( ENTRY1 . file ) ,
5252 fileDetails : FILE_DETAILS ,
5353 } ) ;
@@ -68,7 +68,7 @@ describe(`[workbox-build] lib/transform-manifest.js`, function() {
6868 it ( `should modify the URLs based on modifyURLPrefix` , async function ( ) {
6969 const prefix = 'prefix/' ;
7070
71- const { size, count, manifestEntries} = transformManifest ( {
71+ const { size, count, manifestEntries} = await transformManifest ( {
7272 modifyURLPrefix : {
7373 '' : prefix ,
7474 } ,
@@ -89,7 +89,7 @@ describe(`[workbox-build] lib/transform-manifest.js`, function() {
8989 } ] ) ;
9090 } ) ;
9191
92- it ( `should use custom manifestTransforms` , function ( ) {
92+ it ( `should use custom manifestTransforms` , async function ( ) {
9393 const prefix1 = 'prefix1/' ;
9494 const prefix2 = 'prefix2/' ;
9595
@@ -118,7 +118,7 @@ describe(`[workbox-build] lib/transform-manifest.js`, function() {
118118 return { manifest, warnings : [ warning2 ] } ;
119119 } ;
120120
121- const { size, count, manifestEntries, warnings} = transformManifest ( {
121+ const { size, count, manifestEntries, warnings} = await transformManifest ( {
122122 fileDetails : FILE_DETAILS ,
123123 manifestTransforms : [ transform1 , transform2 ] ,
124124 transformParam,
@@ -138,4 +138,30 @@ describe(`[workbox-build] lib/transform-manifest.js`, function() {
138138 revision : ENTRY3 . hash ,
139139 } ] ) ;
140140 } ) ;
141+
142+ it ( `should support an async manifestTransform` , async function ( ) {
143+ const asyncTransform = async ( manifest ) => {
144+ await Promise . resolve ( ) ;
145+ return { manifest, warnings : [ ] } ;
146+ } ;
147+
148+ const { size, count, manifestEntries, warnings} = await transformManifest ( {
149+ fileDetails : FILE_DETAILS ,
150+ manifestTransforms : [ asyncTransform ] ,
151+ } ) ;
152+
153+ expect ( warnings ) . to . be . empty ;
154+ expect ( size ) . to . eql ( ENTRY1 . size + ENTRY2 . size + ENTRY3 . size ) ;
155+ expect ( count ) . to . eql ( 3 ) ;
156+ expect ( manifestEntries ) . to . deep . equal ( [ {
157+ url : ENTRY1 . file ,
158+ revision : ENTRY1 . hash ,
159+ } , {
160+ url : ENTRY2 . file ,
161+ revision : ENTRY2 . hash ,
162+ } , {
163+ url : ENTRY3 . file ,
164+ revision : ENTRY3 . hash ,
165+ } ] ) ;
166+ } ) ;
141167} ) ;
0 commit comments