github.com/fastly/go-fastly/v5@v5.3.0/fastly/honeycomb_test.go (about) 1 package fastly 2 3 import ( 4 "testing" 5 ) 6 7 func TestClient_Honeycombs(t *testing.T) { 8 t.Parallel() 9 10 var err error 11 var tv *Version 12 record(t, "honeycombs/version", func(c *Client) { 13 tv = testVersion(t, c) 14 }) 15 16 // Create 17 var h *Honeycomb 18 record(t, "honeycombs/create", func(c *Client) { 19 h, err = c.CreateHoneycomb(&CreateHoneycombInput{ 20 ServiceID: testServiceID, 21 ServiceVersion: tv.Number, 22 Name: "test-honeycomb", 23 Format: "%h %l %u %t \"%r\" %>s %b", 24 FormatVersion: 2, 25 Placement: "waf_debug", 26 Token: "super-secure-token", 27 Dataset: "testDataset", 28 }) 29 }) 30 if err != nil { 31 t.Fatal(err) 32 } 33 34 // Ensure deleted 35 defer func() { 36 record(t, "honeycombs/cleanup", func(c *Client) { 37 c.DeleteHoneycomb(&DeleteHoneycombInput{ 38 ServiceID: testServiceID, 39 ServiceVersion: tv.Number, 40 Name: "test-honeycomb", 41 }) 42 43 c.DeleteHoneycomb(&DeleteHoneycombInput{ 44 ServiceID: testServiceID, 45 ServiceVersion: tv.Number, 46 Name: "new-test-honeycomb", 47 }) 48 }) 49 }() 50 51 if h.Name != "test-honeycomb" { 52 t.Errorf("bad name: %q", h.Name) 53 } 54 if h.Format != "%h %l %u %t \"%r\" %>s %b" { 55 t.Errorf("bad format: %q", h.Format) 56 } 57 if h.FormatVersion != 2 { 58 t.Errorf("bad format_version: %q", h.FormatVersion) 59 } 60 if h.Placement != "waf_debug" { 61 t.Errorf("bad placement: %q", h.Placement) 62 } 63 if h.Token != "super-secure-token" { 64 t.Errorf("bad token: %q", h.Token) 65 } 66 if h.Dataset != "testDataset" { 67 t.Errorf("bad dataset: %q", h.Dataset) 68 } 69 70 // List 71 var hs []*Honeycomb 72 record(t, "honeycombs/list", func(c *Client) { 73 hs, err = c.ListHoneycombs(&ListHoneycombsInput{ 74 ServiceID: testServiceID, 75 ServiceVersion: tv.Number, 76 }) 77 }) 78 if err != nil { 79 t.Fatal(err) 80 } 81 if len(hs) < 1 { 82 t.Errorf("bad honeycombs: %v", hs) 83 } 84 85 // Get 86 var nh *Honeycomb 87 record(t, "honeycombs/get", func(c *Client) { 88 nh, err = c.GetHoneycomb(&GetHoneycombInput{ 89 ServiceID: testServiceID, 90 ServiceVersion: tv.Number, 91 Name: "test-honeycomb", 92 }) 93 }) 94 if err != nil { 95 t.Fatal(err) 96 } 97 if h.Name != nh.Name { 98 t.Errorf("bad name: %q", h.Name) 99 } 100 if h.Format != nh.Format { 101 t.Errorf("bad format: %q", h.Format) 102 } 103 if h.FormatVersion != nh.FormatVersion { 104 t.Errorf("bad format_version: %q", h.FormatVersion) 105 } 106 if h.Placement != nh.Placement { 107 t.Errorf("bad placement: %q", h.Placement) 108 } 109 if h.Token != nh.Token { 110 t.Errorf("bad token: %q", h.Token) 111 } 112 if h.Dataset != nh.Dataset { 113 t.Errorf("bad dataset: %q", h.Dataset) 114 } 115 116 // Update 117 var us *Honeycomb 118 record(t, "honeycombs/update", func(c *Client) { 119 us, err = c.UpdateHoneycomb(&UpdateHoneycombInput{ 120 ServiceID: testServiceID, 121 ServiceVersion: tv.Number, 122 Name: "test-honeycomb", 123 NewName: String("new-test-honeycomb"), 124 Token: String("new-token"), 125 Dataset: String("newDataset"), 126 }) 127 }) 128 if err != nil { 129 t.Fatal(err) 130 } 131 if us.Name != "new-test-honeycomb" { 132 t.Errorf("bad name: %q", us.Name) 133 } 134 if us.Token != "new-token" { 135 t.Errorf("bad token: %q", us.Token) 136 } 137 if us.Dataset != "newDataset" { 138 t.Errorf("bad dataset: %q", us.Dataset) 139 } 140 141 // Delete 142 record(t, "honeycombs/delete", func(c *Client) { 143 err = c.DeleteHoneycomb(&DeleteHoneycombInput{ 144 ServiceID: testServiceID, 145 ServiceVersion: tv.Number, 146 Name: "new-test-honeycomb", 147 }) 148 }) 149 if err != nil { 150 t.Fatal(err) 151 } 152 } 153 154 func TestClient_ListHoneycombs_validation(t *testing.T) { 155 var err error 156 _, err = testClient.ListHoneycombs(&ListHoneycombsInput{ 157 ServiceID: "", 158 }) 159 if err != ErrMissingServiceID { 160 t.Errorf("bad error: %s", err) 161 } 162 163 _, err = testClient.ListHoneycombs(&ListHoneycombsInput{ 164 ServiceID: "foo", 165 ServiceVersion: 0, 166 }) 167 if err != ErrMissingServiceVersion { 168 t.Errorf("bad error: %s", err) 169 } 170 } 171 172 func TestClient_CreateHoneycomb_validation(t *testing.T) { 173 var err error 174 _, err = testClient.CreateHoneycomb(&CreateHoneycombInput{ 175 ServiceID: "", 176 }) 177 if err != ErrMissingServiceID { 178 t.Errorf("bad error: %s", err) 179 } 180 181 _, err = testClient.CreateHoneycomb(&CreateHoneycombInput{ 182 ServiceID: "foo", 183 ServiceVersion: 0, 184 }) 185 if err != ErrMissingServiceVersion { 186 t.Errorf("bad error: %s", err) 187 } 188 } 189 190 func TestClient_GetHoneycomb_validation(t *testing.T) { 191 var err error 192 _, err = testClient.GetHoneycomb(&GetHoneycombInput{ 193 ServiceID: "", 194 }) 195 if err != ErrMissingServiceID { 196 t.Errorf("bad error: %s", err) 197 } 198 199 _, err = testClient.GetHoneycomb(&GetHoneycombInput{ 200 ServiceID: "foo", 201 ServiceVersion: 0, 202 }) 203 if err != ErrMissingServiceVersion { 204 t.Errorf("bad error: %s", err) 205 } 206 207 _, err = testClient.GetHoneycomb(&GetHoneycombInput{ 208 ServiceID: "foo", 209 ServiceVersion: 1, 210 Name: "", 211 }) 212 if err != ErrMissingName { 213 t.Errorf("bad error: %s", err) 214 } 215 } 216 217 func TestClient_UpdateHoneycomb_validation(t *testing.T) { 218 var err error 219 _, err = testClient.UpdateHoneycomb(&UpdateHoneycombInput{ 220 ServiceID: "", 221 }) 222 if err != ErrMissingServiceID { 223 t.Errorf("bad error: %s", err) 224 } 225 226 _, err = testClient.UpdateHoneycomb(&UpdateHoneycombInput{ 227 ServiceID: "foo", 228 ServiceVersion: 0, 229 }) 230 if err != ErrMissingServiceVersion { 231 t.Errorf("bad error: %s", err) 232 } 233 234 _, err = testClient.UpdateHoneycomb(&UpdateHoneycombInput{ 235 ServiceID: "foo", 236 ServiceVersion: 1, 237 Name: "", 238 }) 239 if err != ErrMissingName { 240 t.Errorf("bad error: %s", err) 241 } 242 } 243 244 func TestClient_DeleteHoneycomb_validation(t *testing.T) { 245 var err error 246 err = testClient.DeleteHoneycomb(&DeleteHoneycombInput{ 247 ServiceID: "", 248 }) 249 if err != ErrMissingServiceID { 250 t.Errorf("bad error: %s", err) 251 } 252 253 err = testClient.DeleteHoneycomb(&DeleteHoneycombInput{ 254 ServiceID: "foo", 255 ServiceVersion: 0, 256 }) 257 if err != ErrMissingServiceVersion { 258 t.Errorf("bad error: %s", err) 259 } 260 261 err = testClient.DeleteHoneycomb(&DeleteHoneycombInput{ 262 ServiceID: "foo", 263 ServiceVersion: 1, 264 Name: "", 265 }) 266 if err != ErrMissingName { 267 t.Errorf("bad error: %s", err) 268 } 269 }