@@ -777,14 +777,49 @@ func TestLoggable(t *testing.T) {
777
777
}
778
778
}
779
779
780
- func TestErrInvalidCid (t * testing.T ) {
781
- _ , err := Decode ("not-a-cid" )
782
- if err == nil {
783
- t .Fatal ("expected error" )
780
+ func TestErrInvalidCidIs (t * testing.T ) {
781
+ for i , test := range []struct {
782
+ err error
783
+ target error
784
+ }{
785
+ {& ErrInvalidCid {}, ErrInvalidCid {}},
786
+ {ErrInvalidCid {}, & ErrInvalidCid {}},
787
+ {ErrInvalidCid {}, ErrInvalidCid {}},
788
+ {& ErrInvalidCid {}, & ErrInvalidCid {}},
789
+ } {
790
+ if ! errors .Is (test .err , test .target ) {
791
+ t .Fatalf ("expected error to be ErrInvalidCid, case %d" , i )
792
+ }
784
793
}
794
+ }
785
795
786
- is := errors .Is (err , ErrInvalidCid {})
787
- if ! is {
788
- t .Fatal ("expected error to be ErrInvalidCid" )
796
+ func TestErrInvalidCid (t * testing.T ) {
797
+ run := func (cid Cid , err error ) {
798
+ if err == nil {
799
+ t .Fatal ("expected error" )
800
+ }
801
+
802
+ if ! strings .HasPrefix (err .Error (), "invalid cid: " ) {
803
+ t .Fatal (`expected error message to contain "invalid cid: "` )
804
+ }
805
+
806
+ is := errors .Is (err , ErrInvalidCid {})
807
+ if ! is {
808
+ t .Fatal ("expected error to be ErrInvalidCid" )
809
+ }
810
+
811
+ if ! errors .Is (err , & ErrInvalidCid {}) {
812
+ t .Fatal ("expected error to be &ErrInvalidCid" )
813
+ }
789
814
}
815
+
816
+ run (Decode ("" ))
817
+ run (Decode ("not-a-cid" ))
818
+ run (Decode ("bafyInvalid" ))
819
+ run (Decode ("QmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zIII" ))
820
+ run (Cast ([]byte ("invalid" )))
821
+ run (Parse ("not-a-cid" ))
822
+ run (Parse ("bafyInvalid" ))
823
+ run (Parse ("QmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zIII" ))
824
+ run (Parse (123 ))
790
825
}
0 commit comments