File tree Expand file tree Collapse file tree 2 files changed +40
-0
lines changed Expand file tree Collapse file tree 2 files changed +40
-0
lines changed Original file line number Diff line number Diff line change
1
+ import { errorString , Language } from "./error"
2
+
3
+ describe ( "error" , ( ) => {
4
+ describe ( "errorStr" , ( ) => {
5
+ it ( "returns message if error" , ( ) => {
6
+ expect ( errorString ( new Error ( "foobar" ) ) ) . toBe ( "foobar" )
7
+ } )
8
+ it ( "returns message if string" , ( ) => {
9
+ expect ( errorString ( "bazzle" ) ) . toBe ( "bazzle" )
10
+ } )
11
+ it ( "returns message if undefined or empty" , ( ) => {
12
+ expect ( errorString ( undefined ) ) . toBe ( Language . noError )
13
+ expect ( errorString ( "" ) ) . toBe ( Language . noError )
14
+ } )
15
+ it ( "returns message if anything else" , ( ) => {
16
+ expect ( errorString ( { qux : "fred" } ) ) . toBe ( Language . unexpectedError )
17
+ expect ( errorString ( { qux : 1 } ) ) . toBe ( Language . unexpectedError )
18
+ } )
19
+ } )
20
+ } )
Original file line number Diff line number Diff line change
1
+ export const Language = {
2
+ unexpectedError : "Unexpected error: see console for details" ,
3
+ noError : "No error provided" ,
4
+ }
5
+
6
+ /**
7
+ * Best effort to get a string from what could be an error or anything else.
8
+ */
9
+ export const errorString = ( error : Error | unknown ) : string | undefined => {
10
+ if ( error instanceof Error ) {
11
+ return error . message
12
+ } else if ( typeof error === "string" ) {
13
+ return error || Language . noError
14
+ } else if ( typeof error !== "undefined" ) {
15
+ console . warn ( error )
16
+ return Language . unexpectedError
17
+ } else {
18
+ return Language . noError
19
+ }
20
+ }
You can’t perform that action at this time.
0 commit comments