fix(projects): находить проекты с кириллицей без учёта регистра
SQLite LOWER() и LIKE понижают только ASCII, поэтому «Сайт и API» не находился и каждый новый VPS с таким проектом создавал дубль; подсказки по «сай» тоже были пустыми. Сравнение перенесено в JS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5e29ff7ec3
commit
d0e262c41d
2 files changed
+27
-23
No files matched your search
@@ -30,6 +30,18 @@ describe('projects routes', () => {
|
||||
expect(body[0]?.color).toBe('#ff0000')
|
||||
})
|
||||
|
||||
it('reuses a Cyrillic project regardless of case and suggests it', async () => {
|
||||
projectsRepository.create({ name: 'Сайт и API' })
|
||||
for (const project of ['Сайт и API', 'сайт и api']) {
|
||||
const res = await app.inject({ method: 'POST', url: '/api/vps', payload: { ip: '10.0.0.1', project } })
|
||||
expect(res.statusCode).toBe(201)
|
||||
}
|
||||
const list = (await app.inject({ url: '/api/projects' })).json() as { name: string }[]
|
||||
expect(list.map((p) => p.name)).toEqual(['Сайт и API'])
|
||||
const sug = (await app.inject({ url: `/api/projects/suggest?q=${encodeURIComponent('сай')}` })).json() as { name: string }[]
|
||||
expect(sug.map((p) => p.name)).toEqual(['Сайт и API'])
|
||||
})
|
||||
|
||||
it('creates project with color and notes', async () => {
|
||||
const res = await app.inject({
|
||||
method: 'POST',
|
||||
|
||||
Reference in new issue
Block a user