Lunara
Screen states checklist
ТЗ: «У каждого раздела нужны загрузка, готовый результат, пустое состояние, ошибка с повтором и закрытый доступ без подписки. Отдельно: неизвестное время рождения; оплата ещё подтверждается; платёж отклонён; подписка отменена, но оплаченный период продолжается; период закончился. Нельзя оставлять пользователя на бесконечном спиннере.»
Each “open” signs you in as the right test account and opens the real screen. Loading and error screens use a test mode that only affects your browser (a yellow bar shows when it’s on). Test environment only.
Test mode
Off — everything works normally.
Every section × 5 states
| Section | Loading | Ready | Empty | Error + retry | Locked (no subscription) |
|---|---|---|---|---|---|
| Today (Home) | |||||
| My Chart | |||||
| Calendar | — can't be empty: Moon phases exist for every day | ||||
| Compatibility | |||||
| AI Astrologer | |||||
| Practices | |||||
| Profile |
Special states
Birth time unknown
ТЗ: «неизвестное время рождения»
rising sign and houses hidden; both Moon signs if it changed that day
Payment being confirmed
ТЗ: «оплата ещё подтверждается»
banner on every page; Profile → Subscription
Payment declined
ТЗ: «платёж отклонён»
banner + Fix payment, premium locked
Canceled, paid period continues
ТЗ: «подписка отменена, но оплаченный период продолжается»
full access until the end date + Resume
Period ended
ТЗ: «период закончился»
locked, data kept, Renew
No endless spinners
- Chart service: 10 s timeout, then an error with retry — check with “Chart service down”. In real life a chart that was already calculated keeps opening during an outage; the test mode ignores saved charts so you can see the error screen.
- Database queries: 8 s timeout. AI answer: 30 s, then “Try again” and the question is kept — check with “AI service down”.
- Payment confirmation checks automatically for about a minute, then leaves a Refresh button and instructions: