Focus player records and add squad leaderboards
This commit is contained in:
@@ -15,7 +15,7 @@ beforeEach(() => { scope(); vi.useFakeTimers(); vi.setSystemTime(new Date('2026-
|
||||
afterEach(() => vi.useRealTimers());
|
||||
it('renders one page heading, six columns, a combined identity, and compact dates', () => {
|
||||
const body = render(MatchHistoryPage, { props: { data: { history: report(), user: null, setupRequired: false } } }).body;
|
||||
expect(body.match(/<h[12][ >]/g)).toHaveLength(1);
|
||||
expect(body.match(/<h1[ >]/g)).toHaveLength(1);
|
||||
expect(body.match(/scope="col"/g)).toHaveLength(6);
|
||||
expect(body).toContain('Today, 1:26 PM'); expect(body).toContain('Lobby 1 · Black Ops II');
|
||||
expect(body).not.toContain('>Server</th>'); expect(body).not.toContain('Show 25 more');
|
||||
@@ -28,7 +28,21 @@ it('preserves filters and page in match links and avoids linking deleted instanc
|
||||
expect(body).toContain('/matches/1?returnTo=%2Fmatches'); expect(body).toContain('matchPage%3D2');
|
||||
expect(body).toContain('matchSort%3Dround'); expect(body).toContain('Historical instance');
|
||||
expect(body).not.toContain('href="/servers/'); expect(body).not.toContain('>Deleted<');
|
||||
expect(body).toContain('26–26 of 40 matches'); expect(body).toContain('More filters (1)');
|
||||
expect(body).toContain('26–26 of 40 matches'); expect(body).toContain('Filters · 2');
|
||||
});
|
||||
it('keeps mobile filters and sorting in one labelled sheet with distinct controls and one named match link', () => {
|
||||
const body = render(MatchHistory, { props: { initial: report() } }).body;
|
||||
expect(body).toContain('Match filters');
|
||||
expect(body).toContain('id="match-map-mobile"');
|
||||
expect(body).toContain('id="match-sort-mobile"');
|
||||
expect(body).toContain('id="match-order-mobile"');
|
||||
expect(body).toContain('Show results');
|
||||
const rows = body.slice(body.indexOf('<tbody'), body.indexOf('</tbody>'));
|
||||
expect(rows.match(/<a\b/g)).toHaveLength(1);
|
||||
expect(rows).toContain('Town Survival · Match #1');
|
||||
const ids = [...body.matchAll(/\bid="([^"]+)"/g)].map(match => match[1]);
|
||||
expect(new Set(ids).size).toBe(ids.length);
|
||||
expect(body).toContain('Updates every 10 seconds');
|
||||
});
|
||||
it('labels unfinished rounds and missing durations without inventing final results or detail links', () => {
|
||||
const data = report(); data.matches = [{ ...match, status: 'interrupted', finalRound: null, durationMs: null, uniquePlayers: 0 }];
|
||||
|
||||
Reference in New Issue
Block a user