diff --git a/studio/src/strings.js b/studio/src/strings.js index ca31178f1..7053f1a27 100644 --- a/studio/src/strings.js +++ b/studio/src/strings.js @@ -2505,7 +2505,8 @@ export const STRINGS = { PICK_NO_PLAYERS: 'No HLTV highlights in the queue', PICK_ADD_TEAM: 'Add a team…', PICK_ADD_TEAM_TITLE: 'Adds every player of a team from the Teams list: whoever played on its side in an HLTV demo, or has its tag in their name.', - PICK_NO_TEAMS: 'No teams in the HLTV demos', + // Short enough for the list's fixed 160 px; its tooltip says where teams come from. + PICK_NO_TEAMS: 'No teams', pickTeamOption: (name, count) => `${name} (${count} player${count === 1 ? '' : 's'})`, PICK_NONE: 'Nobody picked yet', PICK_REMOVE: 'Take this player out', diff --git a/studio/tests/e2e/review-hltv.html b/studio/tests/e2e/review-hltv.html index 1f3500116..178a06435 100644 --- a/studio/tests/e2e/review-hltv.html +++ b/studio/tests/e2e/review-hltv.html @@ -26,8 +26,9 @@ diff --git a/studio/tests/e2e/review-hltv.spec.js b/studio/tests/e2e/review-hltv.spec.js index 6d10891ee..3c95c4508 100644 --- a/studio/tests/e2e/review-hltv.spec.js +++ b/studio/tests/e2e/review-hltv.spec.js @@ -62,6 +62,21 @@ test.describe('Review: HLTV players', () => { const add = page.locator('#review-hltv-add-player'); await expect(add).toBeDisabled(); await expect(add.locator('option')).toHaveText(['No HLTV highlights in the queue']); + await expect(page.locator('#review-hltv-add-team option')).toHaveText(['No teams']); + // Both lists' fixed widths show the whole line beside the ~12 px arrow + // (#845: the team list cut "No teams in the HLTV demos" short). + const cut = await page.evaluate(() => { + const ctx = document.createElement('canvas').getContext('2d'); + return [...document.querySelectorAll('#review-hltv-add-player, #review-hltv-add-team')] + .filter((list) => { + const css = getComputedStyle(list); + ctx.font = `${css.fontSize} ${css.fontFamily}`; + const room = list.clientWidth - parseFloat(css.paddingLeft) - parseFloat(css.paddingRight) - 12; + return ctx.measureText(list.options[0].text).width > room; + }) + .map((list) => list.options[0].text); + }); + expect(cut).toEqual([]); // What main.js's updateDemoFooter does after a scan. await page.evaluate(() => { window.__emptyQueue(false); window.__pick.refresh(); }); await expect(add).toBeEnabled();