dnscontrol/pkg/cloudflare-go/workers_for_platforms_test.go
Tom Limoncelli 7fd6a74e0c
CLOUDFLAREAPI: CF_REDIRECT/CF_TEMP_REDIRECT should dtrt using Single Redirects (#3002)
Co-authored-by: Josh Zhang <jzhang1@stackoverflow.com>
2024-06-18 17:38:50 -04:00

140 lines
4.8 KiB
Go

package cloudflare
import (
"context"
"fmt"
"net/http"
"testing"
"github.com/stretchr/testify/assert"
)
const (
listDispatchNamespaces = `{
"result": [
{
"namespace_id": "6446f71d-13b3-4bbc-a8a4-9e18760499c8",
"namespace_name": "test",
"created_on": "2024-02-20T17:26:15.4134Z",
"created_by": "4e599df4216133509abaac54b109a647",
"modified_on": "2024-02-20T17:26:15.4134Z",
"modified_by": "4e599df4216133509abaac54b109a647"
},
{
"namespace_id": "d6851dad-d412-4509-ae13-a364bc5f125a",
"namespace_name": "test-2",
"created_on": "2024-02-20T20:28:36.560575Z",
"created_by": "4e599df4216133509abaac54b109a647",
"modified_on": "2024-02-20T20:28:36.560575Z",
"modified_by": "4e599df4216133509abaac54b109a647"
}
],
"success": true,
"errors": [],
"messages": []
}`
getDispatchNamespace = `{
"result": {
"namespace_id": "6446f71d-13b3-4bbc-a8a4-9e18760499c8",
"namespace_name": "test",
"created_on": "2024-02-20T17:26:15.4134Z",
"created_by": "4e599df4216133509abaac54b109a647",
"modified_on": "2024-02-20T17:26:15.4134Z",
"modified_by": "4e599df4216133509abaac54b109a647"
},
"success": true,
"errors": [],
"messages": []
}`
deleteDispatchNamespace = `{
"result": null,
"success": true,
"errors": [],
"messages": []
}`
)
func TestListWorkersForPlatformsDispatchNamespaces(t *testing.T) {
setup()
defer teardown()
mux.HandleFunc("/accounts/"+testAccountID+"/workers/dispatch/namespaces", func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, http.MethodGet, r.Method, "Expected method 'GET', got %s", r.Method)
w.Header().Set("content-type", "application/json")
fmt.Fprint(w, listDispatchNamespaces)
})
res, err := client.ListWorkersForPlatformsDispatchNamespaces(context.Background(), AccountIdentifier(testAccountID))
assert.NoError(t, err)
assert.Len(t, res.Result, 2)
assert.Equal(t, "6446f71d-13b3-4bbc-a8a4-9e18760499c8", res.Result[0].NamespaceId)
assert.Equal(t, "test", res.Result[0].NamespaceName)
assert.Equal(t, "4e599df4216133509abaac54b109a647", res.Result[0].CreatedBy)
assert.Equal(t, "4e599df4216133509abaac54b109a647", res.Result[0].ModifiedBy)
assert.Equal(t, "d6851dad-d412-4509-ae13-a364bc5f125a", res.Result[1].NamespaceId)
assert.Equal(t, "test-2", res.Result[1].NamespaceName)
assert.Equal(t, "4e599df4216133509abaac54b109a647", res.Result[1].CreatedBy)
assert.Equal(t, "4e599df4216133509abaac54b109a647", res.Result[1].ModifiedBy)
}
func TestGetWorkersForPlatformsDispatchNamespace(t *testing.T) {
setup()
defer teardown()
mux.HandleFunc("/accounts/"+testAccountID+"/workers/dispatch/namespaces/test", func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, http.MethodGet, r.Method, "Expected method 'GET', got %s", r.Method)
w.Header().Set("content-type", "application/json")
fmt.Fprint(w, getDispatchNamespace)
})
res, err := client.GetWorkersForPlatformsDispatchNamespace(context.Background(), AccountIdentifier(testAccountID), "test")
assert.NoError(t, err)
assert.Equal(t, "6446f71d-13b3-4bbc-a8a4-9e18760499c8", res.Result.NamespaceId)
assert.Equal(t, "test", res.Result.NamespaceName)
assert.Equal(t, "4e599df4216133509abaac54b109a647", res.Result.CreatedBy)
assert.Equal(t, "4e599df4216133509abaac54b109a647", res.Result.ModifiedBy)
}
func TestCreateWorkersForPlatformsDispatchNamespace(t *testing.T) {
setup()
defer teardown()
mux.HandleFunc("/accounts/"+testAccountID+"/workers/dispatch/namespaces", func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, http.MethodPost, r.Method, "Expected method 'POST', got %s", r.Method)
w.Header().Set("content-type", "application/json")
fmt.Fprint(w, getDispatchNamespace)
})
res, err := client.CreateWorkersForPlatformsDispatchNamespace(context.Background(), AccountIdentifier(testAccountID), CreateWorkersForPlatformsDispatchNamespaceParams{
Name: "test",
})
assert.NoError(t, err)
assert.Equal(t, "6446f71d-13b3-4bbc-a8a4-9e18760499c8", res.Result.NamespaceId)
assert.Equal(t, "test", res.Result.NamespaceName)
assert.Equal(t, "4e599df4216133509abaac54b109a647", res.Result.CreatedBy)
assert.Equal(t, "4e599df4216133509abaac54b109a647", res.Result.ModifiedBy)
}
func TestDeleteWorkersForPlatformsDispatchNamespace(t *testing.T) {
setup()
defer teardown()
mux.HandleFunc("/accounts/"+testAccountID+"/workers/dispatch/namespaces/test", func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, http.MethodDelete, r.Method, "Expected method 'DELETE', got %s", r.Method)
w.Header().Set("content-type", "application/json")
fmt.Fprint(w, deleteDispatchNamespace)
})
err := client.DeleteWorkersForPlatformsDispatchNamespace(context.Background(), AccountIdentifier(testAccountID), "test")
assert.NoError(t, err)
}