feat: redesign Exams List page to show submitted custom exams

- Added Custom Exams tab showing all exams from Generation page
- Displays title, module badges, duration, and status
- Added Create Exam button
- Kept Exam Sessions tab for institutional sessions
- Search filters across exams

Made-with: Cursor
This commit is contained in:
Yamen Ahmad
2026-04-12 11:07:54 +04:00
parent 677ba85c77
commit 1e688107fa
22591 changed files with 3100321 additions and 95 deletions

View File

@@ -0,0 +1,35 @@
import { ModuleExecutionInfo } from 'vite-node/client';
interface RuntimeCoverageModuleLoader {
executeId: (id: string) => Promise<{
default: RuntimeCoverageProviderModule
}>;
isBrowser?: boolean;
moduleExecutionInfo?: ModuleExecutionInfo;
}
interface RuntimeCoverageProviderModule {
/**
* Factory for creating a new coverage provider
*/
getProvider: () => any;
/**
* Executed before tests are run in the worker thread.
*/
startCoverage?: (runtimeOptions: {
isolate: boolean
}) => unknown | Promise<unknown>;
/**
* Executed on after each run in the worker thread. Possible to return a payload passed to the provider
*/
takeCoverage?: (runtimeOptions?: {
moduleExecutionInfo?: ModuleExecutionInfo
}) => unknown | Promise<unknown>;
/**
* Executed after all tests have been run in the worker thread.
*/
stopCoverage?: (runtimeOptions: {
isolate: boolean
}) => unknown | Promise<unknown>;
}
export type { RuntimeCoverageModuleLoader as R, RuntimeCoverageProviderModule as a };