github.com/influxdata/influxdb/v2@v2.7.6/secret_test.go (about) 1 package influxdb 2 3 import ( 4 "encoding/json" 5 "testing" 6 7 "github.com/google/go-cmp/cmp" 8 ) 9 10 func TestSecretFieldJSON(t *testing.T) { 11 cases := []struct { 12 name string 13 fld *SecretField 14 json string 15 target SecretField 16 }{ 17 { 18 name: "regular", 19 fld: &SecretField{Key: "some key"}, 20 json: `"secret: some key"`, 21 target: SecretField{Key: "some key"}, 22 }, 23 {name: "blank", fld: &SecretField{}, json: `""`}, 24 { 25 name: "with value", 26 fld: &SecretField{ 27 Key: "some key", 28 Value: strPtr("some value"), 29 }, 30 json: `"secret: some key"`, 31 target: SecretField{ 32 Key: "some key", 33 }, 34 }, 35 { 36 name: "unmarshal a post", 37 json: `"some value"`, 38 target: SecretField{ 39 Value: strPtr("some value"), 40 }, 41 }, 42 } 43 for _, c := range cases { 44 if c.fld != nil { 45 serialized, err := json.Marshal(c.fld) 46 if err != nil { 47 t.Fatalf("%s failed, secret key marshal err: %q", c.name, err.Error()) 48 } 49 if string(serialized) != c.json { 50 t.Fatalf("%s failed, secret key marshal result is unexpected, got %q, want %q", c.name, string(serialized), c.json) 51 } 52 } 53 var deserialized SecretField 54 if err := json.Unmarshal([]byte(c.json), &deserialized); err != nil { 55 t.Fatalf("%s failed, secret key unmarshal err: %q", c.name, err.Error()) 56 } 57 if diff := cmp.Diff(deserialized, c.target); diff != "" { 58 t.Fatalf("%s failed, secret key unmarshal result is unexpected, diff %s", c.name, diff) 59 } 60 } 61 }