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  }