@@ -15,112 +15,110 @@ import {SwTestHarness, SwTestHarnessBuilder} from '../testing/scope';
1515
1616import { async_beforeEach , async_fit , async_it } from './async' ;
1717
18- const dist = new MockFileSystemBuilder ( )
19- . addFile ( '/foo.txt' , 'this is foo' )
20- . addFile ( '/bar.txt' , 'this is bar' )
21- . addFile ( '/api/test' , 'version 1' )
22- . addFile ( '/api/a' , 'version A' )
23- . addFile ( '/api/b' , 'version B' )
24- . addFile ( '/api/c' , 'version C' )
25- . addFile ( '/api/d' , 'version D' )
26- . addFile ( '/api/e' , 'version E' )
27- . addFile ( '/fresh/data' , 'this is fresh data' )
28- . addFile ( '/refresh/data' , 'this is some data' )
29- . build ( ) ;
18+ ( function ( ) {
19+ // Skip environments that don't support the minimum APIs needed to run the SW tests.
20+ if ( ! SwTestHarness . envIsSupported ( ) ) {
21+ return ;
22+ }
3023
24+ const dist = new MockFileSystemBuilder ( )
25+ . addFile ( '/foo.txt' , 'this is foo' )
26+ . addFile ( '/bar.txt' , 'this is bar' )
27+ . addFile ( '/api/test' , 'version 1' )
28+ . addFile ( '/api/a' , 'version A' )
29+ . addFile ( '/api/b' , 'version B' )
30+ . addFile ( '/api/c' , 'version C' )
31+ . addFile ( '/api/d' , 'version D' )
32+ . addFile ( '/api/e' , 'version E' )
33+ . addFile ( '/fresh/data' , 'this is fresh data' )
34+ . addFile ( '/refresh/data' , 'this is some data' )
35+ . build ( ) ;
3136
32- const distUpdate = new MockFileSystemBuilder ( )
33- . addFile ( '/foo.txt' , 'this is foo v2' )
34- . addFile ( '/bar.txt' , 'this is bar' )
35- . addFile ( '/api/test' , 'version 2' )
36- . addFile ( '/fresh/data' , 'this is fresher data' )
37- . addFile ( '/refresh/data' , 'this is refreshed data' )
38- . build ( ) ;
3937
40- const manifest : Manifest = {
41- configVersion : 1 ,
42- timestamp : 1234567890123 ,
43- index : '/index.html' ,
44- assetGroups : [
45- {
46- name : 'assets' ,
47- installMode : 'prefetch' ,
48- updateMode : 'prefetch' ,
49- urls : [
50- '/foo.txt' ,
51- '/bar.txt' ,
52- ] ,
53- patterns : [ ] ,
54- } ,
55- ] ,
56- dataGroups : [
57- {
58- name : 'testPerf' ,
59- maxSize : 3 ,
60- strategy : 'performance' ,
61- patterns : [ '^/api/.*$' ] ,
62- timeoutMs : 1000 ,
63- maxAge : 5000 ,
64- version : 1 ,
65- } ,
66- {
67- name : 'testRefresh' ,
68- maxSize : 3 ,
69- strategy : 'performance' ,
70- patterns : [ '^/refresh/.*$' ] ,
71- timeoutMs : 1000 ,
72- refreshAheadMs : 1000 ,
73- maxAge : 5000 ,
74- version : 1 ,
75- } ,
76- {
77- name : 'testFresh' ,
78- maxSize : 3 ,
79- strategy : 'freshness' ,
80- patterns : [ '^/fresh/.*$' ] ,
81- timeoutMs : 1000 ,
82- maxAge : 5000 ,
83- version : 1 ,
84- } ,
85- ] ,
86- navigationUrls : [ ] ,
87- hashTable : tmpHashTableForFs ( dist ) ,
88- } ;
38+ const distUpdate = new MockFileSystemBuilder ( )
39+ . addFile ( '/foo.txt' , 'this is foo v2' )
40+ . addFile ( '/bar.txt' , 'this is bar' )
41+ . addFile ( '/api/test' , 'version 2' )
42+ . addFile ( '/fresh/data' , 'this is fresher data' )
43+ . addFile ( '/refresh/data' , 'this is refreshed data' )
44+ . build ( ) ;
8945
90- const seqIncreasedManifest : Manifest = {
91- ...manifest ,
92- dataGroups : [
93- {
94- ...manifest . dataGroups ! [ 0 ] ,
95- version : 2 ,
96- } ,
97- manifest . dataGroups ! [ 1 ] ,
98- manifest . dataGroups ! [ 2 ] ,
99- ] ,
100- } ;
46+ const manifest : Manifest = {
47+ configVersion : 1 ,
48+ timestamp : 1234567890123 ,
49+ index : '/index.html' ,
50+ assetGroups : [
51+ {
52+ name : 'assets' ,
53+ installMode : 'prefetch' ,
54+ updateMode : 'prefetch' ,
55+ urls : [
56+ '/foo.txt' ,
57+ '/bar.txt' ,
58+ ] ,
59+ patterns : [ ] ,
60+ } ,
61+ ] ,
62+ dataGroups : [
63+ {
64+ name : 'testPerf' ,
65+ maxSize : 3 ,
66+ strategy : 'performance' ,
67+ patterns : [ '^/api/.*$' ] ,
68+ timeoutMs : 1000 ,
69+ maxAge : 5000 ,
70+ version : 1 ,
71+ } ,
72+ {
73+ name : 'testRefresh' ,
74+ maxSize : 3 ,
75+ strategy : 'performance' ,
76+ patterns : [ '^/refresh/.*$' ] ,
77+ timeoutMs : 1000 ,
78+ refreshAheadMs : 1000 ,
79+ maxAge : 5000 ,
80+ version : 1 ,
81+ } ,
82+ {
83+ name : 'testFresh' ,
84+ maxSize : 3 ,
85+ strategy : 'freshness' ,
86+ patterns : [ '^/fresh/.*$' ] ,
87+ timeoutMs : 1000 ,
88+ maxAge : 5000 ,
89+ version : 1 ,
90+ } ,
91+ ] ,
92+ navigationUrls : [ ] ,
93+ hashTable : tmpHashTableForFs ( dist ) ,
94+ } ;
10195
96+ const seqIncreasedManifest : Manifest = {
97+ ...manifest ,
98+ dataGroups : [
99+ {
100+ ...manifest . dataGroups ! [ 0 ] ,
101+ version : 2 ,
102+ } ,
103+ manifest . dataGroups ! [ 1 ] ,
104+ manifest . dataGroups ! [ 2 ] ,
105+ ] ,
106+ } ;
102107
103- const server = new MockServerStateBuilder ( ) . withStaticFiles ( dist ) . withManifest ( manifest ) . build ( ) ;
104108
105- const serverUpdate =
106- new MockServerStateBuilder ( ) . withStaticFiles ( distUpdate ) . withManifest ( manifest ) . build ( ) ;
109+ const server = new MockServerStateBuilder ( ) . withStaticFiles ( dist ) . withManifest ( manifest ) . build ( ) ;
107110
108- const serverSeqUpdate = new MockServerStateBuilder ( )
109- . withStaticFiles ( distUpdate )
110- . withManifest ( seqIncreasedManifest )
111- . build ( ) ;
111+ const serverUpdate =
112+ new MockServerStateBuilder ( ) . withStaticFiles ( distUpdate ) . withManifest ( manifest ) . build ( ) ;
112113
113- const scope = new SwTestHarnessBuilder ( ) . withServerState ( server ) . build ( ) ;
114+ const serverSeqUpdate = new MockServerStateBuilder ( )
115+ . withStaticFiles ( distUpdate )
116+ . withManifest ( seqIncreasedManifest )
117+ . build ( ) ;
118+
119+ const scope = new SwTestHarnessBuilder ( ) . withServerState ( server ) . build ( ) ;
114120
115- function asyncWrap ( fn : ( ) => Promise < void > ) : ( done : DoneFn ) => void {
116- return ( done : DoneFn ) => { fn ( ) . then ( ( ) => done ( ) , err => done . fail ( err ) ) ; } ;
117- }
118121
119- ( function ( ) {
120- // Skip environments that don't support the minimum APIs needed to run the SW tests.
121- if ( ! SwTestHarness . envIsSupported ( ) ) {
122- return ;
123- }
124122 describe ( 'data cache' , ( ) => {
125123 let scope : SwTestHarness ;
126124 let driver : Driver ;
0 commit comments