From 34daf3a7f5c2dd5597fede5118c171917ba6d1c2 Mon Sep 17 00:00:00 2001
From: Artyom Savchenko <armisav@gmail.com>
Date: Fri, 6 Dec 2024 18:00:47 +0700
Subject: [PATCH] UBERF-8628: Disable run button if there is nothing to run
 (#7277)

Signed-off-by: Artem Savchenko <armisav@gmail.com>
---
 .../src/components/test-case/RunButton.svelte   | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/plugins/test-management-resources/src/components/test-case/RunButton.svelte b/plugins/test-management-resources/src/components/test-case/RunButton.svelte
index 5ca698510a..c7a52159f1 100644
--- a/plugins/test-management-resources/src/components/test-case/RunButton.svelte
+++ b/plugins/test-management-resources/src/components/test-case/RunButton.svelte
@@ -13,10 +13,11 @@
 // limitations under the License.
 -->
 <script lang="ts">
-  import { Doc, DocumentQuery, Ref, Space } from '@hcengineering/core'
+  import { Doc, DocumentQuery, Ref, Space, mergeQueries } from '@hcengineering/core'
   import { Button } from '@hcengineering/ui'
   import { selectionStore } from '@hcengineering/view-resources'
   import type { TestCase, TestProject } from '@hcengineering/test-management'
+  import { createQuery } from '@hcengineering/presentation'
 
   import testManagement from '../../plugin'
   import { showCreateTestRunPopup } from '../../utils'
@@ -24,6 +25,19 @@
   export let query: DocumentQuery<Doc> = {}
   export let space: Ref<Space>
 
+  const docQuery = createQuery()
+  let haveTestCases = false
+
+  $: resultQuery = mergeQueries(query, { space })
+  $: docQuery.query(
+    testManagement.class.TestCase,
+    resultQuery,
+    (res) => {
+      haveTestCases = res.length > 0
+    },
+    { limit: 1 }
+  )
+
   const project: Ref<TestProject> = space as any
 
   const handleRun = async (): Promise<void> => {
@@ -42,5 +56,6 @@
   justify={'left'}
   kind={'primary'}
   label={testManagement.string.RunTestCases}
+  disabled={!haveTestCases}
   on:click={handleRun}
 />