Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 466d69c44c | |||
| abb0256f0b |
@@ -36,8 +36,8 @@ jobs:
|
||||
- name: Build UI assets
|
||||
run: npm --prefix ./ui run build
|
||||
|
||||
- name: Run tests
|
||||
run: make test
|
||||
- name: Run Go Tests
|
||||
run: make test-both
|
||||
|
||||
build:
|
||||
name: Build
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.PHONY: build ui ui-build run docker docker-build test clean help
|
||||
.PHONY: build ui ui-build run docker docker-build test test-race test-both fmt clean help
|
||||
|
||||
APP_NAME := helix-proxy
|
||||
GO := go
|
||||
@@ -22,6 +22,9 @@ help:
|
||||
@echo " docker Build docker image (helix-proxy:dev)"
|
||||
@echo " docker-build Build docker image"
|
||||
@echo " test Run go tests"
|
||||
@echo " test-race Run go tests with race detector"
|
||||
@echo " test-both Run go tests and race detector"
|
||||
@echo " fmt Format Go sources (gofmt)"
|
||||
@echo " clean Remove build artifacts and ui/dist"
|
||||
@echo ""
|
||||
|
||||
@@ -50,7 +53,24 @@ docker docker-build:
|
||||
docker build -t helix-proxy:dev .
|
||||
|
||||
test:
|
||||
$(GO) test ./... -count=1 -race -coverprofile=coverage.out
|
||||
$(GO) test ./... -count=1
|
||||
|
||||
test-race:
|
||||
$(GO) test ./... -count=1 -race
|
||||
|
||||
test-both: test test-race
|
||||
|
||||
fmt:
|
||||
@echo "Formatting Go sources..."
|
||||
@files="$$(gofmt -l .)"; \
|
||||
if [ -n "$$files" ]; then \
|
||||
count=$$(echo "$$files" | wc -l); \
|
||||
echo "Reformatted $$count file(s):"; \
|
||||
echo "$$files" | sed 's/^/ /'; \
|
||||
echo "$$files" | xargs gofmt -w; \
|
||||
else \
|
||||
echo "All Go files already formatted."; \
|
||||
fi
|
||||
|
||||
clean:
|
||||
rm -f $(APP_NAME)
|
||||
|
||||
@@ -118,11 +118,11 @@ func TestAPI_ErrorPaths(t *testing.T) {
|
||||
assertStatus(t, apiPost(t, env.BaseURL+"/api/redirection-hosts/bad/enable", nil, token), http.StatusBadRequest)
|
||||
|
||||
first := apiPost(t, env.BaseURL+"/api/redirection-hosts", map[string]any{
|
||||
"domainNames": []string{"dup-redir.example"},
|
||||
"forwardDomainName": "target.example",
|
||||
"forwardScheme": "https",
|
||||
"preservePath": true,
|
||||
"enabled": true,
|
||||
"domainNames": []string{"dup-redir.example"},
|
||||
"forwardDomainName": "target.example",
|
||||
"forwardScheme": "https",
|
||||
"preservePath": true,
|
||||
"enabled": true,
|
||||
}, token)
|
||||
if first.StatusCode != http.StatusCreated {
|
||||
t.Fatalf("redir create: %d %s", first.StatusCode, readBody(first))
|
||||
|
||||
@@ -19,7 +19,7 @@ import (
|
||||
type testServerMode int
|
||||
|
||||
const (
|
||||
testServerAPI testServerMode = iota
|
||||
testServerAPI testServerMode = iota
|
||||
testServerAdmin
|
||||
)
|
||||
|
||||
|
||||
@@ -95,8 +95,8 @@ func NewEngine(st store.Store) *Engine {
|
||||
return &Engine{
|
||||
hosts: make(map[string]*Host),
|
||||
st: st,
|
||||
streamHandles: make(map[int]*streamHandle),
|
||||
streamRuntime: make(map[int]*streamRuntime),
|
||||
streamHandles: make(map[int]*streamHandle),
|
||||
streamRuntime: make(map[int]*streamRuntime),
|
||||
hostCerts: make(map[string]*tls.Certificate),
|
||||
certByID: make(map[int]*tls.Certificate),
|
||||
redirHosts: make(map[string]store.RedirectionHost),
|
||||
|
||||
@@ -9,10 +9,10 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
ErrDuplicateProxySource = errors.New("duplicate proxy host source domain")
|
||||
ErrDuplicateRedirectionSource = errors.New("duplicate redirection host source domain")
|
||||
ErrDuplicateDeadSource = errors.New("duplicate dead host source domain")
|
||||
ErrDuplicateStreamPort = errors.New("duplicate stream incoming port")
|
||||
ErrDuplicateProxySource = errors.New("duplicate proxy host source domain")
|
||||
ErrDuplicateRedirectionSource = errors.New("duplicate redirection host source domain")
|
||||
ErrDuplicateDeadSource = errors.New("duplicate dead host source domain")
|
||||
ErrDuplicateStreamPort = errors.New("duplicate stream incoming port")
|
||||
)
|
||||
|
||||
func IsConflictError(err error) bool {
|
||||
|
||||
Reference in New Issue
Block a user