Skip to content

Exam mode: Color the result percentage from the up-to-date score after a complaint#13123

Open
az108 wants to merge 1 commit into
developfrom
bugfix/exam-mode/result-percentage-color-after-complaint
Open

Exam mode: Color the result percentage from the up-to-date score after a complaint#13123
az108 wants to merge 1 commit into
developfrom
bugfix/exam-mode/result-percentage-color-after-complaint

Conversation

@az108

@az108 az108 commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Summary

In the exam result summary, the achieved-points percentage kept the red "low score" color even when it showed 100% after a successful complaint. The percentage value is taken from the exam grade info (studentResult.exerciseGroupIdToExerciseResult[…].achievedScore), which is updated when a complaint is accepted, but the color/icon were derived from the participation's latest result (getLatestResultOfStudentParticipation(...)), which can still hold the pre-complaint (failing) score. The two sources diverged, so a 100% cell stayed red. This PR derives the color/icon from the same authoritative score used for the displayed percentage.

Checklist

General

Client

Motivation and Context

Closes #13064.

A green "100%" that renders red is confusing and looks like a bug to students reviewing their exam. The color must match the score that is actually displayed.

Description

  • In ExamResultSummaryComponent.getTextColorAndIconClassByExercise, when an authoritative achievedScore exists for the exercise (from the exam grade info — the same source that feeds the displayed percentage), use it as the result's score before computing the text color and result icon. The participation result is otherwise unchanged, so all existing special cases (late, preliminary, build failed, Athena, unsubmitted) are preserved.
  • The score is only overridden when both a participation result and an authoritative achievedScore are present; otherwise the previous behavior (color from the participation result) is kept — covered by a fallback test.
  • Added two Vitest tests: (1) a stale failing participation result + achievedScore: 100 now yields text-success; (2) with no authoritative exam score, the color still falls back to the participation result.

Steps for Testing

Prerequisites:

  • 1 Instructor, 1 Student
  • 1 Exam with an exercise, results published, complaints enabled
  1. As the student, receive a low (red) score on an exam exercise and submit a complaint.
  2. As the instructor/tutor, accept the complaint and award full points.
  3. As the student, open the exam result summary.
  4. Confirm the achieved percentage now shows 100% in green (previously red).
  5. Regression: confirm exercises with genuinely low scores still show red, and mid-range scores still show orange.

Screenshots

To be added.

Summary by CodeRabbit

  • Bug Fixes
    • Result colors and icons in the exam summary now reflect the authoritative exam score when available, even if the participation data is outdated.
    • When no authoritative score exists, the display continues to use the participation result as before.
    • Added tests covering both the authoritative-score and fallback behaviors.

In the exam result summary the achieved percentage was colored from the
participation's latest result, while the percentage itself comes from the
exam grade info. After an accepted complaint the grade info is updated but
the participation result can be stale, so a 100% score stayed red. Derive
the color/icon from the same achieved score used for the percentage.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@az108 az108 requested a review from krusche as a code owner July 5, 2026 09:21
@github-project-automation github-project-automation Bot moved this to Work In Progress in Artemis Development Jul 5, 2026
@github-actions github-actions Bot added client Pull requests that update TypeScript code. (Added Automatically!) exam Pull requests that affect the corresponding module labels Jul 5, 2026
@coderabbitai

coderabbitai Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

The getTextColorAndIconClassByExercise method in the exam result summary component now overrides the participation-derived result score with the authoritative achieved score from exam grade info when available, ensuring displayed colors/icons reflect updated scores (e.g., after accepted complaints). Corresponding unit tests were added.

Changes

Exam Result Color Fix

Layer / File(s) Summary
Authoritative score override and tests
src/main/webapp/app/exam/overview/summary/exam-result-summary.component.ts, src/main/webapp/app/exam/overview/summary/exam-result-summary.component.spec.ts
getTextColorAndIconClassByExercise now overrides the participation result's score with achievedScore from getExerciseResultByExerciseId when present, so text color and icon reflect the authoritative exam grade; new tests verify success coloring when an authoritative score exists and fallback to participation-based coloring otherwise.

Estimated code review effort: 2 (Simple) | ~10 minutes

Sequence Diagram(s)

sequenceDiagram
    participant Student
    participant ExamResultSummaryComponent
    participant StudentParticipation
    participant ExamGradeInfo

    Student->>ExamResultSummaryComponent: View exam result
    ExamResultSummaryComponent->>StudentParticipation: getLatestResultOfStudentParticipation(exercise)
    StudentParticipation-->>ExamResultSummaryComponent: participation result
    ExamResultSummaryComponent->>ExamGradeInfo: getExerciseResultByExerciseId(exercise.id)
    ExamGradeInfo-->>ExamResultSummaryComponent: achievedScore
    alt achievedScore present
        ExamResultSummaryComponent->>ExamResultSummaryComponent: override result.score with achievedScore
    end
    ExamResultSummaryComponent->>ExamResultSummaryComponent: getTextColorClass / getResultIconClass
    ExamResultSummaryComponent-->>Student: Render color/icon
Loading

Suggested labels: tests, bugfix, ready for review

Suggested reviewers: krusche, Claudia-Anthropica

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and clearly describes the exam-mode color fix after complaint score updates.
Linked Issues check ✅ Passed The code updates the result color/icon to use the authoritative exam score and adds tests for the complaint-fallback behavior.
Out of Scope Changes check ✅ Passed The changes are focused on the exam result summary logic and its regression tests, with no obvious unrelated scope.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bugfix/exam-mode/result-percentage-color-after-complaint

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
src/main/webapp/app/exam/overview/summary/exam-result-summary.component.spec.ts (1)

533-550: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Also assert resultIconClass for full coverage.

Both new tests only check textColorClass, but the fix in getTextColorAndIconClassByExercise overrides the score used for both textColorClass and resultIconClass. Asserting the icon class too would fully cover the changed behavior.

✅ Suggested additional assertions
-            expect(component.getTextColorAndIconClassByExercise(exercise).textColorClass).toBe('text-success');
+            const { textColorClass, resultIconClass } = component.getTextColorAndIconClassByExercise(exercise);
+            expect(textColorClass).toBe('text-success');
+            expect(resultIconClass).toBeDefined();
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@src/main/webapp/app/exam/overview/summary/exam-result-summary.component.spec.ts`
around lines 533 - 550, The new tests for getTextColorAndIconClassByExercise
only assert textColorClass, but the same authoritative-score fallback also
affects resultIconClass. Update both test cases in
exam-result-summary.component.spec.ts to assert the expected resultIconClass
alongside textColorClass so the changed behavior in
getTextColorAndIconClassByExercise is fully covered.
src/main/webapp/app/exam/overview/summary/exam-result-summary.component.ts (1)

502-513: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Use a class-preserving copy instead of object spread here. Result is a class, so Object.assign(new Result(), result, { score: achievedScore }) keeps the instance shape and avoids the spread operator guideline.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/main/webapp/app/exam/overview/summary/exam-result-summary.component.ts`
around lines 502 - 513, The Result object is being copied with object spread in
getTextColorAndIconClassByExercise, which loses the class instance shape. Update
this branch to create a class-preserving copy using Result as the target (for
example via Object.assign with a new Result instance), while keeping the
achievedScore override from getExerciseResultByExerciseId(exercise.id). Use
getTextColorAndIconClassByExercise and Result to locate the change.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In
`@src/main/webapp/app/exam/overview/summary/exam-result-summary.component.spec.ts`:
- Around line 533-550: The new tests for getTextColorAndIconClassByExercise only
assert textColorClass, but the same authoritative-score fallback also affects
resultIconClass. Update both test cases in exam-result-summary.component.spec.ts
to assert the expected resultIconClass alongside textColorClass so the changed
behavior in getTextColorAndIconClassByExercise is fully covered.

In `@src/main/webapp/app/exam/overview/summary/exam-result-summary.component.ts`:
- Around line 502-513: The Result object is being copied with object spread in
getTextColorAndIconClassByExercise, which loses the class instance shape. Update
this branch to create a class-preserving copy using Result as the target (for
example via Object.assign with a new Result instance), while keeping the
achievedScore override from getExerciseResultByExerciseId(exercise.id). Use
getTextColorAndIconClassByExercise and Result to locate the change.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ac702bc9-16cd-4d0e-bad0-c37f40a692d1

📥 Commits

Reviewing files that changed from the base of the PR and between 1cc9fac and 64e27c7.

📒 Files selected for processing (2)
  • src/main/webapp/app/exam/overview/summary/exam-result-summary.component.spec.ts
  • src/main/webapp/app/exam/overview/summary/exam-result-summary.component.ts

@az108 az108 temporarily deployed to playwright-e2e-tests July 5, 2026 09:29 — with GitHub Actions Inactive
@github-actions

github-actions Bot commented Jul 5, 2026

Copy link
Copy Markdown

End-to-End Test Results

Phase Status Details
Phase 1 (Relevant) ❌ Failed
TestsPassed ☑️Skipped ⚠️Failed ❌️Time ⏱
Phase 1: E2E Test Report99 ran1 passed10 skipped88 failed1h 53m 31s
Phase 2 (Remaining) ⏭ Skipped (no remaining tests)
❌ Failed Tests (Phase 1)
  • Exam Checklists › Exercise group checks › Instructor adds an exercise group and at least one exercise group check is marked (2m 37s)
  • Exam Checklists › Exercise group checks › Instructor adds exercise groups and the number of exercise groups check is correctly reacting to changes (2m 37s)
  • Exam Checklists › Exercise group checks › Instructor adds exercise groups and each exercise group has exercises check is correctly reacting to changes (2m 37s)
  • Exam Checklists › Exercise group checks › Instructor adds exercise groups and points in exercise groups equal check is correctly reacting to changes (2m 37s)
  • Exam Checklists › Exercise group checks › Instructor adds exercise groups and total points possible check is correctly reacting to changes (2m 36s)
  • Exam Checklists › Instructor registers a student to exam and at least one student check is marked (2m 8s)
  • Exam Checklists › Individual exam generation and exam preparation checks › Instructor generates individual exams, prepares exercises for start and corresponding checks are marked (2m 37s)
  • Exam Checklists › Instructor sets the publish results and review dates and the corresponding checks are marked (2m 8s)
  • Exam creation/deletion › Creates an exam (2m 27s)
  • Exam creation/deletion › Exam deletion › Deletes an existing exam (1m 41s)
  • Exam creation/deletion › Edits an exam › Edits an existing exam (52s)
  • Exam date verification › Exam timing › Shows after visible date (2m 27s)
  • Exam date verification › Exam timing › Student can start after start Date (2m 12s)
  • Exam date verification › Exam timing › Exam ends after end time (52s)
  • Exam import validation messages › shows actionable error messages below invalid fields during exam import (2m 12s)
  • Exam management › Exercise group › Manage Group › Adds a text exercise (1m 42s)
  • Exam management › Exercise group › Manage Group › Adds a quiz exercise (1m 42s)
  • Exam management › Exercise group › Manage Group › Adds a modeling exercise (1m 42s)
  • Exam management › Exercise group › Manage Group › Adds a programming exercise (1m 42s)
  • Exam management › Exercise group › Manage Group › Edits an exercise group (52s)
  • Exam management › Exercise group › Manage Group › Delete an exercise group (2m 27s)
  • Exam management › Exercise group › Create exercise group (1m 42s)
  • Exam management › Manage Students › Registers the course students for the exam (2m 26s)
  • Exam participation › Exam announcements › Instructor changes problem statement and all participants are informed (2m 27s)
  • Test Exam creation/deletion › Creates a test exam (2m 27s)
  • Test Exam creation/deletion › Test exam deletion › Deletes an existing test exam (1m 42s)
  • Test Exam management › Manage Group › Create exercise group (1m 41s)
  • Test Exam management › Manage Group › Adds a text exercise (1m 41s)
  • Test Exam management › Manage Group › Adds a quiz exercise (1m 42s)
  • Test Exam management › Manage Group › Adds a modeling exercise (1m 41s)
  • Test Exam management › Manage Group › Adds a programming exercise (1m 41s)
  • Test Exam management › Manage Group › Edits an exercise group (52s)
  • Test Exam management › Manage Group › Delete an exercise group (2m 27s)
  • Login page tests › Logs in via the UI (2m 29s)
  • Login page tests › Logs in programmatically and logs out via the UI (2m 21s)
  • Login page tests › Displays error messages on wrong password (2m 28s)
  • Login page tests › Fails to access protected resource without login (2m 26s)
  • Login page tests › Verify footer content (25s)
  • Logout tests › Logs out after confirmation of dialog for unsaved changes on exercise mode (1m 42s)
  • Logout tests › Stays logged in after dismissal of dialog for unsaved changes on exercise mode (1m 41s)
  • Check artemis system health › Checks continuous integration server health (13s)
  • Check artemis system health › Checks db health (13s)
  • Check artemis system health › Checks hazelcast health (13s)
  • Check artemis system health › Checks ping health (13s)
  • Check artemis system health › Checks readiness state health (13s)
  • Check artemis system health › Checks websocket broker health (13s)
  • Check artemis system health › Checks websocket connection health (2m 35s)
  • Exam assessment › Programming exercise assessment › Assess a programming exercise submission (MANUAL) (0s)
  • Exam assessment › Modeling exercise assessment › Assess a modeling exercise submission (0s)
  • Exam assessment › Text exercise assessment › Assess a text exercise submission (0s)
  • Exam assessment › Quiz exercise assessment › Assesses quiz automatically (0s)
  • Exam grading › Instructor sets grades and student receives a grade › Set exam gradings (0s)
  • Exam statistics › Check exam statistics (13m 53s)
  • Exam Checklists › Student makes a submission and missing assessment check is marked for instructor after assessment (7m 0s)
  • Exam Checklists › Student makes a quiz submission and unassessed quizzes check is marked for instructor after assessment (6m 59s)
  • Exam Checklists › Student does not submit the exam on time and corresponding check is marked (7m 2s)
  • Exam import with a clashing programming exercise › flags the clashing programming title / short name live, then imports successfully after renaming (2m 15s)
  • Exam participation › Early Hand-in › Participates as a student in a registered exam (20m 44s)
  • Exam participation › Early Hand-in › Using navigation sidebar to navigate within exam (6m 55s)
  • Exam participation › Early Hand-in › Using exercise overview to navigate within exam (6m 47s)
  • Exam participation › Early hand-in with continue and reload page › Participates in the exam, hand-in early, but instead continues (6m 59s)
  • Exam participation › Early hand-in with continue and reload page › Reloads exam page during participation and ensures that everything is as expected (7m 0s)
  • Exam participation › Early hand-in with continue and reload page › Reloads exam result page and ensures that everything is as expected (20m 59s)
  • Exam participation › Normal Hand-in › Participates as a student in a registered exam (7m 0s)
  • Exam participation › Programming exam with Git submissions › Participates in exam by Git submission using https (20m 39s)
  • Exam participation › Programming exam with Git submissions › Participates in exam by Git submission using https with token (20m 53s)
  • Exam participation › Programming exam with Git submissions › Participates in exam by Git submission using ssh (7m 42s)
  • Exam participation › Exam announcements › Instructor sends an announcement message and all participants receive it (7m 9s)
  • Exam participation › Exam announcements › Instructor changes working time and all participants are informed (7m 8s)
  • Exam PlantUML diagram isolation › Each exercise renders its own PlantUML diagram without cross-contamination (6m 41s)
  • Exam PlantUML diagram isolation › PlantUML diagrams survive navigating back and forth and rapid switching (6m 34s)
  • Exam quiz multiple-choice add-to-saved-selection retention › does not drop a saved answer when adding another option after a reload (7m 4s)
  • Exam Results › Check text exercise results (0s)
  • Exam submission recovery after a failed save › restores and re-sends a not-yet-saved quiz answer after a failed save and reload (7m 7s)
  • Exam test run › Creates a test run (7m 8s)
  • Exam test run › Manage a test run › Changes test run working time (6m 57s)
  • Exam test run › Manage a test run › Conducts a test run (2m 21s)
  • Exam test run › Delete a test run › Deletes a test run (3m 39s)
  • Exam free-text summary isolation › shows each text exercise its own problem statement and answer in the summary (7m 4s)
  • Test exam participation › Early Hand-in › Participates as a student in a registered test exam (7m 3s)
  • Test exam participation › Early Hand-in › Using exercise sidebar to navigate within exam (7m 2s)
  • Test exam participation › Early Hand-in › Using exercise overview to navigate within exam (7m 2s)
  • Test exam participation › Normal Hand-in › Participates as a student in a registered exam (7m 1s)
  • Test Exam - student exams › Check exam participants and their submissions › Open the list of exam students (7m 2s)
  • Test Exam - student exams › Check exam participants and their submissions › Search for a student in exams (7m 1s)
  • Test exam test run › Creates a test run (6m 56s)
  • Test exam test run › Manage a test run › Conducts a test run (1m 24s)
  • Test exam test run › Delete a test run › Deletes a test run (7m 4s)

Flakiness Scores for Failed Tests

Test Flakiness Score Default Branch Failure Rate Combined Failure Rate
e2e/exam/ExamChecklists.spec.ts#Exam Checklists › Exercise group checks › Instructor adds an exercise group and at least one exercise group check is marked 0% 0.3% 0.1%
e2e/exam/ExamChecklists.spec.ts#Exam Checklists › Exercise group checks › Instructor adds exercise groups and the number of exercise groups check is correctly reacting to changes 0% 0.6% 0.2%
e2e/exam/ExamChecklists.spec.ts#Exam Checklists › Exercise group checks › Instructor adds exercise groups and each exercise group has exercises check is correctly reacting to changes 0% 0.5% 0.2%
e2e/exam/ExamChecklists.spec.ts#Exam Checklists › Exercise group checks › Instructor adds exercise groups and points in exercise groups equal check is correctly reacting to changes 0% 0.4% 0.1%
e2e/exam/ExamChecklists.spec.ts#Exam Checklists › Exercise group checks › Instructor adds exercise groups and total points possible check is correctly reacting to changes 0% 0.5% 0.2%
e2e/exam/ExamChecklists.spec.ts#Exam Checklists › Instructor registers a student to exam and at least one student check is marked 68.4045584045584% 1.1% 0.3%
e2e/exam/ExamChecklists.spec.ts#Exam Checklists › Individual exam generation and exam preparation checks › Instructor generates individual exams, prepares exercises for start and corresponding checks are marked 68.1386514719848% 1.3% 0.4%
e2e/exam/ExamChecklists.spec.ts#Exam Checklists › Instructor sets the publish results and review dates and the corresponding checks are marked 0% 0.4% 0.1%
e2e/exam/ExamCreationDeletion.spec.ts#Exam creation/deletion › Creates an exam 0% 0.2% 0.5%
e2e/exam/ExamCreationDeletion.spec.ts#Exam creation/deletion › Exam deletion › Deletes an existing exam 0% 0.2% 0.1%
e2e/exam/ExamCreationDeletion.spec.ts#Exam creation/deletion › Edits an exam › Edits an existing exam 0% 0.2% 0.7%
e2e/exam/ExamDateVerification.spec.ts#Exam date verification › Exam timing › Shows after visible date 0% 0.4% 0.1%
e2e/exam/ExamDateVerification.spec.ts#Exam date verification › Exam timing › Student can start after start Date 27.471884840305886% 0.6% 4.2%
e2e/exam/ExamDateVerification.spec.ts#Exam date verification › Exam timing › Exam ends after end time 0% 0.5% 0.1%
e2e/exam/ExamImportValidation.spec.ts#Exam import validation messages › shows actionable error messages below invalid fields during exam import 26.756756756756754% 0.0% 5.4%
e2e/exam/ExamManagement.spec.ts#Exam management › Exercise group › Manage Group › Adds a text exercise 0% 0.2% 0.1%
e2e/exam/ExamManagement.spec.ts#Exam management › Exercise group › Manage Group › Adds a quiz exercise 0% 0.5% 0.2%
e2e/exam/ExamManagement.spec.ts#Exam management › Exercise group › Manage Group › Adds a modeling exercise 0% 0.2% 0.1%
e2e/exam/ExamManagement.spec.ts#Exam management › Exercise group › Manage Group › Adds a programming exercise 0% 0.3% 0.1%
e2e/exam/ExamManagement.spec.ts#Exam management › Exercise group › Manage Group › Edits an exercise group 0% 0.2% 0.1%
e2e/exam/ExamManagement.spec.ts#Exam management › Exercise group › Manage Group › Delete an exercise group 0% 0.2% 0.1%
e2e/exam/ExamManagement.spec.ts#Exam management › Exercise group › Create exercise group 0% 0.2% 0.1%
e2e/exam/ExamManagement.spec.ts#Exam management › Manage Students › Registers the course students for the exam 0% 0.9% 0.2%
e2e/exam/ExamParticipation.spec.ts#Exam participation › Exam announcements › Instructor changes problem statement and all participants are informed 68.27160493827161% 1.2% 0.3%
e2e/exam/test-exam/TestExamCreationDeletion.spec.ts#Test Exam creation/deletion › Creates a test exam 0% 0.3% 0.4%
e2e/exam/test-exam/TestExamCreationDeletion.spec.ts#Test Exam creation/deletion › Test exam deletion › Deletes an existing test exam 0% 0.3% 0.1%
e2e/exam/test-exam/TestExamManagement.spec.ts#Test Exam management › Manage Group › Create exercise group 0% 0.3% 0.1%
e2e/exam/test-exam/TestExamManagement.spec.ts#Test Exam management › Manage Group › Adds a text exercise 0% 0.3% 0.1%
e2e/exam/test-exam/TestExamManagement.spec.ts#Test Exam management › Manage Group › Adds a quiz exercise 0% 0.6% 0.4%
e2e/exam/test-exam/TestExamManagement.spec.ts#Test Exam management › Manage Group › Adds a modeling exercise 0% 0.3% 0.1%
e2e/exam/test-exam/TestExamManagement.spec.ts#Test Exam management › Manage Group › Adds a programming exercise 0% 0.3% 0.1%
e2e/exam/test-exam/TestExamManagement.spec.ts#Test Exam management › Manage Group › Edits an exercise group 0% 0.3% 0.1%
e2e/exam/test-exam/TestExamManagement.spec.ts#Test Exam management › Manage Group › Delete an exercise group 0% 0.3% 0.1%
e2e/Login.spec.ts#Login page tests › Logs in via the UI 0% 0.6% 0.3%
e2e/Login.spec.ts#Login page tests › Logs in programmatically and logs out via the UI 0% 0.4% 0.3%
e2e/Login.spec.ts#Login page tests › Displays error messages on wrong password 0% 0.4% 0.3%
e2e/Login.spec.ts#Login page tests › Fails to access protected resource without login 68.27160493827161% 1.2% 0.4%
e2e/Login.spec.ts#Login page tests › Verify footer content 0% 0.3% 0.3%
e2e/Logout.spec.ts#Logout tests › Logs out after confirmation of dialog for unsaved changes on exercise mode 68.4045584045584% 1.1% 0.6%
e2e/Logout.spec.ts#Logout tests › Stays logged in after dismissal of dialog for unsaved changes on exercise mode 68.4045584045584% 1.1% 0.6%
e2e/SystemHealth.spec.ts#Check artemis system health › Checks continuous integration server health 0% 0.3% 0.5%
e2e/SystemHealth.spec.ts#Check artemis system health › Checks db health 0% 0.2% 0.4%
e2e/SystemHealth.spec.ts#Check artemis system health › Checks hazelcast health 0% 0.3% 0.5%
e2e/SystemHealth.spec.ts#Check artemis system health › Checks ping health 0% 0.2% 0.4%
e2e/SystemHealth.spec.ts#Check artemis system health › Checks readiness state health 0% 0.3% 0.5%
e2e/SystemHealth.spec.ts#Check artemis system health › Checks websocket broker health 0% 0.2% 0.4%
e2e/SystemHealth.spec.ts#Check artemis system health › Checks websocket connection health 0% 0.3% 0.9%
e2e/exam/ExamAssessment.spec.ts#Exam assessment › Programming exercise assessment › Assess a programming exercise submission (MANUAL) 91.35762348346617% 5.7% 1.1%
e2e/exam/ExamAssessment.spec.ts#Exam assessment › Modeling exercise assessment › Assess a modeling exercise submission 64.81481481481481% 3.7% 0.9%
e2e/exam/ExamAssessment.spec.ts#Exam assessment › Text exercise assessment › Assess a text exercise submission 67.2079772079772% 2.0% 0.5%
e2e/exam/ExamAssessment.spec.ts#Exam assessment › Quiz exercise assessment › Assesses quiz automatically 65.87844254510921% 2.9% 0.8%
e2e/exam/ExamAssessment.spec.ts#Exam grading › Instructor sets grades and student receives a grade › Set exam gradings 68.53751187084521% 1.0% 0.3%
e2e/exam/ExamAssessment.spec.ts#Exam statistics › Check exam statistics 64.15004748338082% 4.2% 0.9%
e2e/exam/ExamChecklists.spec.ts#Exam Checklists › Student makes a submission and missing assessment check is marked for instructor after assessment 68.4045584045584% 1.1% 0.4%
e2e/exam/ExamChecklists.spec.ts#Exam Checklists › Student makes a quiz submission and unassessed quizzes check is marked for instructor after assessment 0% 0.7% 0.2%
e2e/exam/ExamChecklists.spec.ts#Exam Checklists › Student does not submit the exam on time and corresponding check is marked 0% 0.5% 0.2%
e2e/exam/ExamImportValidation.spec.ts#Exam import with a clashing programming exercise › flags the clashing programming title / short name live, then imports successfully after renaming 26.756756756756754% 0.0% 5.4%
e2e/exam/ExamParticipation.spec.ts#Exam participation › Early Hand-in › Participates as a student in a registered exam 66.94207027540361% 2.2% 0.8%
e2e/exam/ExamParticipation.spec.ts#Exam participation › Early Hand-in › Using navigation sidebar to navigate within exam 67.0750237416904% 2.1% 0.6%
e2e/exam/ExamParticipation.spec.ts#Exam participation › Early Hand-in › Using exercise overview to navigate within exam 68.1386514719848% 1.3% 0.4%
e2e/exam/ExamParticipation.spec.ts#Exam participation › Early hand-in with continue and reload page › Participates in the exam, hand-in early, but instead continues 0% 0.8% 0.4%
e2e/exam/ExamParticipation.spec.ts#Exam participation › Early hand-in with continue and reload page › Reloads exam page during participation and ensures that everything is as expected 0% 0.9% 0.2%
e2e/exam/ExamParticipation.spec.ts#Exam participation › Early hand-in with continue and reload page › Reloads exam result page and ensures that everything is as expected 0% 0.9% 0.2%
e2e/exam/ExamParticipation.spec.ts#Exam participation › Normal Hand-in › Participates as a student in a registered exam 0% 0.7% 0.2%
e2e/exam/ExamParticipation.spec.ts#Exam participation › Programming exam with Git submissions › Participates in exam by Git submission using https 62.28869895536562% 5.5% 1.0%
e2e/exam/ExamParticipation.spec.ts#Exam participation › Programming exam with Git submissions › Participates in exam by Git submission using https with token 62.02279202279202% 5.7% 1.0%
e2e/exam/ExamParticipation.spec.ts#Exam participation › Programming exam with Git submissions › Participates in exam by Git submission using ssh 88.00432262501228% 8.0% 1.4%
e2e/exam/ExamParticipation.spec.ts#Exam participation › Exam announcements › Instructor sends an announcement message and all participants receive it 68.53751187084521% 1.0% 0.2%
e2e/exam/ExamParticipation.spec.ts#Exam participation › Exam announcements › Instructor changes working time and all participants are informed 68.53751187084521% 1.0% 0.2%
e2e/exam/ExamPlantUmlDiagramIsolation.spec.ts#Exam PlantUML diagram isolation › Each exercise renders its own PlantUML diagram without cross-contamination 96.1932092004381% 1.9% 2.0%
e2e/exam/ExamPlantUmlDiagramIsolation.spec.ts#Exam PlantUML diagram isolation › PlantUML diagrams survive navigating back and forth and rapid switching 26.756756756756754% 0.0% 5.4%
e2e/exam/ExamQuizMultiSelectRetention.spec.ts#Exam quiz multiple-choice add-to-saved-selection retention › does not drop a saved answer when adding another option after a reload 26.756756756756754% 0.0% 5.4%
e2e/exam/ExamResults.spec.ts#Exam Results › Check text exercise results 89.24979434902947% 5.4% 5.4%
e2e/exam/ExamSubmissionRecovery.spec.ts#Exam submission recovery after a failed save › restores and re-sends a not-yet-saved quiz answer after a failed save and reload 23.513513513513512% 0.0% 10.8%
e2e/exam/ExamTestRun.spec.ts#Exam test run › Creates a test run 0% 0.8% 0.3%
e2e/exam/ExamTestRun.spec.ts#Exam test run › Manage a test run › Changes test run working time 0% 0.7% 0.3%
e2e/exam/ExamTestRun.spec.ts#Exam test run › Manage a test run › Conducts a test run 67.2079772079772% 2.0% 0.7%
e2e/exam/ExamTestRun.spec.ts#Exam test run › Delete a test run › Deletes a test run 28.98335582546109% 0.8% 1.7%
e2e/exam/ExamTextSummaryIsolation.spec.ts#Exam free-text summary isolation › shows each text exercise its own problem statement and answer in the summary 26.756756756756754% 0.0% 5.4%
e2e/exam/test-exam/TestExamParticipation.spec.ts#Test exam participation › Early Hand-in › Participates as a student in a registered test exam 0% 0.5% 0.5%
e2e/exam/test-exam/TestExamParticipation.spec.ts#Test exam participation › Early Hand-in › Using exercise sidebar to navigate within exam 28.596491228070175% 0.5% 2.3%
e2e/exam/test-exam/TestExamParticipation.spec.ts#Test exam participation › Early Hand-in › Using exercise overview to navigate within exam 26.293297345928924% 0.4% 6.2%
e2e/exam/test-exam/TestExamParticipation.spec.ts#Test exam participation › Normal Hand-in › Participates as a student in a registered exam 68.1386514719848% 1.3% 0.3%
e2e/exam/test-exam/TestExamStudentExams.spec.ts#Test Exam - student exams › Check exam participants and their submissions › Open the list of exam students 28.74943769680612% 0.7% 2.1%
e2e/exam/test-exam/TestExamStudentExams.spec.ts#Test Exam - student exams › Check exam participants and their submissions › Search for a student in exams 94.60788723946618% 2.8% 2.3%
e2e/exam/test-exam/TestExamTestRun.spec.ts#Test exam test run › Creates a test run 0% 0.7% 0.2%
e2e/exam/test-exam/TestExamTestRun.spec.ts#Test exam test run › Manage a test run › Conducts a test run 67.0750237416904% 2.1% 0.7%
e2e/exam/test-exam/TestExamTestRun.spec.ts#Test exam test run › Delete a test run › Deletes a test run 68.53751187084521% 1.0% 0.7%

Test Strategy: Two-phase execution

  • Phase 1: e2e/Login.spec.ts e2e/Logout.spec.ts e2e/SystemHealth.spec.ts e2e/exam/
  • Phase 2: e2e/Passkey.spec.ts e2e/PasskeyReminderPersistence.spec.ts e2e/admin/ e2e/atlas/ e2e/course/ e2e/exercise/ExerciseImport.spec.ts e2e/exercise/file-upload/ e2e/exercise/modeling/ e2e/exercise/programming/ e2e/exercise/quiz-exercise/ e2e/exercise/text/ e2e/iris/ e2e/lecture/ e2e/shared/

Overall: ❌ E2E tests failed

🔗 Workflow Run · 📊 Test Report Phase 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

client Pull requests that update TypeScript code. (Added Automatically!) exam Pull requests that affect the corresponding module

Projects

Status: Work In Progress

Development

Successfully merging this pull request may close these issues.

Exam mode: Result percentage stays red after a complaint raises the score to 100%

1 participant