Content - Common QA Core Checklist
Run this checklist before any content-type specific file. This covers shared list/create/details/header/bulk behavior used across content modules.
Totals
| Priority |
Count |
| P0 |
8 |
| P1 |
6 |
| P2 |
3 |
| P3 |
1 |
| Total |
18 |
P0 - Release blockers
P0-01 - Content list loads records for selected type
| Field |
Value |
| Type |
Functional + API |
| Description |
The content list page must load records for the selected content type without runtime failure. |
| Verify |
UI + DevTools Network. Confirm type list operation succeeds (for example vodList, articleList, liveVideoList) or REST list path for REST-backed types. |
| Pass |
List renders rows and total count matches network payload count. |
| Fail |
Blank/error state appears unexpectedly, request fails, or network returns GraphQL errors. |
P0-02 - Add New opens correct create entry point
| Field |
Value |
| Type |
Functional |
| Description |
The global create action must open the create flow for the currently selected type. |
| Verify |
UI only. Click Add New from list header. |
| Pass |
Create dialog/module opens with the expected type title and inputs. |
| Fail |
Wrong create form opens, modal does not open, or page errors. |
P0-03 - Create flow persists a new record
| Field |
Value |
| Type |
Functional + API |
| Description |
Minimum valid create inputs should create a new record and make it discoverable in list/details. |
| Verify |
UI + DevTools Network. Confirm create mutation (type-specific *Create) or REST create path succeeds. |
| Pass |
Success feedback appears and created record is visible in list or opens in details/modal. |
| Fail |
Success is shown without created record, request errors, or save silently fails. |
P0-04 - Row open behavior routes correctly (page or modal)
| Field |
Value |
| Type |
Functional |
| Description |
Clicking a row should open details page or modal according to type contract. |
| Verify |
UI only. Open one row from at least one page-backed type and one modal-backed type in release scope. |
| Pass |
Page-backed types navigate to /content/{type}/{id} and modal-backed types open in place. |
| Fail |
Wrong navigation target, missing modal, or row click is non-functional. |
P0-05 - Detail save sends update and persists changes
| Field |
Value |
| Type |
Functional + API |
| Description |
Editing a detail field and saving must persist correctly. |
| Verify |
UI + DevTools Network. Confirm type update mutation (for example vodUpdate, seriesUpdate) or REST update call. |
| Pass |
Save feedback appears and a refresh shows updated value persisted. |
| Fail |
Save appears successful but value reverts, request fails, or no update request is fired. |
P0-06 - Publish/unpublish state transition works
| Field |
Value |
| Type |
Functional + API |
| Description |
Header/list state actions must transition content status according to action permissions. |
| Verify |
UI + DevTools Network. Trigger publish or unpublish and inspect update action payload. |
| Pass |
Status changes to expected state and remains correct after refresh. |
| Fail |
Action control is broken, wrong state applied, or network returns errors. |
P0-07 - Schedule action rejects past and accepts future time
| Field |
Value |
| Type |
Functional |
| Description |
Scheduling should block past datetime and accept valid future datetime. |
| Verify |
UI only (optional network check for update mutation). |
| Pass |
Past value shows validation error; future value closes picker and persists schedule. |
| Fail |
Past datetime is accepted or future schedule is not retained. |
P0-08 - Bulk state action applies to selected rows only
| Field |
Value |
| Type |
Functional + API |
| Description |
Bulk publish/update/archive/unarchive must apply only to selected rows. |
| Verify |
UI + DevTools Network. Use multi-select and validate bulk action update requests. |
| Pass |
Selected rows transition state correctly; non-selected rows remain unchanged. |
| Fail |
Action affects wrong rows, partially applies without error, or no network request is sent. |
P1 - Core shared flows
P1-01 - Search filters records by keyword
| Field |
Value |
| Type |
Functional + API |
| Description |
Keyword search should narrow records for current type and return expected subset. |
| Verify |
UI + DevTools Network. Confirm keyword is present in query variables or REST query string. |
| Pass |
Result set updates consistently with query and can be cleared back to full list. |
| Fail |
Search input changes but records do not update, or wrong keyword is sent. |
P1-02 - Sort and pagination controls are consistent
| Field |
Value |
| Type |
Functional |
| Description |
Sort and page controls must fetch and show the expected list segment. |
| Verify |
UI + DevTools Network. Change sort and page index once each. |
| Pass |
Row order or page slice changes correctly and URL/query params update. |
| Fail |
Controls update visually but data does not change, or stale page is shown. |
P1-03 - List and grid view toggle behaves correctly
| Field |
Value |
| Type |
UI |
| Description |
Toggle between list and grid views should render expected layout where supported. |
| Verify |
UI only. |
| Pass |
View switch updates layout and preserves current filters/sort. |
| Fail |
Toggle state changes without layout change or resets page context unexpectedly. |
P1-04 - Sidebar tab navigation updates tab state
| Field |
Value |
| Type |
Functional |
| Description |
Selecting tabs in details should switch section view and keep tab context. |
| Verify |
UI only. Navigate 2-3 tabs on a details page-backed type. |
| Pass |
Active tab switches correctly and tab-specific content loads without crash. |
| Fail |
Wrong section renders, tab selection is lost, or content area breaks. |
P1-05 - Mandatory validation blocks invalid save
| Field |
Value |
| Type |
Functional |
| Description |
Missing required values (title/permalink/images where mandatory) should prevent a valid save. |
| Verify |
UI only, with optional network confirmation that no invalid save request is sent. |
| Pass |
Validation message is visible and save is blocked until fixed. |
| Fail |
Invalid data is accepted or save request is sent despite validation errors. |
P1-06 - Static bulk tag/category action works where enabled
| Field |
Value |
| Type |
Functional + API |
| Description |
Manage Tags/Manage Category bulk modals should apply add/remove operations for eligible types. |
| Verify |
UI + DevTools Network. Confirm contentBulkUpdate succeeds. |
| Pass |
Selected rows reflect applied add/remove tag/category updates after refresh. |
| Fail |
Bulk modal applies nothing, updates wrong rows, or request fails with GraphQL errors. |
P2 - Secondary shared checks
P2-01 - Action availability respects role and item status
| Field |
Value |
| Type |
UI |
| Description |
Action menus should show only valid actions for current status and permissions. |
| Verify |
UI only. Check two rows with different statuses. |
| Pass |
Invalid actions are hidden/disabled and valid actions are available. |
| Fail |
User can trigger disallowed actions or required actions are missing. |
P2-02 - Multi-select does not break row-level actions
| Field |
Value |
| Type |
Functional |
| Description |
Selecting multiple rows should not corrupt per-row action behavior after deselection. |
| Verify |
UI only. Select rows, clear selection, then open a row action menu. |
| Pass |
Action menu behavior returns to normal single-row behavior. |
| Fail |
Action controls stay incorrectly disabled or target wrong content item. |
P2-03 - Empty and no-result states remain actionable
| Field |
Value |
| Type |
UI |
| Description |
Empty list or no-result view should guide recovery (clear filters or create new content). |
| Verify |
UI only (force no results with unmatched keyword). |
| Pass |
Empty state appears with usable recovery action and no layout break. |
| Fail |
Empty state is broken, blocks navigation, or hides recovery controls. |
P3 - Polish
P3-01 - Happy path emits no uncaught console/runtime errors
| Field |
Value |
| Type |
UI + API |
| Description |
Core happy-path actions should complete without uncaught browser console exceptions. |
| Verify |
UI + DevTools Console during list load, create, save, and publish. |
| Pass |
No uncaught errors/warnings tied to broken behavior are logged. |
| Fail |
Console shows uncaught exceptions or rejected promises during normal flow. |