1Business context
LearnHub is a learning management system. Learners enrol, watch lessons, track progress and take a timed quiz; passing (60%+) issues a certificate. Content gating and progress persistence are core business rules.
Sign up with live password rules or log in, enroll in a course, watch lessons to unlock “Mark complete”, finish the course to unlock a timed quiz, and earn a certificate.
2Users & roles
- 👤 Learner (learner@learnhub.dev / Learn@123) — signs up or logs in, completes courses, takes quizzes
3Modules & screens
| Screen | Route | What it does |
|---|---|---|
| Login / sign-up | /apps/lms | Validation, password strength and duplicate-email check |
| Catalogue | /apps/lms/courses | Search, category chips, level filter, enrol |
| Course player | /apps/lms/course/[id] | Lessons, play then mark complete, progress bar |
| Quiz | /apps/lms/course/[id]/quiz | Mixed question types, 5-minute timer, result and certificate |
4Main end-to-end journey
Enrol, finish, pass and certify
- Log in as learner@learnhub.dev / Learn@123
- Search Selenium and enrol
- For each lesson play the video then mark complete
- Start the quiz and answer all four correctly
- Submit
Expected: Progress reaches 100%, quiz scores 100%, and a certificate with an LH- id appears
5Business rules & validations
- Sign-up validationBeginner
password-strength updates as you type; a weak password, mismatched confirm or reused email each fail.
- Catalog filtersBeginner
Combine course-search, category-* chips and level-filter; assert course-count.
- Wait for enabledIntermediate
mark-complete is disabled until play-video finishes (~1.5s) — wait for it to be enabled.
- Progress trackingIntermediate
Each completed lesson updates course-progress and the lesson check marks; state survives reloads.
- Locked contentIntermediate
quiz-locked shows until 100%; visiting /quiz directly also shows the locked state.
- Mixed question typesIntermediate
Answer radio (q1-*), checkboxes (q2-*), a select (q3) and free text (q4).
- Unanswered confirmAdvanced
Submitting with blanks opens unanswered-modal; submit-anyway grades as wrong.
- Timer auto-submitAdvanced
Mock the clock past 5:00 and assert the quiz auto-submits to quiz-result.
6Test data & credentials
- URL
- /apps/lms
- Learner
- learner@learnhub.dev
- Password
- Learn@123
- Pass mark
- 60%
7Glossary
- Pass mark
- 60% — issues a certificate with an LH- id
- Locked quiz
- Quiz is unavailable until course progress is 100%
- Mark complete
- Enabled only after the lesson video finishes (~1.5 s)
8Watch-outs for automation
- ⚠️Wait for mark-complete to become enabled — don't click it early
- ⚠️Progress persists across reloads
- ⚠️Mock the clock to test quiz auto-submit at 5:00
9Suggested test strategy
1 · Smoke
4
P1 positive and end-to-end cases — run on every build.
2 · Regression
16
All cases, incl. 4 negative and 4 edge — run before release.
3 · End-to-end
3
Full user journeys — run nightly.
Start with these smoke cases
- LEARNHUB-01 — Log in and complete a lesson
- LEARNHUB-02 — Pass the quiz
- LEARNHUB-E2E-01 — Enrol, finish, pass and certify
- LEARNHUB-E2E-02 — Sign up and resume later