@@ -37,6 +37,28 @@ describe('WrappedSnapError', () => {
3737 } ) ;
3838 } ) ;
3939
40+ it ( 'wraps an error without a stack' , ( ) => {
41+ const error = new Error ( 'foo' ) ;
42+ delete error . stack ;
43+
44+ const wrapped = new WrappedSnapError ( error ) ;
45+
46+ expect ( wrapped ) . toBeInstanceOf ( Error ) ;
47+ expect ( wrapped ) . toBeInstanceOf ( WrappedSnapError ) ;
48+ expect ( wrapped . name ) . toBe ( 'WrappedSnapError' ) ;
49+ expect ( wrapped . message ) . toBe ( 'foo' ) ;
50+ expect ( wrapped . stack ) . toBeDefined ( ) ;
51+ expect ( wrapped . toJSON ( ) ) . toStrictEqual ( {
52+ code : SNAP_ERROR_WRAPPER_CODE ,
53+ message : SNAP_ERROR_WRAPPER_MESSAGE ,
54+ data : {
55+ cause : {
56+ message : 'foo' ,
57+ } ,
58+ } ,
59+ } ) ;
60+ } ) ;
61+
4062 it ( 'wraps a JSON-RPC error' , ( ) => {
4163 const error = new JsonRpcError ( - 1 , 'foo' ) ;
4264 const wrapped = new WrappedSnapError ( error ) ;
@@ -278,6 +300,19 @@ describe('unwrapError', () => {
278300 expect ( handled ) . toBe ( false ) ;
279301 } ) ;
280302
303+ it ( 'unwraps an error without a stack' , ( ) => {
304+ const error = new Error ( 'foo' ) ;
305+ delete error . stack ;
306+
307+ const [ unwrappedError , handled ] = unwrapError ( error ) ;
308+
309+ expect ( unwrappedError ) . toBeInstanceOf ( Error ) ;
310+ expect ( unwrappedError . code ) . toBe ( errorCodes . rpc . internal ) ;
311+ expect ( unwrappedError . message ) . toBe ( 'foo' ) ;
312+ expect ( unwrappedError . stack ) . toBeUndefined ( ) ;
313+ expect ( handled ) . toBe ( false ) ;
314+ } ) ;
315+
281316 it ( 'unwraps double wrapped JSON-RPC errors' , ( ) => {
282317 const error = new JsonRpcError ( - 31001 , 'Wrapped Snap Error' , {
283318 cause : {
0 commit comments