feat: tablas unit_tests y e2e_tests

Migración 008 en registry.db para unit_tests con FTS5 (tests individuales extraídos de archivos de test). Migración 004 en operations.db para e2e_tests con FTS5 (tests de integración entre funciones dentro de apps).
This commit is contained in:
2026-04-05 18:19:05 +02:00
parent b406b29074
commit 256e038cbe
2 changed files with 79 additions and 0 deletions
@@ -0,0 +1,42 @@
-- e2e_tests: integration tests that verify function composition within an app
CREATE TABLE e2e_tests (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
description TEXT NOT NULL DEFAULT '',
relation_id TEXT DEFAULT '' REFERENCES relations(id),
steps TEXT NOT NULL DEFAULT '[]',
input_fixture TEXT NOT NULL DEFAULT '{}',
expected TEXT NOT NULL DEFAULT '{}',
last_status TEXT NOT NULL DEFAULT '',
last_run_at TEXT NOT NULL DEFAULT '',
execution_id TEXT NOT NULL DEFAULT '',
duration_ms INTEGER NOT NULL DEFAULT 0,
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
);
CREATE INDEX idx_e2e_tests_relation ON e2e_tests(relation_id);
CREATE INDEX idx_e2e_tests_status ON e2e_tests(last_status);
CREATE VIRTUAL TABLE e2e_tests_fts USING fts5(
id, name, description, steps,
content='e2e_tests',
content_rowid='rowid'
);
CREATE TRIGGER e2e_tests_ai AFTER INSERT ON e2e_tests BEGIN
INSERT INTO e2e_tests_fts(rowid, id, name, description, steps)
VALUES (new.rowid, new.id, new.name, new.description, new.steps);
END;
CREATE TRIGGER e2e_tests_ad AFTER DELETE ON e2e_tests BEGIN
INSERT INTO e2e_tests_fts(e2e_tests_fts, rowid, id, name, description, steps)
VALUES ('delete', old.rowid, old.id, old.name, old.description, old.steps);
END;
CREATE TRIGGER e2e_tests_au AFTER UPDATE ON e2e_tests BEGIN
INSERT INTO e2e_tests_fts(e2e_tests_fts, rowid, id, name, description, steps)
VALUES ('delete', old.rowid, old.id, old.name, old.description, old.steps);
INSERT INTO e2e_tests_fts(rowid, id, name, description, steps)
VALUES (new.rowid, new.id, new.name, new.description, new.steps);
END;
+37
View File
@@ -0,0 +1,37 @@
-- unit_tests: individual test cases extracted from test files
CREATE TABLE unit_tests (
id TEXT PRIMARY KEY,
function_id TEXT NOT NULL REFERENCES functions(id) ON DELETE CASCADE,
name TEXT NOT NULL,
code TEXT NOT NULL DEFAULT '',
file_path TEXT NOT NULL DEFAULT '',
lang TEXT NOT NULL,
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
);
CREATE INDEX idx_unit_tests_function ON unit_tests(function_id);
CREATE INDEX idx_unit_tests_lang ON unit_tests(lang);
CREATE VIRTUAL TABLE unit_tests_fts USING fts5(
id, name, code, function_id, lang,
content='unit_tests',
content_rowid='rowid'
);
CREATE TRIGGER unit_tests_ai AFTER INSERT ON unit_tests BEGIN
INSERT INTO unit_tests_fts(rowid, id, name, code, function_id, lang)
VALUES (new.rowid, new.id, new.name, new.code, new.function_id, new.lang);
END;
CREATE TRIGGER unit_tests_ad AFTER DELETE ON unit_tests BEGIN
INSERT INTO unit_tests_fts(unit_tests_fts, rowid, id, name, code, function_id, lang)
VALUES ('delete', old.rowid, old.id, old.name, old.code, old.function_id, old.lang);
END;
CREATE TRIGGER unit_tests_au AFTER UPDATE ON unit_tests BEGIN
INSERT INTO unit_tests_fts(unit_tests_fts, rowid, id, name, code, function_id, lang)
VALUES ('delete', old.rowid, old.id, old.name, old.code, old.function_id, old.lang);
INSERT INTO unit_tests_fts(rowid, id, name, code, function_id, lang)
VALUES (new.rowid, new.id, new.name, new.code, new.function_id, new.lang);
END;