Quiz exercises: Add quiz endpoints to the generated API contract - #13550
Open
Nihad74 wants to merge 5 commits into
Open
Quiz exercises: Add quiz endpoints to the generated API contract#13550Nihad74 wants to merge 5 commits into
Quiz exercises: Add quiz endpoints to the generated API contract#13550Nihad74 wants to merge 5 commits into
Conversation
Development: Add quiz endpoints to the generated API contract
Nihad74
force-pushed
the
feature/quiz-exercises/integrate-quiz-openapi-generation
branch
from
August 22, 2026 00:17
7487c79 to
fda7e93
Compare
Nihad74
had a problem deploying
to
playwright-e2e-tests
August 22, 2026 00:29 — with
GitHub Actions
Error
Development: Add quiz endpoints to the generated API contractQuiz exercises: Add quiz endpoints to the generated API contract
End-to-End Test Results
❌ Failed Tests
Test Strategy: Running all tests (configuration or infrastructure changes detected) Overall: ❌ E2E: real (non-flaky) test failure 🔗 Workflow Run · 📊 Test Report |
Nihad74
temporarily deployed
to
playwright-e2e-tests
August 22, 2026 00:53 — with
GitHub Actions
Inactive
Nihad74
marked this pull request as ready for review
August 23, 2026 23:29
Nihad74
had a problem deploying
to
playwright-e2e-tests
August 23, 2026 23:37 — with
GitHub Actions
Error
Nihad74
temporarily deployed
to
playwright-e2e-tests
August 24, 2026 00:26 — with
GitHub Actions
Inactive
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Integrate the complete Quiz module into OpenAPI generation. The generated contract now contains all 29 Quiz HTTP operations, models polymorphic quiz payloads as typed unions, and produces compile-safe Angular services and models without migrating existing Quiz call sites.
Checklist
General
Server
Client
Motivation and Context
OpenAPI generation previously scanned only the Quiz training package. Most Quiz REST resources were therefore absent from
openapi/openapi.yaml, and several polymorphic request and response contracts could not be represented safely by the client generator.This change integrates the complete
quiz.webnamespace while preserving the existing runtime behavior and Angular Quiz facades. It also fixes the source DTO and schema contracts required for strict, unambiguous generation instead of patching the generated YAML.Description
quiz.web.trainingto the completequiz.webnamespace.before-quiz-start,live-quiz, andafter-quiz-enddiscriminator values.startBatchREST mappings and generate collision-free TypeScript method names.openapi/openapi.yamland the committed Angular OpenAPI client tree.Generated-contract invariants:
oneOfschemas with corresponding generated TypeScript union aliases.Steps for Testing
Prerequisites:
1. Regenerate and validate the API contract
./gradlew generateApiDocs -x webapp../gradlew openApiGenerate -x webapp.git diff --exit-codereports no generated changes.openapi/openapi.yamland confirm:operationIdvalues;$reftargets resolve;QuizQuestionWithoutSolutionbranches do not exposeexplanation;exerciseandfilesparts;X-Has-Next.2. Run server verification
./gradlew test --tests QuizEntityUsageArchitectureTest --tests QuizResourceArchitectureTest -x webapp../gradlew test --tests QuizExerciseIntegrationTest --tests QuizSubmissionIntegrationTest --tests QuizParticipationIntegrationTest --tests QuizQuestionProgressIntegrationTest --tests QuizTrainingLeaderboardTest --tests QuizExerciseVersionIntegrationTest -x webapp.These tests cover retrieval, creation/update, batch lifecycle, participation, submission, question progress, training, leaderboard behavior, versioning, and resource architecture.
3. Compile the generated client
pnpm run webapp:build.4. Verify the three student response states
quizQuestionsType: "before-quiz-start"and does not expose questions.quizQuestionsType: "live-quiz", include questions, and do not expose solutions.quizQuestionsType: "after-quiz-end"and that the evaluated result exposes the expected solutions and feedback.Testserver States
You can manage test servers using Helios. Check environment statuses in the environment list. To deploy to a test server, go to the CI/CD page, find this PR or branch, and trigger the deployment.
Review Progress
Code Review
Manual Tests
Test Coverage
Note: Some tests in the Test job did not pass (
failure). Coverage below may be partial.Client
Server
Last updated: 2026-08-24 00:48:56 UTC