feat(canary): register kubeconfig generator in registry
Fifth entry in the registry map. Cardinality bumps 4 → 5; pending list
shrinks to {envfile, mysql} (2 remaining).
- registry.go: adds the import + token.TypeKubeconfig: kubeconfig.New()
- registry_test.go:
- TestBuild_RegistersKubeconfig added (mirrors RegistersPDF)
- TypeKubeconfig removed from TestBuild_PendingTypesNotYetRegistered
- TestBuild_OnlyExpectedTypesPresentInPhase5 renamed → InPhase6,
cardinality assertion bumped 4 → 5
Pre-audit gate clean at HEAD: go build ./... + go vet ./... + go test
-race -timeout=60s ./... + go test -tags=integration -race -timeout=300s
./internal/token/... ./internal/event/... + golangci-lint run ./...
all pass with 0 issues.
This commit is contained in:
parent
bd0c664602
commit
ceec4d37d1
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"github.com/CarterPerez-dev/cybersecurity-projects/canary-token-generator/backend/internal/token"
|
"github.com/CarterPerez-dev/cybersecurity-projects/canary-token-generator/backend/internal/token"
|
||||||
"github.com/CarterPerez-dev/cybersecurity-projects/canary-token-generator/backend/internal/token/generators"
|
"github.com/CarterPerez-dev/cybersecurity-projects/canary-token-generator/backend/internal/token/generators"
|
||||||
"github.com/CarterPerez-dev/cybersecurity-projects/canary-token-generator/backend/internal/token/generators/docx"
|
"github.com/CarterPerez-dev/cybersecurity-projects/canary-token-generator/backend/internal/token/generators/docx"
|
||||||
|
"github.com/CarterPerez-dev/cybersecurity-projects/canary-token-generator/backend/internal/token/generators/kubeconfig"
|
||||||
"github.com/CarterPerez-dev/cybersecurity-projects/canary-token-generator/backend/internal/token/generators/pdf"
|
"github.com/CarterPerez-dev/cybersecurity-projects/canary-token-generator/backend/internal/token/generators/pdf"
|
||||||
"github.com/CarterPerez-dev/cybersecurity-projects/canary-token-generator/backend/internal/token/generators/slowredirect"
|
"github.com/CarterPerez-dev/cybersecurity-projects/canary-token-generator/backend/internal/token/generators/slowredirect"
|
||||||
"github.com/CarterPerez-dev/cybersecurity-projects/canary-token-generator/backend/internal/token/generators/webbug"
|
"github.com/CarterPerez-dev/cybersecurity-projects/canary-token-generator/backend/internal/token/generators/webbug"
|
||||||
|
|
@ -24,5 +25,6 @@ func Build(_ Config) Registry {
|
||||||
token.TypeSlowRedirect: slowredirect.New(),
|
token.TypeSlowRedirect: slowredirect.New(),
|
||||||
token.TypeDocx: docx.New(),
|
token.TypeDocx: docx.New(),
|
||||||
token.TypePDF: pdf.New(),
|
token.TypePDF: pdf.New(),
|
||||||
|
token.TypeKubeconfig: kubeconfig.New(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,14 @@ func TestBuild_RegistersPDF(t *testing.T) {
|
||||||
require.Equal(t, token.TypePDF, g.Type())
|
require.Equal(t, token.TypePDF, g.Type())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestBuild_RegistersKubeconfig(t *testing.T) {
|
||||||
|
reg := registry.Build(registry.Config{BaseURL: testBaseURL})
|
||||||
|
g, ok := reg[token.TypeKubeconfig]
|
||||||
|
require.True(t, ok, "expected kubeconfig generator registered")
|
||||||
|
require.NotNil(t, g)
|
||||||
|
require.Equal(t, token.TypeKubeconfig, g.Type())
|
||||||
|
}
|
||||||
|
|
||||||
func TestBuild_UnknownTypeReturnsZeroValue(t *testing.T) {
|
func TestBuild_UnknownTypeReturnsZeroValue(t *testing.T) {
|
||||||
reg := registry.Build(registry.Config{BaseURL: testBaseURL})
|
reg := registry.Build(registry.Config{BaseURL: testBaseURL})
|
||||||
g, ok := reg["nonexistent-type"]
|
g, ok := reg["nonexistent-type"]
|
||||||
|
|
@ -56,7 +64,6 @@ func TestBuild_UnknownTypeReturnsZeroValue(t *testing.T) {
|
||||||
func TestBuild_PendingTypesNotYetRegistered(t *testing.T) {
|
func TestBuild_PendingTypesNotYetRegistered(t *testing.T) {
|
||||||
reg := registry.Build(registry.Config{BaseURL: testBaseURL})
|
reg := registry.Build(registry.Config{BaseURL: testBaseURL})
|
||||||
pending := []token.Type{
|
pending := []token.Type{
|
||||||
token.TypeKubeconfig,
|
|
||||||
token.TypeEnvfile,
|
token.TypeEnvfile,
|
||||||
token.TypeMySQL,
|
token.TypeMySQL,
|
||||||
}
|
}
|
||||||
|
|
@ -71,12 +78,12 @@ func TestBuild_PendingTypesNotYetRegistered(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestBuild_OnlyExpectedTypesPresentInPhase5(t *testing.T) {
|
func TestBuild_OnlyExpectedTypesPresentInPhase6(t *testing.T) {
|
||||||
reg := registry.Build(registry.Config{BaseURL: testBaseURL})
|
reg := registry.Build(registry.Config{BaseURL: testBaseURL})
|
||||||
require.Len(
|
require.Len(
|
||||||
t,
|
t,
|
||||||
reg,
|
reg,
|
||||||
4,
|
5,
|
||||||
"Phase 5 registers exactly four generators (webbug, slowredirect, docx, pdf); other phases append",
|
"Phase 6 registers exactly five generators (webbug, slowredirect, docx, pdf, kubeconfig); other phases append",
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue