1Business context
Chirp is a social micro-blogging app. Engagement features — posts with a 280-character limit, mentions, likes, comments, follows and notifications — must update instantly and consistently across the feed.
Compose posts with a live character counter, @mention autocomplete and an image, like and comment instantly, scroll an infinite feed, follow people and read notifications.
2Users & roles
- 👤 Signed-in user @amir — posts, interacts and follows others
3Modules & screens
| Screen | Route | What it does |
|---|---|---|
| Home feed | /apps/social | Composer with counter and mentions, infinite scroll, likes, comments, notifications |
| Profile | /apps/social/u/[handle] | User details, follow/unfollow and follower count |
4Main end-to-end journey
Post, like, comment, follow
- Write a post mentioning @mia via autocomplete and publish
- Like it
- Open comments and add one
- Open Mia's profile via the mention and follow
Expected: Post shows "with @mia", like count 1, comment count 1, and Mia's follower count increases to 2,311
5Business rules & validations
- Character counterBeginner
post-count counts down from 280, turns amber under 20 and red below 0; publish-post disables over the limit.
- @mention autocompleteIntermediate
Type “@m” to open mention-suggestions and pick mention-option-mia; the text becomes “@mia ”.
- Scoped locatorsIntermediate
Every post uses the same like-button / comment-input IDs — scope to a post-card (first, nth, or by data-post-id).
- Instant likesBeginner
like-button toggles aria-pressed and like-count immediately — assert both before and after.
- Infinite scrollAdvanced
Scroll to feed-sentinel to load 5 more (loaded-posts grows); stop when feed-end appears.
- NotificationsBeginner
notification-count shows unread; mark-all-read clears the badge.
- Follow a userIntermediate
follow-<handle> toggles “Following ✓” and follower-count changes by one.
- Image attachIntermediate
Upload via the hidden post-image-input (setInputFiles/selectFile/sendKeys); image-preview shows the name.
6Test data & credentials
- URL
- /apps/social
- Signed in as
- @amir
- Post limit
- 280 characters
- Feed page
- 5 posts per load
7Glossary
- Mention
- @handle autocomplete while typing a post
- Infinite scroll
- 5 more posts load when the sentinel scrolls into view
- Scoped locator
- Every post reuses the same test ids — scope to one post card
8Watch-outs for automation
- ⚠️Like buttons share test ids across posts — use nth or data-post-id
- ⚠️The Post button disables above 280 characters
- ⚠️Image attach uses a hidden file input
9Suggested test strategy
1 · Smoke
2
P1 positive and end-to-end cases — run on every build.
2 · Regression
15
All cases, incl. 2 negative and 3 edge — run before release.
3 · End-to-end
3
Full user journeys — run nightly.
Start with these smoke cases
- CHIRP-01 — Publish a post
- CHIRP-E2E-01 — Post, like, comment, follow