Files
vikunja/frontend/tests/support/updateUserSettings.ts
kolaente 8b6082e8c7 feat(kanban): add setting to always show bucket task count (#1966)
Added "Always show task count on Kanban buckets" setting in user preferences to control the visibility of task counts on Kanban bucket headers
2025-12-11 23:27:13 +00:00

40 lines
1.1 KiB
TypeScript

import type {APIRequestContext} from '@playwright/test'
import {objectToSnakeCase} from '../../src/helpers/case'
export async function updateUserSettings(apiContext: APIRequestContext, token: string, settings: any) {
const apiUrl = process.env.API_URL || 'http://localhost:3456/api/v1'
const userResponse = await apiContext.get(`${apiUrl}/user`, {
headers: {
'Authorization': `Bearer ${token}`,
},
})
const userData = await userResponse.json()
// GET /user returns { settings: { frontend_settings: ... }, ... }
// POST /user/settings/general expects { frontend_settings: ... } at the top level
const oldSettings = userData.settings || {}
const snakeSettings = objectToSnakeCase(settings)
// Deep merge frontend_settings if provided
const mergedSettings = {
...oldSettings,
...snakeSettings,
}
if (snakeSettings.frontend_settings) {
mergedSettings.frontend_settings = {
...(oldSettings.frontend_settings || {}),
...snakeSettings.frontend_settings,
}
}
await apiContext.post(`${apiUrl}/user/settings/general`, {
headers: {
'Authorization': `Bearer ${token}`,
},
data: mergedSettings,
})
}