Skip to content

Commit

Permalink
test: Add some tests to the RequireDeliveryToken function
Browse files Browse the repository at this point in the history
  • Loading branch information
Dobefu committed Dec 22, 2024
1 parent 0a10e57 commit 4b6e1d8
Show file tree
Hide file tree
Showing 2 changed files with 102 additions and 2 deletions.
4 changes: 2 additions & 2 deletions cmd/server/handle-routes_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ import (
)

func TestHandleRoutes(t *testing.T) {
init_env.Main("../../.env.test")

var err error

init_env.Main("../../.env.test")

err = database.Connect()
assert.Equal(t, nil, err)

Expand Down
100 changes: 100 additions & 0 deletions cmd/server/middleware/require-delivery-token_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
package middleware

import (
"fmt"
"net/http"
"net/http/httptest"
"os"
"testing"

"github.com/Dobefu/csb/cmd/init_env"
"github.com/stretchr/testify/assert"
)

func TestRequireDeliveryToken(t *testing.T) {
var err error

init_env.Main("../../../.env.test")

mux := http.NewServeMux()
RequireDeliveryToken(mux)

server := httptest.NewServer(mux)
assert.NotEqual(t, nil, server)
defer server.Close()

mux.Handle(
"/",
RequireDeliveryToken(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "")
})),
)

err = request(
fmt.Sprintf("%s/%s", server.URL, "/"),
false,
)
assert.Equal(t, nil, err)

err = request(
fmt.Sprintf("%s/%s", server.URL, "/"),
true,
)
assert.Equal(t, nil, err)

os.Setenv("DEBUG_AUTH_BYPASS", "1")

err = request(
fmt.Sprintf("%s/%s", server.URL, "/"),
false,
)
assert.Equal(t, nil, err)

os.Setenv("DEBUG_AUTH_BYPASS", "")

oldAuthToken := os.Getenv("CS_DELIVERY_TOKEN")
os.Setenv("CS_DELIVERY_TOKEN", "bogus")

err = request(
fmt.Sprintf("%s/%s", server.URL, "/"),
false,
)
assert.Equal(t, nil, err)

os.Setenv("CS_DELIVERY_TOKEN", "")

err = request(
fmt.Sprintf("%s/%s", server.URL, "/"),
false,
)
assert.Equal(t, nil, err)

os.Setenv("CS_DELIVERY_TOKEN", oldAuthToken)
}

func request(path string, withAuthToken bool) (err error) {
req, err := http.NewRequest(
"GET",
path,
nil,
)

if err != nil {
return err
}

if withAuthToken {
req.Header = http.Header{
"Authorization": {os.Getenv("CS_DELIVERY_TOKEN")},
}
}

client := http.Client{}
_, err = client.Do(req)

if err != nil {
return err
}

return nil
}

0 comments on commit 4b6e1d8

Please sign in to comment.