1
1
/* eslint-env serviceworker */
2
2
/// <reference path="../../../../../types/index.d.ts" />
3
+ import { pass , fail , assert , assertThrows } from "../../../assertions.js" ;
3
4
4
5
addEventListener ( "fetch" , ( ) => {
5
6
try {
@@ -752,134 +753,3 @@ addEventListener("fetch", () => {
752
753
return fail ( error . message )
753
754
}
754
755
} ) ;
755
-
756
-
757
- // Testing/Assertion functions //
758
-
759
- function pass ( message = '' ) {
760
- return new Response ( message )
761
- }
762
-
763
- function fail ( message = '' ) {
764
- return new Response ( message , { status : 500 } )
765
- }
766
-
767
- function assert ( actual , expected , code ) {
768
- if ( ! deepEqual ( actual , expected ) ) {
769
- return fail ( `Expected \`${ code } \` to equal \`${ JSON . stringify ( expected ) } \` - Found \`${ JSON . stringify ( actual ) } \`` )
770
- }
771
- }
772
-
773
- function assertThrows ( func , errorClass , errorMessage ) {
774
- try {
775
- func ( )
776
- return fail ( `Expected \`${ func . toString ( ) } \` to throw - Found it did not throw` )
777
- } catch ( error ) {
778
- if ( errorClass ) {
779
- if ( ( error instanceof errorClass ) === false ) {
780
- return fail ( `Expected \`${ func . toString ( ) } \` to throw instance of \`${ errorClass . name } \` - Found instance of \`${ error . name } \`` )
781
- }
782
- }
783
-
784
- if ( errorMessage ) {
785
- if ( error . message !== errorMessage ) {
786
- return fail ( `Expected \`${ func . toString ( ) } \` to throw error message of \`${ errorMessage } \` - Found \`${ error . message } \`` )
787
- }
788
- }
789
- }
790
- }
791
-
792
- // eslint-disable-next-line no-unused-vars
793
- function assertDoesNotThrow ( func ) {
794
- try {
795
- func ( )
796
- } catch ( error ) {
797
- return fail ( `Expected \`${ func . toString ( ) } \` to not throw - Found it did throw: ${ error . name } : ${ error . message } ` )
798
- }
799
- }
800
-
801
- /**
802
- * Tests for deep equality between two values.
803
- *
804
- * @param {* } a - first comparison value
805
- * @param {* } b - second comparison value
806
- * @returns {boolean } boolean indicating if `a` is deep equal to `b`
807
- *
808
- * @example
809
- * var bool = deepEqual( [ 1, 2, 3 ], [ 1, 2, 3 ] );
810
- * // returns true
811
- *
812
- * @example
813
- * var bool = deepEqual( [ 1, 2, 3 ], [ 1, 2, '3' ] );
814
- * // returns false
815
- *
816
- * @example
817
- * var bool = deepEqual( { 'a': 2 }, { 'a': [ 2 ] } );
818
- * // returns false
819
- *
820
- * @example
821
- * var bool = deepEqual( [], {} );
822
- * // returns false
823
- *
824
- * @example
825
- * var bool = deepEqual( null, null );
826
- * // returns true
827
- */
828
- function deepEqual ( a , b ) {
829
- var aKeys ;
830
- var bKeys ;
831
- var typeA ;
832
- var typeB ;
833
- var key ;
834
- var i ;
835
-
836
- typeA = typeof a ;
837
- typeB = typeof b ;
838
- if ( a === null || typeA !== 'object' ) {
839
- if ( b === null || typeB !== 'object' ) {
840
- return a === b ;
841
- }
842
- return false ;
843
- }
844
- // Case: `a` is of type 'object'
845
- if ( typeB !== 'object' ) {
846
- return false ;
847
- }
848
- if ( Object . getPrototypeOf ( a ) !== Object . getPrototypeOf ( b ) ) {
849
- return false ;
850
- }
851
- if ( a instanceof Date ) {
852
- return a . getTime ( ) === b . getTime ( ) ;
853
- }
854
- if ( a instanceof RegExp ) {
855
- return a . source === b . source && a . flags === b . flags ;
856
- }
857
- if ( a instanceof Error ) {
858
- if ( a . message !== b . message || a . name !== b . name ) {
859
- return false ;
860
- }
861
- }
862
-
863
- aKeys = Object . keys ( a ) ;
864
- bKeys = Object . keys ( b ) ;
865
- if ( aKeys . length !== bKeys . length ) {
866
- return false ;
867
- }
868
- aKeys . sort ( ) ;
869
- bKeys . sort ( ) ;
870
-
871
- // Cheap key test:
872
- for ( i = 0 ; i < aKeys . length ; i ++ ) {
873
- if ( aKeys [ i ] !== bKeys [ i ] ) {
874
- return false ;
875
- }
876
- }
877
- // Possibly expensive deep equality test for each corresponding key:
878
- for ( i = 0 ; i < aKeys . length ; i ++ ) {
879
- key = aKeys [ i ] ;
880
- if ( ! deepEqual ( a [ key ] , b [ key ] ) ) {
881
- return false ;
882
- }
883
- }
884
- return typeA === typeB ;
885
- }
0 commit comments