diff --git a/did/did.go b/did/did.go index 79d5e6d..68f7219 100644 --- a/did/did.go +++ b/did/did.go @@ -116,3 +116,11 @@ func Parse(str string) (DID, error) { buf = append(buf, suffix...) return DID{str: string(buf), code: DIDCore}, nil } + +func MustParse(str string) DID { + did, err := Parse(str) + if err != nil { + panic(err) + } + return did +} diff --git a/did/did_test.go b/did/did_test.go index 47cfe96..6ee0b81 100644 --- a/did/did_test.go +++ b/did/did_test.go @@ -2,6 +2,8 @@ package did import ( "testing" + + "github.com/stretchr/testify/require" ) func TestParseDIDKey(t *testing.T) { @@ -15,6 +17,18 @@ func TestParseDIDKey(t *testing.T) { } } +func TestMustParseDIDKey(t *testing.T) { + str := "did:key:z6Mkod5Jr3yd5SC7UDueqK4dAAw5xYJYjksy722tA9Boxc4z" + require.NotPanics(t, func() { + d := MustParse(str) + require.Equal(t, str, d.String()) + }) + str = "did:key:z7Mkod5Jr3yd5SC7UDueqK4dAAw5xYJYjksy722tA9Boxc4z" + require.Panics(t, func() { + MustParse(str) + }) +} + func TestDecodeDIDKey(t *testing.T) { str := "did:key:z6Mkod5Jr3yd5SC7UDueqK4dAAw5xYJYjksy722tA9Boxc4z" d0, err := Parse(str)