Repository navigation
Description
Summary
@goodwidget/streaming-widget has never had a recorded QA pass. PR #256 (light-theme parity + button/primitive alignment, closes #255) adds the first full set of Storybook fixtures and gives every flow light/dark coverage — this is the first point where a full sweep is actually possible. Goal: find out what's actually wrong with the widget, not just whether #256 broke anything.
Branch to test against: copilot/goodbounty-patch-streaming-widget-light-theme (PR #256).
Bounty Details
Bounty Reward: 200.000G$'s
A generic template can be seen here to file your reports; https://github.com/GoodDollar/.github/blob/master/.github/ISSUE_TEMPLATE/GoodBounties-QA-Template.md
you can also check a recent QA report flow in this pull-request and what is expected: GoodDollar/GoodSDKs#69
How to run it
pnpm install
pnpm storybookEach fixture below is a Storybook story. Load it directly via:
/iframe.html?id=qa-streamingwidget-runtime-fixtures--<story-id>&viewMode=story&args=defaultTheme:<theme>
Theme-overrides playground uses a different story id (widgets-streamingwidget-theme-overrides--playground). Check both defaultTheme:dark and defaultTheme:light for every fixture, and both mobile (390px) and desktop (1280px) widths for the populated state.
Checklist — every fixture, both themes
Connection / navigation
-
no-wallet— disconnected wallet gate -
wrong-chain— unsupported network prompt -
populated-state— tab navigation across Streams / History / Pools / Balances
Streams list
-
loading-state— loading streams + loading history -
empty-state— empty streams + empty history -
error-state— error + retry, streams + history -
populated-state— incoming / outgoing / all filters - Stream details expand / collapse
- History — active filter / ended filter
Create / update / cancel stream
-
create-update-invalid-input— validation messaging, frequency dropdown options -
create-update-pending/create-update-success/create-update-failure -
cancel-stream-pending/cancel-stream-failure -
update-stream-form
Pools
-
pool-claim-state— claimable amount + claim button -
pool-connected-state— connected, no claim/connect actions shown -
pool-claim-pending/pool-claim-success/pool-claim-error -
pool-claimable-amount-error+ retry → loading
Balances
-
base-sup-balance-and-reserve— SUP balance + reserve locker (available/staked) -
non-base-sup-reserve-disabled— off-Base behavior
Theme / layout
- Theme-overrides playground —
light_*/dark_*keys both register - Mobile (390px) and desktop (1280px) — populated state at minimum, note anything that breaks at other widths
Known open items from #256 — confirm still outstanding or note if resolved
- Light-theme button contrast: white on
light_Button≈ 2.4:1,$primarysecondary text ≈ 2.3:1 (sharedpackages/uipreset, also affects GovernanceWidget — don't fix here, just confirm) - SUP Reserve off-Base still renders data instead of being hidden/disabled ([GoodBounty] Finalize Streaming Widget PR #36)
- Pool refresh after receipt — needs a live wallet, not coverable via Storybook; note if this can be checked another way
Free exploration
The checklist above is derived from existing Playwright fixtures — it won't catch everything. Spend time outside it: resize mid-interaction, switch tabs mid-load, toggle theme mid-flow, anything else that seems off. Record anything found even if it's not on this list.
How to report findings
Submit one report here linking PR #256. Record Pass, Fail, Blocked or Not run for each check in both themes, including the required viewport checks. Include the tested commit, browser/OS, screenshots or recordings, and expected versus actual behavior for failures. Link reproducible bug reports; don’t duplicate known issues. Summarize exploratory findings and whether the known open items remain reproducible.
Finish with Ready or Hold for the tested scope and list remaining gaps. Storybook results do not verify live transactions or pool refresh after a real receipt. Finding bugs does not prevent QA completion; blocked or skipped required checks need maintainer acceptance. QA does not authorize merge or deployment.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsIn Progress
Activity
livastic-vm3-primary-tmp-260920 commentedon Oct 21, 2026
Interested in this specific QA assignment, subject to clarifying its bounty terms before undertaking the full fixture sweep.
I can test the existing PR #256 Storybook branch without a production wallet: both themes, the listed state fixtures, populated-state mobile (390px) and desktop (1280px), and focused mid-transition/tab-switch checks. I would provide a concise fixture-by-fixture pass/fail matrix, screenshots of concrete regressions, and separate reproducible issues for verified defects. I will label any state that requires live wallet transactions Not tested rather than claim onchain coverage.
I work as one AI-assisted QA operator (not multiple independent contributors). Is this task open to that participation, and is a specific sponsor-funded reward attached to issue #263? Before starting, could you confirm amount and currency/network, eligible payout/onboarding route, whether prior assignment is needed, and what report/acceptance criteria release the award? If the QA has no funded budget, that's fine—I'll treat it as an unpaid invitation rather than a promised payout.
No wallet keys, transfers or production customer data are required for the proposed Storybook-only scope.
Khemmie-Ray commentedon Oct 21, 2026
Can I work on this?
Adejokemi commentedon Oct 21, 2026
Hi! I'd like to work on this issue. Could you assign it to me?
Wills17 commentedon Oct 21, 2026
Hi. I’m interested in this issue and would appreciate it if you could assign it to me. Thank you!
L03TJ3 commentedon Oct 21, 2026
@Khemmie-Ray You are assigned
Khemmie-Ray commentedon Oct 22, 2026
QA report: Streaming widget full exploratory sweep (#263)
Linked PR: #256
4625089809ad5e50b232bce8cf27a2f9dd162de2oncopilot/goodbounty-patch-streaming-widget-light-themepnpm install,pnpm build,pnpm storybookStorybook fixtures only. No live wallet or transactions used.
Case results
Results: Pass / Fail / Blocked / Not run
Connection / navigation
no-wallet: disconnected wallet gateconnectis a no-op. No console errors.wrong-chain: unsupported network promptpopulated-state: tab navigation Streams / History / Pools / BalancesStreams list
loading-state: streams + history loadingempty-state: streams + history emptyerror-state: error + retry, streams + historypopulated-state: incoming / outgoing / all filtersCreate / update / cancel stream
create-update-invalid-input: validation messaging, frequency dropdown optionscreate-update-pendingcreate-update-successcreate-update-failurecancel-stream-pendingcancel-stream-failureupdate-stream-formPools
pool-claim-state: claimable amount + claim buttonpool-connected-state: connected, no claim/connect actionspool-claim-pendingpool-claim-successpool-claim-errorpool-claimable-amount-error+ retry → loadingBalances
base-sup-balance-and-reserve: SUP balance + reserve locker (available/staked)non-base-sup-reserve-disabled: off-Base behaviorchain === Baseif they should not show off-Base.Theme / layout
light_*anddark_*keys both registerdark_*keys and light mode thelight_*keys. Neither prefix is dropped and values do not bleed across themes.populated-stateat 390px (mobile)populated-stateat 1280px (desktop)wrong-chainfixture breaks at 390px (Switch to Base overflow).Known open items from #256
light_Button,$primarysecondary text)packages/uipreset, so also affects GovernanceWidget.Findings
FIND-01: Switch to Base button overflows the Unsupported network card
wrong-chainstory, set viewport to 390px.FIND-02: Outlined buttons lose their label in hover / pressed states
pool-claim-statepopulated-statepopulated-stateempty-stateerror-statepopulated-statecreate-update-successpool-claimable-amount-errorpopulated-state, go to History, press Refresh. Or openerror-state, go to History, hover over the All / Active / Ended filter.[after]
FIND-03: Light-theme contrast below WCAG AA (shared preset, do not fix here)
light_Button≈ 2.4:1 and$primarysecondary text ≈ 2.3:1, both below WCAG AA (4.5:1 for text, 3:1 for UI components). Originates in the sharedpackages/uipreset, so it also affects GovernanceWidget.packages/uipreset so the correction covers both GoodWidget and GovernanceWidget.Exploratory notes
Verdict
Hold for the tested Storybook scope.
Remaining gaps: Live transactions and pool refresh after a real receipt (K-03) are not verified by Storybook. No cases Blocked; K-03 is the only Not run.
L03TJ3 commentedon Oct 23, 2026
thanks @Khemmie-Ray
for now okay, next time please post the QA report in the relevant pull-request that is requested for.
if you need permissions to do this or comment on the open-pull-request just ping me and ask
L03TJ3 commentedon Oct 23, 2026
@blueogin up for confirmation, review and potential copilot pick-up
cyzcz commentedon Nov 7, 2026
Submitted PR #291 (#291) resolving the remaining QA Hold item B-02 / K-02 (
SUP Reserveoff-BaseBase onlybadge and guidance inBalancesTab.tsx), the exploratory rawChain 1header badge (<WidgetTabs chainId={...} />inStreamingWidgetView.tsx), and explicitlight_*/dark_*sub-theme registration inpackages/streaming-widget/src/config.ts.fix(streaming-widget): register light/dark surface sub-themes, use Wi…