feat(01-01): create main.go, test scaffolding, and testdata fixtures
- main.go entry point (7 lines) delegates to cmd.Execute() - cmd/root.go stub so go build ./... compiles (Plan 05 replaces) - pkg/providers, pkg/storage, pkg/engine package stubs - Test stubs with t.Skip() for providers, storage, engine packages - testdata/samples: openai_key.txt, anthropic_key.txt, multiple_keys.txt, no_keys.txt - go build ./... and go test ./... -short both exit 0
This commit is contained in:
3
pkg/engine/engine.go
Normal file
3
pkg/engine/engine.go
Normal file
@@ -0,0 +1,3 @@
|
||||
// Package engine implements the core scanning pipeline.
|
||||
// Scanner stages (keyword pre-filter, regex matching, entropy analysis) are implemented in Plan 04.
|
||||
package engine
|
||||
23
pkg/engine/scanner_test.go
Normal file
23
pkg/engine/scanner_test.go
Normal file
@@ -0,0 +1,23 @@
|
||||
package engine_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
// TestShannonEntropy verifies the entropy function returns expected values.
|
||||
// Stub: will be implemented when entropy.go exists (Plan 04).
|
||||
func TestShannonEntropy(t *testing.T) {
|
||||
t.Skip("stub — implement after entropy.go exists")
|
||||
}
|
||||
|
||||
// TestKeywordPreFilter verifies Aho-Corasick pre-filter rejects files without keywords.
|
||||
// Stub: will be implemented when filter.go exists (Plan 04).
|
||||
func TestKeywordPreFilter(t *testing.T) {
|
||||
t.Skip("stub — implement after filter.go exists")
|
||||
}
|
||||
|
||||
// TestScannerPipeline verifies end-to-end scan of testdata returns expected findings.
|
||||
// Stub: will be implemented when engine.go exists (Plan 04).
|
||||
func TestScannerPipeline(t *testing.T) {
|
||||
t.Skip("stub — implement after engine.go exists")
|
||||
}
|
||||
3
pkg/providers/providers.go
Normal file
3
pkg/providers/providers.go
Normal file
@@ -0,0 +1,3 @@
|
||||
// Package providers handles loading and managing API key provider definitions.
|
||||
// Provider YAML files are loaded from the embedded filesystem (Plan 02).
|
||||
package providers
|
||||
23
pkg/providers/registry_test.go
Normal file
23
pkg/providers/registry_test.go
Normal file
@@ -0,0 +1,23 @@
|
||||
package providers_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
// TestRegistryLoad verifies that provider YAML files are loaded from embed.FS.
|
||||
// Stub: will be implemented when registry.go exists (Plan 02).
|
||||
func TestRegistryLoad(t *testing.T) {
|
||||
t.Skip("stub — implement after registry.go exists")
|
||||
}
|
||||
|
||||
// TestProviderSchemaValidation verifies format_version and last_verified are required.
|
||||
// Stub: will be implemented when schema.go validation exists (Plan 02).
|
||||
func TestProviderSchemaValidation(t *testing.T) {
|
||||
t.Skip("stub — implement after schema.go validation exists")
|
||||
}
|
||||
|
||||
// TestAhoCorasickBuild verifies Aho-Corasick automaton builds from provider keywords.
|
||||
// Stub: will be implemented when registry builds automaton (Plan 02).
|
||||
func TestAhoCorasickBuild(t *testing.T) {
|
||||
t.Skip("stub — implement after registry AC build exists")
|
||||
}
|
||||
23
pkg/storage/db_test.go
Normal file
23
pkg/storage/db_test.go
Normal file
@@ -0,0 +1,23 @@
|
||||
package storage_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
// TestDBOpen verifies SQLite database opens and creates schema.
|
||||
// Stub: will be implemented when db.go exists (Plan 03).
|
||||
func TestDBOpen(t *testing.T) {
|
||||
t.Skip("stub — implement after db.go exists")
|
||||
}
|
||||
|
||||
// TestEncryptDecryptRoundtrip verifies AES-256-GCM encrypt/decrypt roundtrip.
|
||||
// Stub: will be implemented when encrypt.go exists (Plan 03).
|
||||
func TestEncryptDecryptRoundtrip(t *testing.T) {
|
||||
t.Skip("stub — implement after encrypt.go exists")
|
||||
}
|
||||
|
||||
// TestArgon2KeyDerivation verifies Argon2id produces 32-byte key deterministically.
|
||||
// Stub: will be implemented when crypto.go exists (Plan 03).
|
||||
func TestArgon2KeyDerivation(t *testing.T) {
|
||||
t.Skip("stub — implement after crypto.go exists")
|
||||
}
|
||||
3
pkg/storage/storage.go
Normal file
3
pkg/storage/storage.go
Normal file
@@ -0,0 +1,3 @@
|
||||
// Package storage handles SQLite database operations with AES-256 encryption.
|
||||
// Database schema and encryption are implemented in Plan 03.
|
||||
package storage
|
||||
Reference in New Issue
Block a user