diff --git a/backend/routes/runs/show.js b/backend/routes/runs/show.js
index 5ee946d..23d8490 100644
--- a/backend/routes/runs/show.js
+++ b/backend/routes/runs/show.js
@@ -22,6 +22,7 @@ module.exports = function (sequelize) {
include: [
{
model: Case,
+ through: { attributes: ["status"] },
},
],
});
diff --git a/frontend/app/projects/[projectId]/runs/[runId]/RunEditor.tsx b/frontend/app/projects/[projectId]/runs/[runId]/RunEditor.tsx
index 9c0352f..170d1ac 100644
--- a/frontend/app/projects/[projectId]/runs/[runId]/RunEditor.tsx
+++ b/frontend/app/projects/[projectId]/runs/[runId]/RunEditor.tsx
@@ -82,26 +82,19 @@ export default function RunEditor({ projectId, runId }: Props) {
// Check if each testCase has an association with testRun
// and add "isIncluded" property
- testCasesData.forEach((itr: CaseType) => {
- // let included: boolean = testRun.Cases.some(
- // (testRun: RunType) => testRun.id === itr.id
- // );
-
- // itr.isIncluded = included;
- // itr.result = included ?
-
+ testCasesData.forEach((caseItr: CaseType) => {
let isIncluded: boolean = false;
- let result: number = 0;
+ let runStatus: number = 0;
testRun.Cases.forEach((runCaseItr: CaseType) => {
- if (runCaseItr.id === itr.id) {
+ if (runCaseItr.id === caseItr.id) {
isIncluded = true;
- // result = runCaseItr.result;
+ runStatus = runCaseItr.runCases.status;
}
});
- itr.isIncluded = isIncluded;
- // itr.result = result;
+ caseItr.isIncluded = isIncluded;
+ caseItr.runStatus = runStatus;
});
setTestCases(testCasesData);
@@ -160,7 +153,7 @@ export default function RunEditor({ projectId, runId }: Props) {
-
+
Basic
>;
};
@@ -65,17 +48,16 @@ export default function TestCaseSelector({
});
const sortedItems = useMemo(() => {
- console.log(cases)
- return [...cases].sort((a: Case, b: Case) => {
- const first = a[sortDescriptor.column as keyof Case] as number;
- const second = b[sortDescriptor.column as keyof Case] as number;
+ return [...cases].sort((a: CaseType, b: CaseType) => {
+ const first = a[sortDescriptor.column as keyof CaseType] as number;
+ const second = b[sortDescriptor.column as keyof CaseType] as number;
const cmp = first < second ? -1 : first > second ? 1 : 0;
return sortDescriptor.direction === "descending" ? -cmp : cmp;
});
}, [sortDescriptor, cases]);
- const renderCell = useCallback((testCase: Case, columnKey: Key) => {
- const cellValue = testCase[columnKey as keyof Case];
+ const renderCell = useCallback((testCase: CaseType, columnKey: Key) => {
+ const cellValue = testCase[columnKey as keyof CaseType];
// console.log(columnKey, cellValue)
switch (columnKey) {
@@ -105,15 +87,15 @@ export default function TestCaseSelector({
case "isIncluded":
const flag = cellValue ? "true" : "false"
return {flag};
- case "result":
+ case "runStatus":
return (
- {testResult[cellValue].name}
+ {testRunCaseStatus[cellValue].name}
);
case "actions":
diff --git a/frontend/config/selection.ts b/frontend/config/selection.ts
index fb9a5af..c72c9f6 100644
--- a/frontend/config/selection.ts
+++ b/frontend/config/selection.ts
@@ -42,11 +42,12 @@ const testRunStatus = [
{ name: "Closed", uid: "closed" },
]
-const testResult = [
+const testRunCaseStatus = [
+ { name: "Not included", uid: "notincluded", color: "primary" },
{ name: "Untested", uid: "untested", color: "primary" },
{ name: "Passed", uid: "passed", color: "success" },
{ name: "Failed", uid: "untested", color: "danger" },
{ name: "Skipped", uid: "medium", color: "primary" },
]
-export { priorities, testTypes, automationStatus, templates, testRunStatus, testResult };
+export { priorities, testTypes, automationStatus, templates, testRunStatus, testRunCaseStatus };
diff --git a/frontend/types/case.ts b/frontend/types/case.ts
index 3e30e38..4e1d51a 100644
--- a/frontend/types/case.ts
+++ b/frontend/types/case.ts
@@ -10,8 +10,10 @@ type CaseType = {
preConditions: string;
expectedResults: string;
folderId: number;
- Steps: StepType[];
- Attachments: AttachmentType[];
+ Steps: StepType[]; // additional property
+ Attachments: AttachmentType[]; // additional property
+ isIncluded: boolean; // additional property
+ runStatus: number; // additional property
};
type CaseStepType = {