From 1cde61efbb0e27b072fee1a32332e95a94fafddc Mon Sep 17 00:00:00 2001 From: CarterPerez-dev Date: Wed, 13 May 2026 14:37:02 -0400 Subject: [PATCH] feat(canary): register envfile generator in registry MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sixth entry in the registry map. Cardinality bumps 5 → 6; pending list shrinks to {mysql} (1 remaining). - registry.go: adds the import + token.TypeEnvfile: envfile.New() - registry_test.go: - TestBuild_RegistersEnvfile added (mirrors RegistersKubeconfig) - TypeEnvfile removed from TestBuild_PendingTypesNotYetRegistered - TestBuild_OnlyExpectedTypesPresentInPhase6 renamed → InPhase7, cardinality assertion bumped 5 → 6 Pre-audit gate clean at HEAD: go build / vet / test -race / integration tests / golangci-lint run all pass with 0 issues. --- .../token/generators/registry/registry.go | 2 ++ .../token/generators/registry/registry_test.go | 15 +++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/PROJECTS/beginner/canary-token-generator/backend/internal/token/generators/registry/registry.go b/PROJECTS/beginner/canary-token-generator/backend/internal/token/generators/registry/registry.go index 9301ed84..34b28e92 100644 --- a/PROJECTS/beginner/canary-token-generator/backend/internal/token/generators/registry/registry.go +++ b/PROJECTS/beginner/canary-token-generator/backend/internal/token/generators/registry/registry.go @@ -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/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/envfile" "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/slowredirect" @@ -26,5 +27,6 @@ func Build(_ Config) Registry { token.TypeDocx: docx.New(), token.TypePDF: pdf.New(), token.TypeKubeconfig: kubeconfig.New(), + token.TypeEnvfile: envfile.New(), } } diff --git a/PROJECTS/beginner/canary-token-generator/backend/internal/token/generators/registry/registry_test.go b/PROJECTS/beginner/canary-token-generator/backend/internal/token/generators/registry/registry_test.go index 65bfe603..b3c5ddc7 100644 --- a/PROJECTS/beginner/canary-token-generator/backend/internal/token/generators/registry/registry_test.go +++ b/PROJECTS/beginner/canary-token-generator/backend/internal/token/generators/registry/registry_test.go @@ -54,6 +54,14 @@ func TestBuild_RegistersKubeconfig(t *testing.T) { require.Equal(t, token.TypeKubeconfig, g.Type()) } +func TestBuild_RegistersEnvfile(t *testing.T) { + reg := registry.Build(registry.Config{BaseURL: testBaseURL}) + g, ok := reg[token.TypeEnvfile] + require.True(t, ok, "expected envfile generator registered") + require.NotNil(t, g) + require.Equal(t, token.TypeEnvfile, g.Type()) +} + func TestBuild_UnknownTypeReturnsZeroValue(t *testing.T) { reg := registry.Build(registry.Config{BaseURL: testBaseURL}) g, ok := reg["nonexistent-type"] @@ -64,7 +72,6 @@ func TestBuild_UnknownTypeReturnsZeroValue(t *testing.T) { func TestBuild_PendingTypesNotYetRegistered(t *testing.T) { reg := registry.Build(registry.Config{BaseURL: testBaseURL}) pending := []token.Type{ - token.TypeEnvfile, token.TypeMySQL, } for _, tt := range pending { @@ -78,12 +85,12 @@ func TestBuild_PendingTypesNotYetRegistered(t *testing.T) { } } -func TestBuild_OnlyExpectedTypesPresentInPhase6(t *testing.T) { +func TestBuild_OnlyExpectedTypesPresentInPhase7(t *testing.T) { reg := registry.Build(registry.Config{BaseURL: testBaseURL}) require.Len( t, reg, - 5, - "Phase 6 registers exactly five generators (webbug, slowredirect, docx, pdf, kubeconfig); other phases append", + 6, + "Phase 7 registers exactly six generators (webbug, slowredirect, docx, pdf, kubeconfig, envfile); other phases append", ) }