github.com/fastly/go-fastly/v5@v5.3.0/fastly/purge_test.go (about) 1 package fastly 2 3 import ( 4 "testing" 5 ) 6 7 // TestClient_Purge validates no runtime panics are raised by the Purge method. 8 // 9 // Specifically, we're ensuring that the setting of the `Soft` key to `true` 10 // (which will require assigning a header to the RequestOptions.Headers field) 11 // doesn't cause `panic: assignment to entry in nil map`. 12 func TestClient_Purge(t *testing.T) { 13 t.Parallel() 14 15 client := DefaultClient() 16 url := "http://gofastly.fastly-testing.com/foo/bar" 17 18 _, err := client.Purge(&PurgeInput{ 19 URL: url, 20 Soft: true, 21 }) 22 if err == nil { 23 t.Fatalf("we've accidentally purged a real URL: %s", url) 24 } 25 } 26 27 func TestClient_PurgeKey(t *testing.T) { 28 t.Parallel() 29 30 var err error 31 var purge *Purge 32 record(t, "purges/purge_by_key", func(c *Client) { 33 purge, err = c.PurgeKey(&PurgeKeyInput{ 34 ServiceID: testServiceID, 35 Key: "foo", 36 }) 37 }) 38 if err != nil { 39 t.Fatal(err) 40 } 41 42 if purge.Status != "ok" { 43 t.Error("bad status") 44 } 45 if len(purge.ID) == 0 { 46 t.Error("bad id") 47 } 48 } 49 50 func TestClient_PurgeKeys(t *testing.T) { 51 t.Parallel() 52 53 var err error 54 var purges map[string]string 55 record(t, "purges/purge_by_keys", func(c *Client) { 56 purges, err = c.PurgeKeys(&PurgeKeysInput{ 57 ServiceID: testServiceID, 58 Keys: []string{"foo", "bar", "baz"}, 59 }) 60 }) 61 if err != nil { 62 t.Fatal(err) 63 } 64 65 if len(purges) != 3 { 66 t.Error("bad length") 67 } 68 } 69 70 func TestClient_PurgeAll(t *testing.T) { 71 t.Parallel() 72 73 var err error 74 var purge *Purge 75 record(t, "purges/purge_all", func(c *Client) { 76 purge, err = c.PurgeAll(&PurgeAllInput{ 77 ServiceID: testServiceID, 78 }) 79 }) 80 if err != nil { 81 t.Fatal(err) 82 } 83 84 if purge.Status != "ok" { 85 t.Error("bad status") 86 } 87 }