[2026] relax versioncheck to major versions

This commit is contained in:
Devin Zuczek
2026-10-12 21:28:29 -04:00
parent bd15e30bfc
commit 1dd5fd409e
19 changed files with 304 additions and 88 deletions
+1 -1
View File
@@ -978,7 +978,7 @@ const app = new Hono<App>()
'refused may belong to a housemate of the banned player rather than to them.',
'',
'**Rollout gate.** A grant whose `ver` names a build under staged rollout',
'(`ROLLOUT_GAME_VERSIONS`, currently `20260323.14`) is refused as `invalid_grant` "this build is limited to',
'(`ROLLOUT_GAME_VERSIONS`, currently `20260323` — every point release of it) is refused as `invalid_grant` "this build is limited to',
'Discord supporters" unless the account’s Discord link (made by the website’s',
'benefits claim) holds one of the roles in the operator’s `DISCORD_ROLLOUT_ROLE_IDS`.',
'With none configured the gate is closed to everyone. `create_account` on such a',
@@ -1352,6 +1352,18 @@ describe('auth worker routes', () => {
})
})
test('every point release of the gated build is gated', async () => {
// The gate is on the BUILD (the bare date): the client's `.NN` is a same-day
// rebuild, so `.14`, `.2` and the date alone are all the rollout build.
await withRoleIds(undefined, async () => {
for (const version of ['20260323', '20260323.2', '20260323.14']) {
const res = await login('gate_outsider', version)
expect(res.status, version).toBe(400)
expect(res.json.error_description, version).toBe(REFUSED)
}
})
})
test('the credential is checked first, so the gate cannot probe for accounts', async () => {
await withRoleIds(undefined, async () => {
const res = await postToken(