From ed99d5012fb1e2340f23e59bf72b9c2009ab8176 Mon Sep 17 00:00:00 2001 From: Takeshi Kimata <117462761+kimatata@users.noreply.github.com> Date: Sat, 3 Aug 2024 08:26:52 +0900 Subject: [PATCH] fix: init test cases when update test run --- .../[projectId]/runs/[runId]/RunEditor.tsx | 68 +++++++++---------- 1 file changed, 32 insertions(+), 36 deletions(-) diff --git a/frontend/src/app/[locale]/projects/[projectId]/runs/[runId]/RunEditor.tsx b/frontend/src/app/[locale]/projects/[projectId]/runs/[runId]/RunEditor.tsx index 1acccfe..daa869a 100644 --- a/frontend/src/app/[locale]/projects/[projectId]/runs/[runId]/RunEditor.tsx +++ b/frontend/src/app/[locale]/projects/[projectId]/runs/[runId]/RunEditor.tsx @@ -18,7 +18,7 @@ import { DropdownMenu, DropdownItem, } from '@nextui-org/react'; -import { Save, ArrowLeft, Folder, ChevronDown, CopyPlus, CopyMinus, RotateCw } from 'lucide-react'; +import { Save, Circle, ArrowLeft, Folder, ChevronDown, CopyPlus, CopyMinus, RotateCw } from 'lucide-react'; import RunProgressChart from './RunPregressDonutChart'; import TestCaseSelector from './TestCaseSelector'; import { testRunStatus } from '@/config/selection'; @@ -94,6 +94,16 @@ export default function RunEditor({ setRunStatusCounts(statusCounts); }; + const initTestCases = async () => { + const casesData = await fetchProjectCases(context.token.access_token, Number(projectId)); + casesData.forEach((testCase: CaseType) => { + if (testCase.RunCases && testCase.RunCases.length > 0) { + testCase.RunCases[0].editState = 'notChanged'; + } + }); + setTestCases(casesData); + }; + useEffect(() => { async function fetchDataEffect() { if (!context.isSignedIn()) { @@ -105,14 +115,7 @@ export default function RunEditor({ const foldersData = await fetchFolders(context.token.access_token, Number(projectId)); setFolders(foldersData); setSelectedFolder(foldersData[0]); - - const casesData = await fetchProjectCases(context.token.access_token, Number(projectId)); - casesData.forEach((testCase: CaseType) => { - if (testCase.RunCases && testCase.RunCases.length > 0) { - testCase.RunCases[0].editState = 'notChanged'; - } - }); - setTestCases(casesData); + initTestCases(); } catch (error: any) { console.error('Error in effect:', error.message); } @@ -163,16 +166,13 @@ export default function RunEditor({ setSelectedKeys(new Set([])); }; - const resetEditStateAll = () => { - const newTestCases = [...testCases]; - newTestCases.forEach((itr) => { - if (itr.RunCases && itr.RunCases.length > 0) { - itr.RunCases[0].editState = 'notChanged'; - } - }); - - setTestCases(newTestCases); - setSelectedKeys(new Set([])); + const onSave = async () => { + setIsUpdating(true); + await updateRun(context.token.access_token, testRun); + await updateRunCases(context.token.access_token, Number(runId), testCases); + await initTestCases(); + setIsUpdating(false); + setIsDirty(false); }; const baseClass = ''; @@ -194,23 +194,19 @@ export default function RunEditor({

{testRun.name}

- +
+ {isDirty && } + +