Content -> Internal Live Create - QA Test Plan
Pre-release checklist for Internal Live Create. This flow publishes live channels; a bad configuration can fail a stream launch or send viewers to the wrong destination.
Totals
| Severity | Count |
|---|---|
| Critical | 12 |
| High | 12 |
| Medium | 7 |
| Low | 4 |
| Total | 35 |
Coverage summary (Critical + High)
9 (Critical: 7, High: 2) 13 (Critical: 4, High: 9) 2 (Critical: 1, High: 1)
Automation anchors
awsPayload.test.tsharmonicPayload.test.ts
These automated suites cover payload-level validation and guard rails. Manual QA should focus on UI flow, service errors, and end-to-end launch confidence.
Validation behavior note: this flow mixes schema-level validation (for core required selectors) with submit-time payload validation. Some invalid combinations surface as submit errors/toasts rather than field-level inline errors.
Critical - Release blockers
C1 - Required launch fields block empty submit
Scope: Channel creation cannot proceed when required fields are missing.
Steps:
- Open Internal Live Create and leave required fields empty.
- Click Create/Save.
Expected: Validation feedback appears and no create request is sent.
Risk: Empty or malformed channels get created and fail at launch.
C2 - Destination endpoint validation rejects invalid targets
Scope: Destination URL/IP/port combinations must be valid for selected protocol.
Steps:
- Select each supported protocol one by one.
- Enter invalid destination values (bad host, bad port, malformed URL/IP).
- Submit.
Expected: Validation blocks submit with clear guidance (inline and/or submit error feedback depending on provider/path).
Risk: Streams are created but cannot connect to source or destination.
C3 - Protocol-auth mismatch is blocked
Scope: Authentication fields must match protocol mode; partial auth is rejected.
Steps:
- Select a mode that requires auth.
- Fill only part of the auth inputs.
- Submit.
Expected: Submit remains blocked until auth values are complete.
Current gap: partial auth values can be silently dropped in submit payload composition instead of being blocked pre-submit.
Risk: Ingest fails on first connection attempt.
C4 - Backup path requires complete secondary configuration
Scope: Enabling backup/secondary output requires all dependent fields.
Steps:
- Enable backup or secondary path.
- Fill only some secondary fields.
- Submit.
Expected: Submit is blocked until secondary configuration is complete.
Risk: Failover is assumed to exist but does not work during outage.
C5 - Caption selector requires complete caption setup
Scope: Caption settings must be complete when caption selector is enabled.
Steps:
- Enable caption selector.
- Leave one required caption field blank.
- Submit.
Expected: Validation prevents submit with a clear caption error.
Risk: Captions silently fail in production.
C6 - Ad insertion dependencies are enforced
Scope: Ad insertion settings require all linked fields when enabled.
Steps:
- Enable ad insertion.
- Leave required ad fields incomplete.
- Submit, then complete the fields and submit again.
Expected: Incomplete config is blocked; complete config is accepted.
Gap note: AWS dependency checks are stronger than Harmonic MediaTailor gating in current form wiring.
Risk: Monetization path fails or ad breaks misfire.
C7 - Invalid schedule windows are blocked before submit
Scope: Harmonic LIVE_EVENT schedule windows must reject invalid ranges, including past times and too-short windows.
Steps:
- Set end time before start time.
- Submit.
- Correct schedule and resubmit.
Expected: Invalid window is blocked; corrected window is accepted.
Risk: Channel launches outside intended window.
C8 - Protocol-specific required identifiers are enforced before create
Scope: Required protocol identifiers (for example stream keys or primary flow entitlement) must be present.
Steps:
- Select RTMP push mode and leave one stream-key field blank.
- Submit and confirm it is blocked.
- Select MediaConnect flow mode without primary flow entitlement.
- Submit again.
Expected: Submit is blocked in both cases with clear guidance on missing required identifiers.
Risk: Channel is created with incomplete ingest identity and fails immediately at runtime.
C9 - Harmonic cluster prerequisites cannot be bypassed
Scope: Harmonic region, protocol, and backup region prerequisites must be valid before create.
Steps:
- Select Harmonic mode.
- Attempt create with missing region or missing protocol.
- Enable secondary service without backup region and submit.
Expected: Create is blocked until all required cluster prerequisites are provided.
Risk: Service provisioning fails before stream startup.
C10 - Existing input and source mapping completeness is enforced
Scope: When using existing inputs or sources, required primary and backup selections must be complete.
Steps:
- Enable "use existing input/source" options.
- Leave one required main or backup selection empty.
- Submit.
Expected: Create is blocked with targeted missing-selection errors.
Risk: Channel routes to an incomplete topology and never reaches stable ingest.
C11 - SRT Caller transport guardrails are enforced
Scope: SRT Caller requires valid primary endpoint values and valid decryption key shape when provided.
Steps:
- Select SRT Caller.
- Submit without primary IP or primary port.
- Enter a short decryption key and submit.
Expected: Submit is blocked until endpoint and key validations pass.
Risk: Secure ingest cannot be established.
C12 - Scheduling and DVR mandatory fields are enforced
Scope: Harmonic scheduling start time and DVR start-over values must be present when those features are enabled.
Steps:
- Enable scheduled service and clear start time.
- Enable DVR and leave start-over time blank.
- Submit.
Expected: Harmonic create is blocked until required scheduling and DVR fields are complete.
Risk: Stream timing behavior becomes invalid or non-operational.
High - Core flows
H1 - AWS happy path creates a valid channel
Scope: Basic AWS launch path should be reliable end-to-end.
Steps:
- Fill a minimal valid AWS configuration.
- Submit and verify success state.
Expected: Channel is created and visible with expected key details.
Risk: Correct user inputs still fail launch.
H2 - Harmonic happy path creates a valid channel
Scope: Basic Harmonic launch path should be reliable end-to-end.
Steps:
- Fill a minimal valid Harmonic configuration.
- Submit and verify success state.
Expected: Channel is created and visible with expected key details.
Risk: Core launch flow breaks for Harmonic operators.
H3 - Slate toggle includes and excludes slate fields correctly
Scope: Slate-related payload fields should only be sent when slate settings are enabled for the active provider path.
Steps:
- Enable slate and save valid values.
- Disable slate and save again.
Expected: Slate settings are included only when enabled and excluded after disable/reset.
Risk: Stale slate values leak into live payload.
H4 - Harmonic secondary source validation is enforced
Scope: Secondary source configuration requires valid combinations.
Steps:
- Enable secondary source.
- Provide incomplete source details.
- Submit.
Expected: Submit is blocked until secondary details are valid.
Risk: Failover source fails during incident.
H5 - Service failures show actionable error feedback
Scope: Backend/API failures should surface clear next actions.
Steps:
- Trigger a known create failure.
- Observe error message and retry guidance.
Expected: Error messaging identifies the failure clearly and supports a clean retry path.
Gap note: current flow mainly surfaces toast-level errors and lacks richer inline recovery guidance.
Risk: Operators lose time during launch windows.
H6 - Mode switches do not retain incompatible stale values
Scope: Switching protocol/provider clears incompatible inputs.
Steps:
- Fill advanced fields for one mode.
- Switch to another mode.
- Submit valid minimal values for the new mode.
Expected: Stale incompatible values do not leak into submission.
Risk: Hidden stale values cause non-obvious failures.
H8 - Boundary-time scheduling remains stable across timezone changes
Scope: Near-midnight and DST boundary schedules should stay accurate.
Steps:
- Create schedule near day boundary.
- Refresh and verify displayed and persisted times.
Expected: No off-by-one-hour or off-by-one-day drift.
Risk: Events go live at the wrong time.
H9 - AWS low-latency mode follows the fixed ingest path
Scope: Enabling low-latency mode should enforce the intended AWS ingest behavior without conflicting protocol state.
Steps:
- Enable low-latency mode for AWS.
- Complete the minimum required ingest fields.
- Submit and verify successful create payload shape.
Expected: Low-latency create succeeds and uses the expected fixed ingest path.
Risk: Operator-selected latency mode yields incompatible ingest configuration.
H10 - Harmonic linear-channel mode toggles dependent sections correctly
Scope: Harmonic service type (LIVE vs LIVE_EVENT) should show/hide dependent schedule/live-to-VOD inputs consistently.
Steps:
- Toggle Use for Linear Channel on/off.
- Observe schedule and related section visibility changes.
- Submit valid inputs in each mode.
Expected: Dependent sections and validation expectations track the selected service type.
Risk: Hidden/visible section mismatch causes invalid submissions.
H11 - Harmonic permission gates enforce disabled capabilities
Scope: Capability-restricted options (SSAI, DRM, DVR, backup, linear mode) should remain disabled and excluded when permissions do not allow them.
Steps:
- Open Harmonic create with restricted-capability context.
- Verify restricted toggles are disabled or unavailable.
- Submit and inspect resulting payload behavior.
Expected: Restricted capabilities cannot be enabled through normal UI interaction.
Risk: Unauthorized feature flags leak into create payloads.
H12 - Slate and SSAI coupling remains payload-safe
Scope: Slate and SSAI dependencies should remain synchronized when toggles are enabled/disabled in different orders.
Steps:
- Enable slate and verify SSAI dependency behavior.
- Disable SSAI and verify slate dependency behavior.
- Submit and inspect resulting payload.
Expected: Toggle coupling does not leave conflicting slate/SSAI state in payload.
Risk: Ad/slate behavior is internally inconsistent at stream start.
H13 - Macros and automation settings serialize correctly
Scope: Manual/query-param macros and automation settings should persist with expected payload shape.
Steps:
- Configure macros in both supported entry modes.
- Configure automation/runtime controls where available.
- Submit and verify persisted behavior.
Expected: Macro/automation values are serialized without shape loss or mode crossover.
Risk: Automation or macro behavior diverges from operator intent in production.
Medium - Edge cases and UX gaps
M2 - Long text input limits behave predictably
Scope: Name and metadata limits should be enforced clearly.
Steps: Submit max-length and over-limit values.
Risk: Late-stage rejection or silent truncation surprises users.
M3 - Optional fields do not become required after toggles
Scope: Advanced toggle changes should not force unrelated optional fields.
Steps: Toggle advanced options on and off, then submit minimal valid config.
Risk: Users get stuck in inconsistent validation states.
M4 - Unsaved-change warning appears on navigation
Scope: Prevent accidental loss of large in-progress forms.
Steps: Edit multiple fields and navigate away without saving.
Risk: Re-entry delays during urgent stream setup.
M5 - Keyboard-only flow works across critical controls
Scope: Form should be fully operable without a mouse.
Steps: Complete core create flow using keyboard only.
Risk: Accessibility and speed-to-operation gaps.
M6 - Refresh after validation error preserves entered values
Scope: Common retry patterns should not wipe non-sensitive inputs.
Steps: Trigger validation error, refresh, and verify retained state.
Risk: Repetitive data entry during high-pressure launches.
M7 - Field hints reduce first-time operator mistakes
Scope: High-risk fields need concise practical guidance.
Steps: Perform first-time operator walkthrough and note unclear fields.
Risk: Preventable setup mistakes increase support load.
M8 - Optional AWS preview/clean URL settings remain stable
Scope: Optional AWS playback-side toggles should not produce inconsistent defaults or accidental payload drift.
Steps: Toggle preview and clean URL related options across provider/mode changes, then submit minimal valid config.
Risk: Optional playback settings become unpredictable across setup retries.
Low - Polish and cleanup
L1 - Success and error messaging is consistent
Scope: Messaging should be brief, clear, and consistent.
L2 - Loading states are visible during create/update
Scope: Prevent duplicate submits and user uncertainty.
L3 - Empty/default states guide next action
Scope: Empty panels should give useful next steps.
L4 - Standard flow produces no noisy console warnings
Scope: Baseline create flows should be console-clean.
Out of scope
Third-party HLS create specifics and post-create Live Stream detail control-surface operations are tracked in Content Type QA - Live. Encoder infrastructure behavior, downstream playback certification, and partner-side ingest verification are also tracked outside this deep-create checklist.
Retired items
- M1 - Duplicate name conflict flow is clear (retired: internal create flow has no title/name field; duplicate-title behavior belongs to third-party create).