capgo and adk autoupdates. card tags

This commit is contained in:
azykov@mail.ru
2026-09-29 19:36:08 +03:00
parent 1981d976eb
commit b6fb2fe40f
43 changed files with 1329 additions and 54 deletions
+27
View File
@@ -152,6 +152,33 @@ describe('client API', () => {
expect((patched.json() as Card).comment).toBe('From admin\nsecond line');
});
it('parses comma-separated tags and keeps them on partial updates', async () => {
const { app, key } = await setup();
const api = client(app, key);
const created = (await api('POST', '/cards', [...cardParts(), { name: 'tags', value: 'один,,, два' }])).json() as Card;
expect(created.tags).toEqual(['один', 'два']);
const renamed = (await api('PUT', `/cards/${created.id}`, [{ name: 'name', value: 'Renamed' }])).json() as Card;
expect(renamed.tags).toEqual(['один', 'два']);
const retagged = (await api('PUT', `/cards/${created.id}`, [{ name: 'tags', value: ' food , ,pharmacy ' }])).json() as Card;
expect(retagged.tags).toEqual(['food', 'pharmacy']);
const cleared = (await api('PUT', `/cards/${created.id}`, [{ name: 'tags', value: '' }])).json() as Card;
expect(cleared.tags).toEqual([]);
expect((await api('POST', '/cards', cardParts())).json()).toMatchObject({ tags: [] });
const patched = await app.inject({
method: 'PATCH',
url: `/admin/cards/${created.id}`,
headers: adminHeaders,
payload: { tags: [' a ', '', 'b, c'] },
});
expect((patched.json() as Card).tags).toEqual(['a', 'b', 'c']);
});
it('returns JSON 404 for unknown API routes', async () => {
const { app, key } = await setup();
const res = await client(app, key)('GET', '/nope');