Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
ce5427b
Add the partner dashboard as a second build target
joshuakrueger-dfx Aug 1, 2026
29aabe3
Follow the API contract and let the period buttons change the period
joshuakrueger-dfx Aug 1, 2026
672f290
Translate the dashboard instead of shipping it in one language
joshuakrueger-dfx Aug 1, 2026
ae59457
Add wallet login, white-label branding, theming and language switching
joshuakrueger-dfx Aug 3, 2026
962b6aa
Show every day and drop the block the API does not serve
joshuakrueger-dfx Aug 3, 2026
bc0e1dc
Show how many users ever traded, and group the figures by what they mean
joshuakrueger-dfx Aug 3, 2026
91e0fcf
Move the dashboard behind the normal login
joshuakrueger-dfx Aug 3, 2026
4f52aab
Give the header its controls back
joshuakrueger-dfx Aug 3, 2026
5adf72b
Say the page name once
joshuakrueger-dfx Aug 3, 2026
bfcdd23
Translate the dashboard into French and Italian
joshuakrueger-dfx Aug 3, 2026
2069669
Shorten the menu entry, keep the heading long
joshuakrueger-dfx Aug 3, 2026
9048a64
Test that the role check is actually wired up, not just correct
joshuakrueger-dfx Aug 3, 2026
4d12ce1
Keep the test helper out of the test directory
joshuakrueger-dfx Aug 4, 2026
86dca39
Tell Jest which files under __tests__ are tests
joshuakrueger-dfx Aug 4, 2026
bd42a0e
Notice when a translation is missing or never happened
joshuakrueger-dfx Aug 4, 2026
ea85d30
refactor: drop three default arguments that no caller can reach
joshuakrueger-dfx Aug 7, 2026
ec7a96e
test: cover every file this PR touches, error path first
joshuakrueger-dfx Aug 7, 2026
6186d00
test(handbook): cover the partner dashboard with baselines and a meta…
joshuakrueger-dfx Aug 10, 2026
2c557d6
fix(partner): correct the referral amount, guard stale loads, and mak…
joshuakrueger-dfx Aug 10, 2026
f7219fc
Claim /partner/dashboard in the e2e-stack route registry
TaprootFreak Aug 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ test-results/
# production
/build
/widget
/partner-dist
/dist

# misc
Expand Down
32 changes: 32 additions & 0 deletions e2e-stack/specs/partner-dashboard.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/**
* Partner dashboard e2e — owns:
* /partner/dashboard
*
* Not covered (by design / environment limits):
* - Positive case (role NonCustodialWalletPartner sees the dashboard): the API does not yet
* grant that role (DFXswiss/api#4587 unmerged). Covered instead by the mocked Handbook e2e
* (e2e/partner-dashboard.spec.ts).
*/

import { expect, gotoWithSession, normPath, test } from './fixtures';
import { cleanupCreatedData, createUser } from './fixtures/factories';

test.describe('Partner dashboard e2e', () => {
test.afterAll(async () => {
await cleanupCreatedData();
});

test('plain User role is denied /partner/dashboard', async ({ page }) => {
const user = await createUser({ tag: 'partner-dash-guard', language: 'EN' });

await gotoWithSession(page, '/partner/dashboard', user.jwt);
await page.waitForLoadState('networkidle');

await expect
.poll(() => normPath(new URL(page.url()).pathname), {
message: 'User must be redirected away from /partner/dashboard',
timeout: 15000,
})
.not.toBe(normPath('/partner/dashboard'));
});
});
5 changes: 5 additions & 0 deletions e2e-stack/specs/registry/partner.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import type { RouteClaim } from './types';

const claims: RouteClaim[] = [{ path: '/partner/dashboard', spec: 'partner-dashboard.spec.ts' }];

export default claims;
Loading
Loading