feat: журнал тестирования, бэклог идей; V.2 hasAnyAttemptForTest + unit tests; ссылки в спринтах

Made-with: Cursor
This commit is contained in:
Константин Лебединский
2026-04-24 19:26:02 +05:00
parent 4eeb3fbc62
commit e87168d3a0
9 changed files with 247 additions and 4 deletions
+18
View File
@@ -0,0 +1,18 @@
/**
* Логика «цепочки» теста: попытки и версии (см. docs/revision_task/card1.md V.2).
* @param {import('pg').Pool | { query: Function }} pool пул или объект с методом query(sql, params)
* @param {string} testId UUID теста (tests.id)
* @returns {Promise<boolean>} true, если по любой версии этой цепочки есть хотя бы одна попытка
*/
export async function hasAnyAttemptForTest(pool, testId) {
const { rows } = await pool.query(
`SELECT EXISTS (
SELECT 1
FROM test_attempts ta
INNER JOIN test_versions tv ON ta.test_version_id = tv.id
WHERE tv.test_id = $1
) AS has_any`,
[testId]
);
return rows[0].has_any === true;
}