Feat v0.7.6 code hygiene + test coverage
All checks were successful
CI/CD / detect-changes (pull_request) Successful in 4s
CI/CD / test-runners (pull_request) Has been skipped
CI/CD / e2e-smoke (pull_request) Has been skipped
CI/CD / test-frontend (pull_request) Successful in 5s
CI/CD / test-sqlite (pull_request) Successful in 2m54s
CI/CD / test-go-pg (pull_request) Successful in 2m56s
CI/CD / build-and-deploy (pull_request) Successful in 1m1s
All checks were successful
CI/CD / detect-changes (pull_request) Successful in 4s
CI/CD / test-runners (pull_request) Has been skipped
CI/CD / e2e-smoke (pull_request) Has been skipped
CI/CD / test-frontend (pull_request) Successful in 5s
CI/CD / test-sqlite (pull_request) Successful in 2m54s
CI/CD / test-go-pg (pull_request) Successful in 2m56s
CI/CD / build-and-deploy (pull_request) Successful in 1m1s
Clean up channels-era dead code, align migrations, add 92 tests, and fix backup download + admin storage tab bugs before v0.8.x kernel expansion. Critical fixes: - Remove `channels` from allowedViews in db_module.go - Fix 5 dead API routes in workflow.html → public workflow API - Fix RenderWorkflow handler to use route param as entry token Dead code removal: - Delete SeedTestChannel(), RunContext.ChannelID, webhook.ChannelID - Fix stale comments in storage.go, prometheus.go, workflow_module.go Migration hygiene: - Add SQLite placeholder 013_cluster_registry.sql, renumber to 014 - Compat rename in migrate.go for existing SQLite databases - Document missing migration 008 in both 009 files Test coverage: - 82 workflow routing tests (all operators, branch rules, stage resolution) - 10 middleware tests (permissions, admin, rate limiter) Bug fixes: - Remove dead Admin Storage tab from System category - Fix backup download: sw.auth.token() → sw.auth._getToken() Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -74,6 +74,12 @@ func Migrate() error {
|
||||
}
|
||||
}
|
||||
|
||||
// v0.7.6: SQLite 013_test_runner_type.sql was renumbered to 014 to
|
||||
// align with PG migration numbering. Mark as applied if the old name exists.
|
||||
if !IsPostgres() {
|
||||
DB.Exec("UPDATE schema_migrations SET version = '014_test_runner_type.sql' WHERE version = '013_test_runner_type.sql'")
|
||||
}
|
||||
|
||||
// Apply pending migrations.
|
||||
applied := 0
|
||||
for _, file := range files {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
-- ==========================================
|
||||
-- Armature — 009 Multi-Replica HA
|
||||
-- ==========================================
|
||||
-- Note: migration 008 was merged into 007 during pre-1.0 schema consolidation.
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ws_tickets (
|
||||
id TEXT PRIMARY KEY,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
-- ==========================================
|
||||
-- Armature — 009 Multi-Replica HA (SQLite)
|
||||
-- ==========================================
|
||||
-- Note: migration 008 was merged into 007 during pre-1.0 schema consolidation.
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ws_tickets (
|
||||
id TEXT PRIMARY KEY,
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
-- 013_cluster_registry.sql — placeholder
|
||||
-- Postgres-only migration: creates UNLOGGED node_registry table for
|
||||
-- cluster self-assembly (v0.6.0). SQLite deployments are single-node
|
||||
-- and do not use the cluster registry. This placeholder aligns the
|
||||
-- migration numbering between dialects.
|
||||
--
|
||||
-- See postgres/013_cluster_registry.sql for the actual schema.
|
||||
@@ -1,4 +1,4 @@
|
||||
-- 013_test_runner_type.sql — v0.7.1
|
||||
-- 014_test_runner_type.sql — v0.7.1
|
||||
-- Adds 'test-runner' to the packages.type CHECK constraint.
|
||||
-- SQLite doesn't support ALTER CHECK — must recreate the table.
|
||||
|
||||
@@ -427,25 +427,6 @@ func SeedAdminsGroupMember(t *testing.T, userID string) {
|
||||
}
|
||||
}
|
||||
|
||||
// SeedTestChannel creates a test channel owned by userID and returns the channel ID.
|
||||
func SeedTestChannel(t *testing.T, userID, title string) string {
|
||||
t.Helper()
|
||||
if IsSQLite() {
|
||||
id := uuid.New().String()
|
||||
_, err := DB.Exec(`INSERT INTO channels (id, user_id, title) VALUES (?, ?, ?)`, id, userID, title)
|
||||
if err != nil {
|
||||
t.Fatalf("SeedTestChannel: %v", err)
|
||||
}
|
||||
return id
|
||||
}
|
||||
var id string
|
||||
err := DB.QueryRow(`INSERT INTO channels (user_id, title) VALUES ($1, $2) RETURNING id`, userID, title).Scan(&id)
|
||||
if err != nil {
|
||||
t.Fatalf("SeedTestChannel: %v", err)
|
||||
}
|
||||
return id
|
||||
}
|
||||
|
||||
// SeedTestTeam creates a test team and returns the team ID.
|
||||
func SeedTestTeam(t *testing.T, name, createdBy string) string {
|
||||
t.Helper()
|
||||
|
||||
Reference in New Issue
Block a user