feat(canary): register docx generator in registry
Phase 4 Task 4.5 — adds token.TypeDocx: docx.New() to registry.Build. Test updates: - TestBuild_RegistersDocx: new, mirrors the webbug + slowredirect registration tests - TestBuild_PendingTypesNotYetRegistered: drops TypeDocx from the pending list (4 remain: pdf, kubeconfig, envfile, mysql) - TestBuild_OnlyExpectedTypesPresentInPhase3 → TestBuild_OnlyExpectedTypesPresentInPhase4: cardinality assertion bumped from 2 to 3
This commit is contained in:
parent
82bb3a9f14
commit
5884f98616
|
|
@ -6,6 +6,7 @@ package registry
|
||||||
import (
|
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/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"
|
||||||
)
|
)
|
||||||
|
|
@ -20,5 +21,6 @@ func Build(_ Config) Registry {
|
||||||
return Registry{
|
return Registry{
|
||||||
token.TypeWebbug: webbug.New(),
|
token.TypeWebbug: webbug.New(),
|
||||||
token.TypeSlowRedirect: slowredirect.New(),
|
token.TypeSlowRedirect: slowredirect.New(),
|
||||||
|
token.TypeDocx: docx.New(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,14 @@ func TestBuild_RegistersSlowRedirect(t *testing.T) {
|
||||||
require.Equal(t, token.TypeSlowRedirect, g.Type())
|
require.Equal(t, token.TypeSlowRedirect, g.Type())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestBuild_RegistersDocx(t *testing.T) {
|
||||||
|
reg := registry.Build(registry.Config{BaseURL: testBaseURL})
|
||||||
|
g, ok := reg[token.TypeDocx]
|
||||||
|
require.True(t, ok, "expected docx generator registered")
|
||||||
|
require.NotNil(t, g)
|
||||||
|
require.Equal(t, token.TypeDocx, 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"]
|
||||||
|
|
@ -40,7 +48,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.TypeDocx,
|
|
||||||
token.TypePDF,
|
token.TypePDF,
|
||||||
token.TypeKubeconfig,
|
token.TypeKubeconfig,
|
||||||
token.TypeEnvfile,
|
token.TypeEnvfile,
|
||||||
|
|
@ -57,12 +64,12 @@ func TestBuild_PendingTypesNotYetRegistered(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestBuild_OnlyExpectedTypesPresentInPhase3(t *testing.T) {
|
func TestBuild_OnlyExpectedTypesPresentInPhase4(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,
|
||||||
2,
|
3,
|
||||||
"Phase 3 registers exactly two generators (webbug, slowredirect); other phases append",
|
"Phase 4 registers exactly three generators (webbug, slowredirect, docx); other phases append",
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue