qualityfolio/html-test-results.sql

              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/html-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/html-test-results.sql/index.sql') as contents;
    ;

SELECT 'title'AS component,
  (SELECT page_title FROM page_guide WHERE page_identifier = 'qualityfolio/html-test-results.sql' AND page_order = 1) as contents;

SELECT 'text' as component,
 (SELECT page_content FROM page_guide WHERE page_identifier = 'qualityfolio/html-test-results.sql' AND page_order = 1) as contents;

 -- Pagination Controls (Top)
 SET total_rows = (SELECT COUNT(*) FROM html_test_execution_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,
        TRUE as sort,
        TRUE as search,
        'Test Report' as markdown;

 SELECT
     '['||execution_title||']('||sqlpage.environment_variable('SQLPAGE_SITE_PREFIX') || '/qualityfolio/html-details.sql'||'?run_id='||REPLACE(REPLACE(run_id, ' ', '%20'), '&', '%26')||')' as "Test Report",
     run_id as "Run ID",
     CASE
         WHEN execution_status LIKE '%pass%' THEN '✅ Passed'
         WHEN execution_status LIKE '%fail%' THEN '❌ Failed'
         WHEN execution_status LIKE '%error%' THEN '🔴 Error'
         WHEN execution_status LIKE '%skip%' THEN '⏭️ Skipped'
         ELSE '❓ ' || COALESCE(execution_status, 'Unknown')
     END as "Status",
     COALESCE(start_time, 'N/A') as "Start Time",
     COALESCE(total_duration, 'N/A') as "Duration",
     strftime('%d-%m-%Y %H:%M', created_at) as "Created",
     CASE
         WHEN execution_status LIKE '%pass%' THEN 'rowClass-100'
         WHEN execution_status LIKE '%fail%' THEN 'rowClass-0'
         WHEN execution_status LIKE '%error%' THEN 'rowClass-0'
         ELSE 'rowClass-50'
     END as _sqlpage_css_class
 FROM html_test_execution_results
 ORDER BY test_report_name ASC
 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
;
        ;
            

;