1package api 2 3import ( 4 "testing" 5 6 "github.com/go-test/deep" 7) 8 9func TestRenewer_NewRenewer(t *testing.T) { 10 t.Parallel() 11 12 client, err := NewClient(DefaultConfig()) 13 if err != nil { 14 t.Fatal(err) 15 } 16 17 cases := []struct { 18 name string 19 i *RenewerInput 20 e *Renewer 21 err bool 22 }{ 23 { 24 "nil", 25 nil, 26 nil, 27 true, 28 }, 29 { 30 "missing_secret", 31 &RenewerInput{ 32 Secret: nil, 33 }, 34 nil, 35 true, 36 }, 37 { 38 "default_grace", 39 &RenewerInput{ 40 Secret: &Secret{}, 41 }, 42 &Renewer{ 43 secret: &Secret{}, 44 }, 45 false, 46 }, 47 } 48 49 for _, tc := range cases { 50 t.Run(tc.name, func(t *testing.T) { 51 v, err := client.NewRenewer(tc.i) 52 if (err != nil) != tc.err { 53 t.Fatal(err) 54 } 55 56 if v == nil { 57 return 58 } 59 60 // Zero-out channels because reflect 61 v.client = nil 62 v.random = nil 63 v.doneCh = nil 64 v.renewCh = nil 65 v.stopCh = nil 66 67 if diff := deep.Equal(tc.e, v); diff != nil { 68 t.Error(diff) 69 } 70 }) 71 } 72} 73