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} > - Presentation - JavaScript - Browsers interview - Using APIs interview - Node.js - React interview - Final project interview + Core mid-term interview + Core end-term interview + Frontend mid-term interview + Backend mid-term interview + Cloud mid-term interview + Data mid-term interview + Tester mid-term interview {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} > - Core mid-term interview - Core end-term interview - Frontend mid-term interview - Backend mid-term interview - Cloud mid-term interview - Data mid-term interview - Tester mid-term interview + {isLegacyTest ? ( + <> + Presentation + JavaScript + Browsers interview + Using APIs interview + Node.js + 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 + + )} {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 ? ( - <> - Presentation - JavaScript - Browsers interview - Using APIs interview - Node.js - 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 - - )} + {isLegacyTest + ? [ + Presentation, + JavaScript, + Browsers interview, + Using APIs interview, + Node.js, + 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, + ]} {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 - ? [ - Presentation, - JavaScript, - Browsers interview, - Using APIs interview, - Node.js, - 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, - ]} + 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 {typeError && Type is required}