types/tkatype: add test for MarshaledSignature's JSON format

Lock in its wire format before a potential change to its Go type.

Updates #1909

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick 2023-08-19 19:29:26 -07:00 committed by Brad Fitzpatrick
parent 7dec09d169
commit 93a806ba31
1 changed files with 21 additions and 0 deletions

View File

@ -4,6 +4,7 @@
package tkatype
import (
"encoding/json"
"testing"
"golang.org/x/crypto/blake2s"
@ -20,3 +21,23 @@ func TestSigHashSize(t *testing.T) {
t.Errorf("NKSSigHash is wrong size: got %d, want %d", len(nksHash), blake2s.Size)
}
}
func TestMarshaledSignatureJSON(t *testing.T) {
sig := MarshaledSignature("abcdef")
j, err := json.Marshal(sig)
if err != nil {
t.Fatal(err)
}
const encoded = `"YWJjZGVm"`
if string(j) != encoded {
t.Errorf("got JSON %q; want %q", j, encoded)
}
var back MarshaledSignature
if err := json.Unmarshal([]byte(encoded), &back); err != nil {
t.Fatal(err)
}
if string(back) != string(sig) {
t.Errorf("decoded JSON back to %q; want %q", back, sig)
}
}