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:
@@ -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;
|
||||||
@@ -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;
|
||||||
Reference in New Issue
Block a user