feat(ST-1133): entityDialogContentClasses → full-screen op <640px (T-316/T-317/T-318)
Eén edit op de gedeelde constant dekt PbiDialog, StoryDialog, TaskDialog, TaskDetailDialog (allen renderen DialogContent met dezelfde className). Toegevoegd: max-sm:w-screen max-sm:h-screen max-sm:max-h-screen max-sm:max-w-none max-sm:rounded-none. Desktop-classes (sm:max-w-[90vw], lg:max-w-[50vw]) blijven onveranderd. Tests: smoke op constant + regressie-vangnet dat de 4 entity-dialogen entityDialogContentClasses blijven gebruiken. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
7b32fc60e6
commit
479a502dfd
2 changed files with 39 additions and 0 deletions
38
__tests__/components/shared/entity-dialog-layout.test.ts
Normal file
38
__tests__/components/shared/entity-dialog-layout.test.ts
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
import { describe, it, expect } from 'vitest'
|
||||
import { readFileSync } from 'node:fs'
|
||||
import { resolve } from 'node:path'
|
||||
import { entityDialogContentClasses } from '@/components/shared/entity-dialog-layout'
|
||||
|
||||
describe('entityDialogContentClasses', () => {
|
||||
it('bevat mobile-fullscreen classes (<640px)', () => {
|
||||
const cls = entityDialogContentClasses
|
||||
expect(cls).toContain('max-sm:w-screen')
|
||||
expect(cls).toContain('max-sm:h-screen')
|
||||
expect(cls).toContain('max-sm:max-w-none')
|
||||
expect(cls).toContain('max-sm:rounded-none')
|
||||
})
|
||||
|
||||
it('behoudt desktop-classes (>=640px)', () => {
|
||||
const cls = entityDialogContentClasses
|
||||
expect(cls).toContain('sm:max-w-[90vw]')
|
||||
expect(cls).toContain('sm:max-h-[85vh]')
|
||||
expect(cls).toContain('lg:max-w-[50vw]')
|
||||
})
|
||||
})
|
||||
|
||||
describe('alle entity-dialogen gebruiken entityDialogContentClasses', () => {
|
||||
// Regressie-vangnet: voorkomt dat een dialog zijn eigen className meegeeft en
|
||||
// daarmee de gedeelde mobile-fullscreen-classes ontwijkt.
|
||||
const files = [
|
||||
'app/_components/tasks/task-dialog.tsx',
|
||||
'components/solo/task-detail-dialog.tsx',
|
||||
'components/backlog/pbi-dialog.tsx',
|
||||
'components/backlog/story-dialog.tsx',
|
||||
]
|
||||
for (const f of files) {
|
||||
it(`${f} importeert + gebruikt entityDialogContentClasses`, () => {
|
||||
const src = readFileSync(resolve(process.cwd(), f), 'utf-8')
|
||||
expect(src).toContain('entityDialogContentClasses')
|
||||
})
|
||||
}
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue