fixup accountprivacysettings

This commit is contained in:
Devin Zuczek
2026-07-12 22:43:16 -04:00
parent 0902e084e6
commit f5a86f66fe
2 changed files with 16 additions and 3 deletions
+9 -3
View File
@@ -209,9 +209,15 @@ const app = new Hono<App>()
return c.json({ accountId: id, disallowInAppPurchases: false }) return c.json({ accountId: id, disallowInAppPurchases: false })
}) })
// Privacy settings for an account. The client deserializes this into an // Privacy settings for an account. A bare `{}` fails the client's deserializer
// object, so it must return `{}` (not `[]`). // ("Deserialization returned null") — it needs the fields, so echo the id back and
.get('/accountprivacysettings/:id', (c) => c.json({})) // report recent history as visible. Nothing stores per-player privacy yet.
.get('/accountprivacysettings/:id{[0-9]+}', (c) =>
c.json({
accountId: Number.parseInt(c.req.param('id'), 10),
isRecentHistoryVisible: true,
})
)
// ---- Profile mutations --------------------------------------------------- // ---- Profile mutations ---------------------------------------------------
// Set the player's display name (persisted on the account row). // Set the player's display name (persisted on the account row).
@@ -177,6 +177,13 @@ describe('auth-gated endpoints', () => {
expect(await res.json()).toEqual({ accountId: 42, disallowInAppPurchases: false }) expect(await res.json()).toEqual({ accountId: 42, disallowInAppPurchases: false })
}) })
test('GET /accountprivacysettings/:id echoes the id with the privacy flags', async () => {
// A bare {} fails the client's deserializer, so the fields have to be there.
const res = await exports.default.fetch(`${ORIGIN}/accountprivacysettings/145`)
expect(res.status).toBe(200)
expect(await res.json()).toEqual({ accountId: 145, isRecentHistoryVisible: true })
})
test('PUT /account/me/displayname 401s without a token', async () => { test('PUT /account/me/displayname 401s without a token', async () => {
const res = await exports.default.fetch(`${ORIGIN}/account/me/displayname`, { const res = await exports.default.fetch(`${ORIGIN}/account/me/displayname`, {
...form({ displayName: 'Bob' }), ...form({ displayName: 'Bob' }),