509
0
0
509
Back to All DomainsWorkspace: SPARSS Universal Platform
DOMAIN 01 · SYSTEM CORE

Platform

Shared utilities, components, layouts, API infrastructure

0% Pass
Total Tests
127
Passed
0
Failed
0
Untested
127

Reading amount values

5 tests
TC-PLT-UTIL-001POS

Plain numbers show correctly on screen

TC-PLT-UTIL-002POS

Amounts written with ₹ symbol or commas (e.g. "₹1,25,000") display correctly

TC-PLT-UTIL-003NEG

Blank or invalid amount fields show ₹0 instead of breaking the page

TC-PLT-UTIL-004NEG

Blank fields that should stay blank do not fill in with 0

TC-PLT-UTIL-005POS

Valid numeric values pass through unchanged

Rupee amount formatting

4 tests
TC-PLT-UTIL-006POS

Whole-rupee amounts show without ".00" decimals (e.g. ₹500 not ₹500.00)

TC-PLT-UTIL-007POS

Amounts with paise show exactly two decimal digits (₹99.50)

TC-PLT-UTIL-008POS

Large amounts use Indian comma grouping (1,00,000 — not 100,000)

TC-PLT-UTIL-009POS

Invoices / accounting screens can force ".00" on whole amounts when needed

Name & text tidy-up

10 tests
TC-PLT-UTIL-010POS

Names typed in lowercase show as Title Case ("john doe" → "John Doe")

TC-PLT-UTIL-011POS

Names typed in ALL CAPS show as Title Case

TC-PLT-UTIL-012POS

Extra spaces inside a name are removed and trimmed at both ends

TC-PLT-UTIL-013NEG

Profile avatar shows "U" placeholder when the user has no name

TC-PLT-UTIL-014POS

Profile avatar shows first letters of first two words (e.g. "John Doe" → "JD")

TC-PLT-UTIL-015POS

Short YouTube share links (youtu.be/...) play correctly in product videos

TC-PLT-UTIL-016POS

Full YouTube links (watch?v=... and embed/...) play correctly

TC-PLT-UTIL-017NEG

Broken YouTube links do not crash the product page

TC-PLT-UTIL-018NEG

Non-YouTube URLs entered in the video field are quietly ignored

TC-PLT-UTIL-019NEG

Seller address does not repeat the same line when city equals address line 1

Discount & savings display

3 tests
TC-PLT-UTIL-020POS

Discount percentage shown next to a product is a whole rounded number

TC-PLT-UTIL-021NEG

No discount label appears when the strike price is missing or lower than the selling price

TC-PLT-UTIL-022POS

Total savings on the cart page match unit savings times quantity

Registration form defaults

2 tests
TC-PLT-UTIL-023POS

Sample data is available for customer, dealer, and supplier registration forms

TC-PLT-UTIL-024POS

Selecting a role loads the matching sample profile fields

Date rendering across the app

8 tests
TC-PLT-DATE-001NEG

Empty or missing dates show "N/A" instead of a blank space or an odd value

TC-PLT-DATE-002POS

Order and transaction dates show padded day and 12-hour AM/PM time (e.g. "05 Sep 2026 · 03:45 PM")

TC-PLT-DATE-003POS

Midnight timestamps show as "12:00 AM" (not "00:00")

TC-PLT-DATE-004POS

Noon timestamps show as "12:00 PM" (not "00:00 PM")

TC-PLT-DATE-005NEG

Broken date values from the server show the original text instead of crashing the row

TC-PLT-DATE-006POS

Numeric timestamps from the server are formatted correctly

TC-PLT-DATE-007POS

Compact date labels show as "DD Mon YYYY" (e.g. "05 Sep 2026")

TC-PLT-DATE-008NEG

Broken date values show at least the date portion, not a blank cell

How forms flag invalid input

8 tests
TC-PLT-VLD-001POS

Valid form submission passes without any error messages

TC-PLT-VLD-002POS

Each invalid field shows its own inline error message

TC-PLT-VLD-003NEG

General form errors that are not tied to a specific field do not attach to any field

TC-PLT-VLD-004POS

Nested fields (e.g. "billing address city") show errors on the correct sub-field

TC-PLT-VLD-005POS

Errors on list rows (e.g. product variant 1 MRP) attach to the correct row

TC-PLT-VLD-006POS

Two invalid fields in the same section both show their errors independently

TC-PLT-VLD-007POS

When the same field has multiple errors, only the first is shown to the user

TC-PLT-VLD-008POS

Errors on deeply nested fields replace parent-level errors correctly

CSV export from reports and tables

11 tests
TC-PLT-EXP-001POS

Downloaded filename includes today's date (YYYY-MM-DD format)

TC-PLT-EXP-002POS

Filename uses today's date automatically when none is passed

TC-PLT-EXP-003NEG

Empty tables do not trigger a download (no blank file appears in Downloads)

TC-PLT-EXP-004POS

Populated tables trigger a CSV download when Export is clicked

TC-PLT-EXP-005NEG

Only visible / meaningful columns are included in the CSV

TC-PLT-EXP-006NEG

Blank cells stay blank in CSV (no "null" or "undefined" text)

TC-PLT-EXP-007POS

Date columns export in a standard readable format

TC-PLT-EXP-008POS

Complex cell values (badges, tags) export as readable text

TC-PLT-EXP-009NEG

Columns without a plain-text header fall back to a sensible label

TC-PLT-EXP-010NEG

HTML tags inside data are escaped in the CSV (no broken output, no injection risk)

TC-PLT-EXP-011NEG

Popup blocked by the browser does not crash the page — user just sees no download

Table rendering and empty / error states

6 tests
TC-PLT-DT-001POS

Column headers and data rows render correctly

TC-PLT-DT-002NEG

Empty tables show a friendly "no data" message

TC-PLT-DT-003POS

Loading skeleton appears while data is being fetched

TC-PLT-DT-004NEG

Fetch errors show an error message with a Retry button

TC-PLT-DT-005POS

Typing in the search box filters rows across all searchable columns

TC-PLT-DT-006POS

Clearing the search returns all rows

Search input inside tables

5 tests
TC-PLT-DT-007POS

Search box shows helpful placeholder text

TC-PLT-DT-008POS

Typing in the search box updates results as you type

TC-PLT-DT-009NEG

Clear (×) button hides when the search field is empty

TC-PLT-DT-010POS

Clear (×) button appears once you start typing

TC-PLT-DT-011POS

Clicking clear (×) empties the search and resets the results

Bank account cell display

6 tests
TC-PLT-DT-012POS

Bank name and account number appear on one line in the compact view

TC-PLT-DT-013POS

Long bank names truncate cleanly without breaking the row

TC-PLT-DT-014POS

Detailed view shows a header row above the bank details

TC-PLT-DT-015NEG

Header falls back to "Bank Account" when no custom label is provided

TC-PLT-DT-016POS

Info (i) button opens a bank details popup when available

TC-PLT-DT-017NEG

Info (i) button is hidden when there are no additional bank details to show

Column layout defaults

6 tests
TC-PLT-DT-018POS

Columns marked hidden do not appear in the table

TC-PLT-DT-019POS

Column labels, sortable and searchable defaults apply as configured

TC-PLT-DT-020POS

A column can be sortable but excluded from search (and vice versa)

TC-PLT-DT-021POS

Currency, number and percentage columns align right by default

TC-PLT-DT-022POS

Status badges and yes/no columns align center by default

TC-PLT-DT-023POS

Text columns align left by default

Buttons

1 tests
TC-PLT-UI-001POS

Buttons show the correct label passed to them

Segmented toggle (tabs)

6 tests
TC-PLT-UI-002POS

Every tab option shows its label

TC-PLT-UI-003POS

Count badge appears only on tabs that have a count

TC-PLT-UI-004POS

Currently selected tab is visibly highlighted

TC-PLT-UI-005POS

Clicking a tab switches to it and updates the page

TC-PLT-UI-006NEG

Disabled tabs cannot be clicked

TC-PLT-UI-007POS

Screen readers announce the tab group correctly

Light / dark mode toggle

5 tests
TC-PLT-UI-008POS

Toggle button reads "Switch to dark mode" or "Switch to light mode" correctly

TC-PLT-UI-009POS

Clicking the toggle in light mode switches the whole app to dark mode

TC-PLT-UI-010POS

Clicking the toggle in dark mode switches the whole app back to light mode

TC-PLT-UI-011POS

Selected theme is remembered across page reloads and new visits

TC-PLT-UI-012POS

Screen readers announce the same label that sighted users see

Tree / hierarchy view (e.g. sub-dealer network)

6 tests
TC-PLT-UI-013POS

Root row appears when the tree first loads

TC-PLT-UI-014POS

Top-level rows appear expanded on first render

TC-PLT-UI-015NEG

Grandchild rows stay hidden until you expand their parent

TC-PLT-UI-016POS

Clicking a row expands it to show its children

TC-PLT-UI-017POS

"Expand All" reveals every row in the tree

TC-PLT-UI-018POS

"Collapse All" hides every branch back to root

Cart merge conflict popup

6 tests
TC-PLT-UI-019NEG

No popup appears when there is no cart conflict

TC-PLT-UI-020POS

Popup appears when guest cart and server cart differ after login

TC-PLT-UI-021POS

Popup correctly labels which cart is Online Order and which is Store Pickup

TC-PLT-UI-022POS

Labels swap correctly when guest and server carts have opposite shop types

TC-PLT-UI-023POS

Popup lists every server cart item with name, size, qty and price

TC-PLT-UI-024POS

Popup summary uses correct plural form (e.g. "3 items", not "3 item")

Browser tab titles

6 tests
TC-PLT-SEO-001POS

Home page shows the default site title in the browser tab

TC-PLT-SEO-002POS

About page shows its own title in the browser tab

TC-PLT-SEO-003POS

Contact page shows its own title in the browser tab

TC-PLT-SEO-004POS

Dashboard reports pages show their own titles

TC-PLT-SEO-005POS

Unknown pages auto-generate a title from the page name plus "| SPARSS"

TC-PLT-SEO-006NEG

Deep pages (e.g. /dashboard/settings/security) show a sensible title fallback

Overall page layout

4 tests
TC-PLT-LAY-001POS

Every logged-in page shows the top navigation and footer

TC-PLT-LAY-002POS

Top navigation shows the SPARSS logo and main menu links

TC-PLT-LAY-003POS

On mobile, top header collapses into a compact menu bar

TC-PLT-LAY-004POS

Footer shows brand, copyright, and social links on every page

Server requests

3 tests
TC-PLT-API-001POS

Every request goes to the correct backend URL from the environment configuration

TC-PLT-API-002POS

Logged-in requests include the user's session token so the server recognises them

TC-PLT-API-003NEG

Public / logged-out requests do not send a session token

Response handling

3 tests
TC-PLT-API-004POS

Standard server responses are unwrapped correctly for pages to consume

TC-PLT-API-005NEG

Server errors show a readable error message (not a raw error stack)

TC-PLT-API-006NEG

Session-expired (401) responses log the user out and send them to the login page

List response parsing

3 tests
TC-PLT-API-007POS

Lists load correctly from the standard server response format

TC-PLT-API-008NEG

Alternate response shapes from older endpoints still show lists correctly

TC-PLT-API-009NEG

Empty or missing lists show an empty state instead of crashing the page

Session storage on device

4 tests
TC-PLT-API-010POS

Login stores the user's session so they stay logged in across page reloads

TC-PLT-API-011POS

Reopening the app restores the previous session automatically

TC-PLT-API-012POS

Logout clears the stored session completely

TC-PLT-API-013NEG

App still works in private / incognito browsing when storage is not allowed

App startup and data caching

3 tests
TC-PLT-BOOT-001POS

App starts with a single shared data cache used by every page

TC-PLT-BOOT-002POS

Logout clears the cache so the next user does not see previous user's data

TC-PLT-BOOT-003POS

Fresh data is fetched when cached data becomes stale (after ~1 minute)

Role-based page access

3 tests
TC-PLT-BOOT-004POS

Users with the correct role can open the page normally

TC-PLT-BOOT-005NEG

Logged-out users trying to open a protected page are sent to /login

TC-PLT-BOOT-006NEG

Users opening a page not meant for their role are redirected or shown a fallback