1package main23import (4 "bytes"5 "encoding/json"6 "strings"7 "testing"8)910func TestKeygenProducesUsableKeyPair(t *testing.T) {11 var out bytes.Buffer12 if err := keygen(&out); err != nil {13 t.Fatal(err)14 }15 var got map[string]string16 if err := json.Unmarshal(out.Bytes(), &got); err != nil {17 t.Fatal(err)18 }19 if got["secret"] == "" || got["pubkey"] == "" {20 t.Fatalf("incomplete keygen result: %#v", got)21 }22}2324func TestRPCUnknownMethodReturnsErrorBeforeEOF(t *testing.T) {25 var keyOut bytes.Buffer26 if err := keygen(&keyOut); err != nil {27 t.Fatal(err)28 }29 var pair map[string]string30 if err := json.Unmarshal(keyOut.Bytes(), &pair); err != nil {31 t.Fatal(err)32 }33 t.Setenv("TINY_PRIVATE_KEY_TEST", pair["secret"])34 var out bytes.Buffer35 input := strings.NewReader("{\"id\":7,\"method\":\"bogus\",\"params\":{}}\n")36 if err := rpc([]string{"--relay", "http://relay.invalid", "--key-env", "TINY_PRIVATE_KEY_TEST"}, input, &out); err != nil {37 t.Fatal(err)38 }39 var got response40 if err := json.Unmarshal(out.Bytes(), &got); err != nil {41 t.Fatal(err)42 }43 if got.Error == nil || got.Error.Message == "" {44 t.Fatalf("missing RPC error: %s", out.String())45 }46}