@@ -80,6 +80,68 @@ test('Can match by properties', (t) => {
8080 )
8181} )
8282
83+ test ( 'Can match by multiple booleans' , ( t ) => {
84+ const switchStatement = BaseError . switch ( 0 )
85+ t . false (
86+ switchStatement
87+ . case ( [ false , false ] , suffix )
88+ . default ( )
89+ . message . endsWith ( suffix ) ,
90+ )
91+ t . true (
92+ switchStatement
93+ . case ( [ false , true ] , suffix )
94+ . default ( )
95+ . message . endsWith ( suffix ) ,
96+ )
97+ t . true (
98+ switchStatement
99+ . case ( [ true , false ] , suffix )
100+ . default ( )
101+ . message . endsWith ( suffix ) ,
102+ )
103+ t . true (
104+ switchStatement
105+ . case ( [ true , true ] , suffix )
106+ . default ( )
107+ . message . endsWith ( suffix ) ,
108+ )
109+ } )
110+
111+ test ( 'Can match by multiple error names' , ( t ) => {
112+ const oneError = new OneError ( 'test' )
113+ const switchStatement = BaseError . switch ( oneError )
114+ t . false (
115+ switchStatement
116+ . case ( [ '.' , TwoError . name ] , suffix )
117+ . default ( )
118+ . message . endsWith ( suffix ) ,
119+ )
120+ t . true (
121+ switchStatement
122+ . case ( [ '.' , OneError . name ] , suffix )
123+ . default ( )
124+ . message . endsWith ( suffix ) ,
125+ )
126+ } )
127+
128+ test ( 'Can match by mixed conditions' , ( t ) => {
129+ const oneError = new OneError ( 'test' )
130+ const switchStatement = BaseError . switch ( oneError )
131+ t . false (
132+ switchStatement
133+ . case ( [ false , TwoError . name ] , suffix )
134+ . default ( )
135+ . message . endsWith ( suffix ) ,
136+ )
137+ t . true (
138+ switchStatement
139+ . case ( [ false , OneError . name ] , suffix )
140+ . default ( )
141+ . message . endsWith ( suffix ) ,
142+ )
143+ } )
144+
83145test ( 'Exceptions in filters are propagated' , ( t ) => {
84146 t . throws ( BaseError . switch ( '' ) . case . bind ( undefined , unsafeFunc , suffix ) )
85147} )
0 commit comments