SELECT 'dynamic' AS component, sqlpage.run_sql('shell/shell.sql') AS properties;
SELECT 'breadcrumb' as component;
WITH RECURSIVE breadcrumbs AS (
SELECT
COALESCE(abbreviated_caption, caption) AS title,
COALESCE(url, path) AS link,
parent_path, 0 AS level,
namespace
FROM sqlpage_aide_navigation
WHERE namespace = 'prime' AND path='qualityfolio/tap-test-results.sql'
UNION ALL
SELECT
COALESCE(nav.abbreviated_caption, nav.caption) AS title,
COALESCE(nav.url, nav.path) AS link,
nav.parent_path, b.level + 1, nav.namespace
FROM sqlpage_aide_navigation nav
INNER JOIN breadcrumbs b ON nav.namespace = b.namespace AND nav.path = b.parent_path
)
SELECT title ,
sqlpage.environment_variable('SQLPAGE_SITE_PREFIX') || '/'||link as link
FROM breadcrumbs ORDER BY level DESC;
-- not including page title from sqlpage_aide_navigation
SELECT 'title' AS component, (SELECT COALESCE(title, caption)
FROM sqlpage_aide_navigation
WHERE namespace = 'prime' AND path = 'qualityfolio/tap-test-results.sql/index.sql') as contents;
;
SELECT 'text' as component,
'Test Anything Protocol (TAP) results from automated test runs. Click on any TAP file name to view detailed test case information and individual test results.' as contents;
-- Pagination Controls (Top)
SET total_rows = (SELECT COUNT(*) FROM tap_test_results );
SET limit = COALESCE($limit, 50);
SET offset = COALESCE($offset, 0);
SET total_pages = ($total_rows + $limit - 1) / $limit;
SET current_page = ($offset / $limit) + 1;
SELECT 'table' as component,
'Total Tests,Passed,Failed,Pass Rate' as align_right,
TRUE as sort,
TRUE as search,
'File Name' as markdown;
SELECT
'['||name||']('||sqlpage.environment_variable('SQLPAGE_SITE_PREFIX') || '/qualityfolio/tap-details.sql'||'?file='||REPLACE(REPLACE(name, ' ', '%20'), '&', '%26')||')' as "File Name",
COALESCE(total_planned_tests, total_test_lines, 0) as "Total Tests",
COALESCE(passed_tests, 0) as "Passed",
COALESCE(failed_tests, 0) as "Failed",
CASE
WHEN total_test_lines > 0
THEN ROUND((passed_tests * 100.0) / total_test_lines, 1) || '%'
ELSE '0%'
END as "Pass Rate",
CASE
WHEN overall_status = 'passed' THEN '✅ Passed'
WHEN overall_status = 'mixed' THEN '⚠️ Mixed'
WHEN overall_status = 'failed' THEN '❌ Failed'
ELSE '❓ Unknown'
END as "Status",
strftime('%d-%m-%Y %H:%M', tap_file_created_at) as "Created",
CASE
WHEN total_test_lines > 0
THEN 'rowClass-'||CAST((passed_tests * 100) / total_test_lines AS INTEGER)
ELSE 'rowClass-0'
END as _sqlpage_css_class
FROM tap_test_results
ORDER BY tap_file_created_at DESC
LIMIT $limit OFFSET $offset;
-- Pagination Controls (Bottom)
SELECT 'text' AS component,
(SELECT CASE WHEN CAST($current_page AS INTEGER) > 1 THEN '[Previous](?limit=' || $limit || '&offset=' || ($offset - $limit) || ')' ELSE '' END)
|| ' '
|| '(Page ' || $current_page || ' of ' || $total_pages || ") "
|| (SELECT CASE WHEN CAST($current_page AS INTEGER) < CAST($total_pages AS INTEGER) THEN '[Next](?limit=' || $limit || '&offset=' || ($offset + $limit) || ')' ELSE '' END)
AS contents_md
;
;