Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exam mode: Change test case default visibility to after results release date #8451

Merged
merged 98 commits into from
May 18, 2024

Conversation

florian-glombik
Copy link
Contributor

@florian-glombik florian-glombik commented Apr 20, 2024

Checklist

General

Server

  • Important: I implemented the changes with a very good performance and prevented too many (unnecessary) database calls.
  • I followed the coding and design guidelines.
  • I added multiple integration tests (Spring) related to the features (with a high test coverage).
  • I documented the Java code using JavaDoc style.

Client

  • I followed the coding and design guidelines.
  • I added multiple integration tests (Jest) related to the features (with a high test coverage), while following the test guidelines.
  • I documented the TypeScript code using JSDoc style.
  • I added multiple screenshots/screencasts of my UI changes.
  • I translated all newly inserted strings into English and German.

Motivation and Context

Description

Finishing the work that was started in #7738

  • Adjusted the default test case visibility depending on whether the exercise is an exam or course exercise (and corresponding translations)
  • Adjusted reset method to reset exam exercise test case visibilities to "After Release Date of Results"
  • Adding JUnit test for new reset and creation of new exercises
  • Fixing E2E tests that failed due to changes (Cypress and playwright)
  • Fixing issues introduced by Development: Extract client duplicates into re-usable components #7242 (console error when loading student exam as instructor, change submitted state displayed twice)
  • Fixed issue in supporting_script introduced in Development: Add a script to create courses #7379 (log.info does not exist and lead to failing course setup script)

Steps for Testing

Prerequisites:

  • 1 Instructor
  • 1 Students

Create a programming exercise

  1. instructor: create a course programming exercise
  2. instructor: navigate to grading of the exercise and see that the visibility of the test cases is Always
  3. instructor: create an exam programming exercise
  4. instructor: navigate to grading of the exercise and see that the visibility of the test cases is After Release Date of Results
  5. instructor: make some changes and see that reset rests to the expected default state (= test case visibility After Release Date of Results)
  6. student: participate in the course exercise and see that you get immediate feedback
  7. student: participate in the exam and see that you do only get the info whether your solution compiled

Import an exercise into an exam

  1. instructor: import an exercise into an exam, see that the test case visibility is not changed by the import
  2. instructor: import the same exercise again into the exam (at least one test case visibility should be always) - this time toggle the option at the bottom in the Assessment section to set the visibility of test cases to After Release Date of Results, and see that the test case visibility is set to After Release Date of Results

For Importing exercise groups no modification/modification option applies, due to the assumption that exercise groups from other exams will be configured properly.

Not supported for imports from files, as there are further issues with this functionality right now that seem out of scope to me, see #8562

Review the documentation

Have a look at the documentation from the build results

  1. See that it is build properly https://artemis-platform--8451.org.readthedocs.build/en/8451/user/exams/instructors_guide.html#add-exercises
  2. Is the newly added part understandable for you?

Testserver States







Review Progress

Code Review

  • Code Review 1
  • Code Review 2

Manual Tests

  • Test 1
  • Test 2

Exam Mode Test

  • Test 1
  • Test 2

Test Coverage

Client

Class/File Line Coverage Confirmation (assert/expect)
programming-exercise-task.component.ts 92.68%
programming-exercise-lifecycle.component.ts 97.97%
programming-exercises.ts not found (added) ❌ (just a type definition )

Server

Class/File Line Coverage Confirmation (assert/expect)
ProgrammingExercise.java 88% ✅ ❌
ProgrammingExerciseFeedbackCreationService.java 94%
ProgrammingExerciseImportService.java 93%
ProgrammingExerciseTestCaseService.java 89%
ProgrammingExerciseExportImportResource.java 91%

Screenshots

Change Before Now
New default test visibility for new exam exercises image image
Added import option (only when importing into exam, not available for file imports) image image

Summary by CodeRabbit

  • New Features

    • Introduced default visibility settings for programming exercise test cases, varying between course and exam exercises.
    • Enhanced tooltip content in programming exercise grading components to reflect the exercise type.
  • Enhancements

    • Improved logic for handling null values in student exam detail components.
    • Updated test case visibility management based on new default settings in programming exercises.
  • Bug Fixes

    • Fixed issues with submission status toggling in student exam details.
  • Documentation

    • Updated German and English localization files with new terms related to programming exercise visibility.
  • Tests

    • Enhanced Cypress tests with new timeout settings and method adjustments for better reliability during assessments and exam setups.

florian-glombik and others added 30 commits December 4, 2023 10:36
…e-default-visibility' into enhancement/exam/change-test-case-default-visibility
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Copy link
Contributor

@JohannesStoehr JohannesStoehr left a comment

Choose a reason for hiding this comment

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

Approve after merge conflict

Copy link
Member

@BBesrour BBesrour left a comment

Choose a reason for hiding this comment

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

Approve after merge conflict

Copy link
Contributor

@dmytropolityka dmytropolityka left a comment

Choose a reason for hiding this comment

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

Approve after merge conflict

Copy link
Contributor

@az108 az108 left a comment

Choose a reason for hiding this comment

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

reapprove

@krusche krusche merged commit 11fc674 into develop May 18, 2024
36 of 40 checks passed
@krusche krusche deleted the enhancement/exam/change-test-case-default-visibility branch May 18, 2024 07:56
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!) component:Exam Mode component:Programming cypress Pull requests that update cypress tests. (Added Automatically!) documentation ready to merge server Pull requests that update Java code. (Added Automatically!) tests
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

9 participants