fix(api): tests live count

This commit is contained in:
Shekar Siri 2023-12-01 17:48:28 +01:00
parent d2eda3a54e
commit 3d10d0836f

View file

@ -116,6 +116,16 @@ def get_ut_test(project_id: int, test_id: int):
WHERE utt.test_id = %(test_id)s
"""
live_count_sql = """
SELECT COUNT(*) FROM (
SELECT DISTINCT ON (uts.session_id) uts.test_id
FROM ut_tests_signals uts
WHERE uts.duration IS NULL AND uts.task_id IS NULL
ORDER BY uts.session_id, uts.timestamp DESC
) AS latest_signals
WHERE latest_signals.test_id = ut.test_id
"""
select_columns = [
"ut.test_id",
"ut.title",
@ -131,7 +141,7 @@ def get_ut_test(project_id: int, test_id: int):
"ut.visibility",
"json_build_object('id', u.user_id, 'name', u.name) AS created_by",
"COALESCE((SELECT COUNT(*) FROM ut_tests_signals uts WHERE uts.test_id = ut.test_id AND uts.task_id IS NOT NULL AND uts.status in %(response_statuses)s AND uts.comment is NOT NULL), 0) AS responses_count",
"COALESCE((SELECT COUNT(*) FROM ut_tests_signals uts WHERE uts.test_id = ut.test_id AND uts.duration IS NULL AND uts.task_id IS NULL), 0) AS live_count",
f"({live_count_sql}) AS live_count",
]
db_handler.add_param("response_statuses", ('done', 'skipped'))
db_handler.set_select_columns(select_columns + [f"({tasks_sql}) AS tasks"])