From dfc9d37aba3b66434218468ef2eb457323925e89 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 2 Mar 2026 10:40:34 +0000
Subject: [PATCH 1/5] Initial plan
From ed2a70a4a64c5a0a5f91cddbcd1746c4f55bd3cd Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 2 Mar 2026 10:44:04 +0000
Subject: [PATCH 2/5] Add new TestType enum values to backend, frontend, and
API docs
Co-authored-by: stasel <2033301+stasel@users.noreply.github.com>
---
client/src/data/types/Trainee.ts | 7 +++++++
.../education/tests/TestDetailsModal.tsx | 14 +++++++-------
server/api.yaml | 7 +++++++
server/src/models/Trainee.ts | 7 +++++++
4 files changed, 28 insertions(+), 7 deletions(-)
diff --git a/client/src/data/types/Trainee.ts b/client/src/data/types/Trainee.ts
index dc9be402..cb114b9a 100644
--- a/client/src/data/types/Trainee.ts
+++ b/client/src/data/types/Trainee.ts
@@ -94,6 +94,13 @@ export enum TestType {
NodeJS = 'nodejs',
ReactInterview = 'react-interview',
FinalProjectInterview = 'final-project-interview',
+ CoreMidTermInterview = 'core-mid-term-interview',
+ CoreEndTermInterview = 'core-end-interview',
+ FrontEndMidTermInterview = 'frontend-mid-term-interview',
+ BackEndMidTermInterview = 'backend-mid-term-interview',
+ CloudMidTermInterview = 'cloud-mid-term-interview',
+ DataMidTermInterview = 'data-mid-term-interview',
+ TesterMidTermInterview = 'tester-mid-term-interview',
}
// interfaces
diff --git a/client/src/features/trainee-profile/education/tests/TestDetailsModal.tsx b/client/src/features/trainee-profile/education/tests/TestDetailsModal.tsx
index 8b7595d1..3ba0b140 100644
--- a/client/src/features/trainee-profile/education/tests/TestDetailsModal.tsx
+++ b/client/src/features/trainee-profile/education/tests/TestDetailsModal.tsx
@@ -134,13 +134,13 @@ export const TestDetailsModal = ({
value={testFields.type ?? ''}
onChange={handleTestSelectChange}
>
-
-
-
-
-
-
-
+
+
+
+
+
+
+
{typeError && Type is required}
diff --git a/server/api.yaml b/server/api.yaml
index 27bdd1a3..f1bdb19a 100644
--- a/server/api.yaml
+++ b/server/api.yaml
@@ -1658,6 +1658,13 @@ components:
- nodejs
- react-interview
- final-project-interview
+ - core-mid-term-interview
+ - core-end-interview
+ - frontend-mid-term-interview
+ - backend-mid-term-interview
+ - cloud-mid-term-interview
+ - data-mid-term-interview
+ - tester-mid-term-interview
score:
type: number
example: 8.6
diff --git a/server/src/models/Trainee.ts b/server/src/models/Trainee.ts
index da1a50b5..ad5b2035 100644
--- a/server/src/models/Trainee.ts
+++ b/server/src/models/Trainee.ts
@@ -84,6 +84,13 @@ export enum TestType {
NodeJS = 'nodejs',
ReactInterview = 'react-interview',
FinalProjectInterview = 'final-project-interview',
+ CoreMidTermInterview = 'core-mid-term-interview',
+ CoreEndTermInterview = 'core-end-interview',
+ FrontEndMidTermInterview = 'frontend-mid-term-interview',
+ BackEndMidTermInterview = 'backend-mid-term-interview',
+ CloudMidTermInterview = 'cloud-mid-term-interview',
+ DataMidTermInterview = 'data-mid-term-interview',
+ TesterMidTermInterview = 'tester-mid-term-interview',
}
export interface Trainee {
From b0e30931c2406ec9b3d07285d64a985aa3934805 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 2 Mar 2026 10:56:03 +0000
Subject: [PATCH 3/5] Address PR review comments: rename CoreEndInterview, fix
api.yaml, show legacy types when editing old tests
Co-authored-by: stasel <2033301+stasel@users.noreply.github.com>
---
client/src/data/types/Trainee.ts | 2 +-
.../education/tests/TestDetailsModal.tsx | 40 +++++++++++++++----
server/api.yaml | 2 +-
server/src/models/Trainee.ts | 2 +-
4 files changed, 36 insertions(+), 10 deletions(-)
diff --git a/client/src/data/types/Trainee.ts b/client/src/data/types/Trainee.ts
index cb114b9a..4f02fc15 100644
--- a/client/src/data/types/Trainee.ts
+++ b/client/src/data/types/Trainee.ts
@@ -95,7 +95,7 @@ export enum TestType {
ReactInterview = 'react-interview',
FinalProjectInterview = 'final-project-interview',
CoreMidTermInterview = 'core-mid-term-interview',
- CoreEndTermInterview = 'core-end-interview',
+ CoreEndInterview = 'core-end-interview',
FrontEndMidTermInterview = 'frontend-mid-term-interview',
BackEndMidTermInterview = 'backend-mid-term-interview',
CloudMidTermInterview = 'cloud-mid-term-interview',
diff --git a/client/src/features/trainee-profile/education/tests/TestDetailsModal.tsx b/client/src/features/trainee-profile/education/tests/TestDetailsModal.tsx
index 3ba0b140..d33e447b 100644
--- a/client/src/features/trainee-profile/education/tests/TestDetailsModal.tsx
+++ b/client/src/features/trainee-profile/education/tests/TestDetailsModal.tsx
@@ -54,6 +54,18 @@ export const TestDetailsModal = ({
const isEditMode = Boolean(initialTest);
+ const legacyTestTypes: TestType[] = [
+ TestType.Presentation,
+ TestType.JavaScript,
+ TestType.BrowsersInterview,
+ TestType.UsingApisInterview,
+ TestType.NodeJS,
+ TestType.ReactInterview,
+ TestType.FinalProjectInterview,
+ ];
+
+ const isLegacyTest = isEditMode && initialTest?.type !== undefined && legacyTestTypes.includes(initialTest.type);
+
const handleClose = () => {
onClose();
};
@@ -134,13 +146,27 @@ export const TestDetailsModal = ({
value={testFields.type ?? ''}
onChange={handleTestSelectChange}
>
-
-
-
-
-
-
-
+ {isLegacyTest ? (
+ <>
+
+
+
+
+
+
+
+ >
+ ) : (
+ <>
+
+
+
+
+
+
+
+ >
+ )}
{typeError && Type is required}
diff --git a/server/api.yaml b/server/api.yaml
index f1bdb19a..31765673 100644
--- a/server/api.yaml
+++ b/server/api.yaml
@@ -1652,7 +1652,7 @@ components:
type: string
enum:
- presentation
- - javaScript
+ - javascript
- browsers-interview
- using-apis-interview
- nodejs
diff --git a/server/src/models/Trainee.ts b/server/src/models/Trainee.ts
index ad5b2035..ad289ee2 100644
--- a/server/src/models/Trainee.ts
+++ b/server/src/models/Trainee.ts
@@ -85,7 +85,7 @@ export enum TestType {
ReactInterview = 'react-interview',
FinalProjectInterview = 'final-project-interview',
CoreMidTermInterview = 'core-mid-term-interview',
- CoreEndTermInterview = 'core-end-interview',
+ CoreEndInterview = 'core-end-interview',
FrontEndMidTermInterview = 'frontend-mid-term-interview',
BackEndMidTermInterview = 'backend-mid-term-interview',
CloudMidTermInterview = 'cloud-mid-term-interview',
From ede348b67c42e8159c26ed2d08f22ce5c1a85ce1 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 2 Mar 2026 11:06:59 +0000
Subject: [PATCH 4/5] Fix MUI Select bugs: use arrays instead of fragments for
conditional MenuItems
Co-authored-by: stasel <2033301+stasel@users.noreply.github.com>
---
.../education/tests/TestDetailsModal.tsx | 40 +++++++++----------
1 file changed, 19 insertions(+), 21 deletions(-)
diff --git a/client/src/features/trainee-profile/education/tests/TestDetailsModal.tsx b/client/src/features/trainee-profile/education/tests/TestDetailsModal.tsx
index d33e447b..ec4c2b77 100644
--- a/client/src/features/trainee-profile/education/tests/TestDetailsModal.tsx
+++ b/client/src/features/trainee-profile/education/tests/TestDetailsModal.tsx
@@ -146,27 +146,25 @@ export const TestDetailsModal = ({
value={testFields.type ?? ''}
onChange={handleTestSelectChange}
>
- {isLegacyTest ? (
- <>
-
-
-
-
-
-
-
- >
- ) : (
- <>
-
-
-
-
-
-
-
- >
- )}
+ {isLegacyTest
+ ? [
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ]
+ : [
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ]}
{typeError && Type is required}
From c4f484364651f90a411aaf27673dda99b0babde5 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 2 Mar 2026 11:20:40 +0000
Subject: [PATCH 5/5] Simplify dropdown: always show only new test types,
remove legacy conditional logic
Co-authored-by: stasel <2033301+stasel@users.noreply.github.com>
---
.../education/tests/TestDetailsModal.tsx | 38 ++++---------------
1 file changed, 7 insertions(+), 31 deletions(-)
diff --git a/client/src/features/trainee-profile/education/tests/TestDetailsModal.tsx b/client/src/features/trainee-profile/education/tests/TestDetailsModal.tsx
index ec4c2b77..1d45a415 100644
--- a/client/src/features/trainee-profile/education/tests/TestDetailsModal.tsx
+++ b/client/src/features/trainee-profile/education/tests/TestDetailsModal.tsx
@@ -54,18 +54,6 @@ export const TestDetailsModal = ({
const isEditMode = Boolean(initialTest);
- const legacyTestTypes: TestType[] = [
- TestType.Presentation,
- TestType.JavaScript,
- TestType.BrowsersInterview,
- TestType.UsingApisInterview,
- TestType.NodeJS,
- TestType.ReactInterview,
- TestType.FinalProjectInterview,
- ];
-
- const isLegacyTest = isEditMode && initialTest?.type !== undefined && legacyTestTypes.includes(initialTest.type);
-
const handleClose = () => {
onClose();
};
@@ -146,25 +134,13 @@ export const TestDetailsModal = ({
value={testFields.type ?? ''}
onChange={handleTestSelectChange}
>
- {isLegacyTest
- ? [
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ]
- : [
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ]}
+
+
+
+
+
+
+
{typeError && Type is required}