Skip to content

test(e2e): add admin course archive, publish, clone, and import test suites - #756

Merged
DeFiVC merged 1 commit into
ChainLearnOfficial:mainfrom
CMI-James:feat-admin-course-e2e-tests
Oct 22, 2026
Merged

DeFiVC merged 1 commit into
ChainLearnOfficial:mainfrom
CMI-James:feat-admin-course-e2e-tests

Conversation

@CMI-James

Copy link
Copy Markdown
Contributor

Summary of Changes

This pull request adds complete E2E test suites covering admin course management endpoints across issues #653, #652, #651, and #650:

  1. Admin Course Archive E2E Tests (Add E2E tests for admin course archive #653) (tests/e2e/admin-course-archive.test.ts):

    • Auth verification (401 unauthenticated, 403 non-admin).
    • Validates archiving active courses sets isActive: false and records archivedAt timestamp.
    • Verifies idempotent archiving preserves original archivedAt timestamp.
    • Tests reactivation / unarchive workflow via course updates.
    • Tests listing and visibility behavior: verifies archived courses are excluded from public listings, while enrolled learners and admins retain access.
  2. Admin Course Publish E2E Tests (Add E2E tests for admin course publish #652) (tests/e2e/admin-course-publish.test.ts):

    • Auth verification (401 unauthenticated, 403 non-admin).
    • Tests publish readiness checks via POST /api/v1/admin/courses/:id/publish-check.
    • Tests publish rejection (400 validation error) when blocking issues exist (e.g. course has no modules, or modules lack quizzes).
    • Tests draft to active transition: publishing sets isDraft: false, isActive: true, and clears archivedAt.
    • Verifies published courses immediately appear in the public course catalog.
  3. Admin Course Clone E2E Tests (Add E2E tests for admin course clone #651) (tests/e2e/admin-course-clone.test.ts):

    • Auth verification (401 unauthenticated, 403 non-admin).
    • Tests cloning courses with custom titles and fallback default titles (${original.title} (Clone)).
    • Verifies module copying with new IDs while preserving ordering and metadata.
    • Verifies module content items (moduleContent) and module quizzes (quizzes) are deep-copied and remapped to the cloned course and newly generated module IDs.
    • Verifies cloned course initializes in draft state (isDraft: true, isActive: false).
  4. Admin Course Import E2E Tests (Add E2E tests for admin course import #650) (tests/e2e/admin-course-import.test.ts):

    • Auth verification (401 unauthenticated, 403 non-admin).
    • Tests multipart/form-data validation and error handling (rejects non-multipart requests, missing file parts, and corrupted/malformed JSON with 400).
    • Tests schema validation against importCourseSchema (rejects missing required fields and invalid difficulty values).
    • Tests successful bulk creation of courses and nested modules from valid uploaded JSON files (returning 201).

Closes #653
Closes #652
Closes #651
Closes #650

@DeFiVC
DeFiVC merged commit 7ab0859 into ChainLearnOfficial:main Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants