feat: test case detail dialog

This commit is contained in:
Takeshi Kimata
2024-07-27 07:01:16 +09:00
parent 6cf4b91a08
commit 5351c6767b
2 changed files with 20 additions and 10 deletions

View File

@@ -109,14 +109,24 @@ export default function TestCaseDetailDialog({
{templates[testCase.template].uid === 'text' ? ( {templates[testCase.template].uid === 'text' ? (
<> <>
<p className={'font-bold mt-2'}>{messages.testDetail}</p> <p className={'font-bold mt-2'}>{messages.testDetail}</p>
<div className="flex my-2"> <div className="flex gap-2 my-2">
<div className="w-1/2"> <div className="w-1/2">
<p className={'font-bold'}>{messages.preconditions}</p> <Textarea
<div>{testCase.preConditions}</div> isReadOnly
size="sm"
variant="flat"
label={messages.preconditions}
value={testCase.preConditions}
/>
</div> </div>
<div className="w-1/2"> <div className="w-1/2">
<p className={'font-bold'}>{messages.expectedResult}</p> <Textarea
<div>{testCase.expectedResults}</div> isReadOnly
size="sm"
variant="flat"
label={messages.expectedResult}
value={testCase.expectedResults}
/>
</div> </div>
</div> </div>
</> </>

View File

@@ -1,4 +1,4 @@
import { useState, useEffect, useMemo } from 'react'; import { useState, useEffect, useMemo, ReactNode } from 'react';
import { import {
Table, Table,
TableHeader, TableHeader,
@@ -129,7 +129,7 @@ export default function TestCaseSelector({
return isIncluded; return isIncluded;
}; };
const renderCell = (testCase: CaseType, columnKey: Key) => { const renderCell = (testCase: CaseType, columnKey: string): ReactNode => {
const cellValue = testCase[columnKey as keyof CaseType]; const cellValue = testCase[columnKey as keyof CaseType];
const isIncluded = isCaseIncluded(testCase); const isIncluded = isCaseIncluded(testCase);
const runStatus = testCase.RunCases && testCase.RunCases.length > 0 ? testCase.RunCases[0].status : 0; const runStatus = testCase.RunCases && testCase.RunCases.length > 0 ? testCase.RunCases[0].status : 0;
@@ -144,13 +144,13 @@ export default function TestCaseSelector({
endContent={<MoveDiagonal size={12} className="text-transparent group-hover:text-inherit" />} endContent={<MoveDiagonal size={12} className="text-transparent group-hover:text-inherit" />}
onPress={() => showTestCaseDetailDialog(testCase.id)} onPress={() => showTestCaseDetailDialog(testCase.id)}
> >
{cellValue} {cellValue as string}
</Button> </Button>
); );
case 'priority': case 'priority':
return ( return (
<div className={isIncluded ? '' : notIncludedCaseClass}> <div className={isIncluded ? '' : notIncludedCaseClass}>
<TestCasePriority priorityValue={cellValue} priorityMessages={priorityMessages} /> <TestCasePriority priorityValue={cellValue as number} priorityMessages={priorityMessages} />
</div> </div>
); );
case 'runStatus': case 'runStatus':
@@ -219,7 +219,7 @@ export default function TestCaseSelector({
</Dropdown> </Dropdown>
); );
default: default:
return cellValue; return cellValue as string;
} }
}; };