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  }