From a8eba1b0dfc71211603b40a53f74658bf97da47d Mon Sep 17 00:00:00 2001 From: Daan Sprenkels Date: Mon, 27 Jul 2020 18:46:45 +0200 Subject: [PATCH] db: Add a test for key validation; NFC --- internal/db/paste_test.go | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 internal/db/paste_test.go diff --git a/internal/db/paste_test.go b/internal/db/paste_test.go new file mode 100644 index 0000000..7d66aa2 --- /dev/null +++ b/internal/db/paste_test.go @@ -0,0 +1,38 @@ +package db + +import "testing" + +func TestValidatePasteKey(t *testing.T) { + tests := []struct { + key string + wantErr bool + errKind error + }{ + {"xd42__", false, nil}, + {"xd42_*", true, ErrKeyInvalidChar}, + {"xd42_/", true, ErrKeyInvalidChar}, + {"xd42_=", true, ErrKeyInvalidChar}, + {"xd42_", true, ErrKeyInvalidLength}, + {"xd42", true, ErrKeyInvalidLength}, + {"xd4", true, ErrKeyInvalidLength}, + {"xd", true, ErrKeyInvalidLength}, + {"x", true, ErrKeyInvalidLength}, + {"", true, ErrKeyInvalidLength}, + + {"KoJ5", false, nil}, + + {"__dGSJIIbBpr-SD0", false, nil}, + {"__dGSJIIbBpr-SD", true, ErrKeyInvalidLength}, + } + for _, tt := range tests { + t.Run(tt.key, func(t *testing.T) { + err := ValidatePasteKey(tt.key) + if (err != nil) != tt.wantErr { + t.Errorf("ValidatePasteKey() got error = %v, want error %v", err != nil, tt.wantErr) + } + if (err != nil) && err != tt.errKind { + t.Errorf("ValidatePasteKey() error = %v, want errKind %v", err, tt.errKind) + } + }) + } +}