@@ -16,27 +16,26 @@ describe('Browser Builder poll', () => {
16
16
afterEach ( done => host . restore ( ) . toPromise ( ) . then ( done , done . fail ) ) ;
17
17
18
18
it ( 'works' , ( done ) => {
19
- const overrides = { watch : true , poll : 1000 } ;
20
- let msAvg = 1000 ;
21
- let lastTime : number ;
19
+ const overrides = { watch : true , poll : 2000 } ;
20
+ const intervals : number [ ] = [ ] ;
21
+ let startTime : number | undefined ;
22
22
runTargetSpec ( host , browserTargetSpec , overrides ) . pipe (
23
23
// Debounce 1s, otherwise changes are too close together and polling doesn't work.
24
24
debounceTime ( 1000 ) ,
25
- tap ( ( buildEvent ) => expect ( buildEvent . success ) . toBe ( true ) ) ,
26
- tap ( ( ) => {
27
- const currTime = Date . now ( ) ;
28
- if ( lastTime ) {
29
- const ms = Math . floor ( ( currTime - lastTime ) ) ;
30
- msAvg = ( msAvg + ms ) / 2 ;
25
+ tap ( ( buildEvent ) => {
26
+ expect ( buildEvent . success ) . toBe ( true ) ;
27
+ if ( startTime != undefined ) {
28
+ intervals . push ( Date . now ( ) - startTime - 1000 ) ;
31
29
}
32
- lastTime = currTime ;
30
+ startTime = Date . now ( ) ;
33
31
host . appendToFile ( 'src/main.ts' , 'console.log(1);' ) ;
34
32
} ) ,
35
- take ( 5 ) ,
33
+ take ( 6 ) ,
36
34
) . subscribe ( undefined , done . fail , ( ) => {
37
- // Check if the average is between 1750 and 2750, allowing for a 1000ms variance.
38
- expect ( msAvg ) . toBeGreaterThan ( 1750 ) ;
39
- expect ( msAvg ) . toBeLessThan ( 2750 ) ;
35
+ intervals . sort ( ) ;
36
+ const median = intervals [ Math . trunc ( intervals . length / 2 ) ] ;
37
+ expect ( median ) . toBeGreaterThan ( 1000 ) ;
38
+ expect ( median ) . toBeLessThan ( 4000 ) ;
40
39
done ( ) ;
41
40
} ) ;
42
41
} ) ;
0 commit comments