feat(PBI-49): add debugProps helper + Vitest test

Adds lib/debug.ts with debugProps(id, component, file) that returns
data-debug-id and data-debug-label attrs in dev mode, empty object in
production. Adds __tests__/lib/debug.test.ts covering both modes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Scrum4Me Agent 2026-05-09 20:40:09 +02:00
parent ce43f7720a
commit 82b23a9c84
2 changed files with 40 additions and 0 deletions

View file

@ -0,0 +1,24 @@
import { describe, it, expect, vi } from 'vitest'
import { debugProps } from '@/lib/debug'
describe('debugProps', () => {
it('returns both attrs with correct label in dev mode', () => {
const result = debugProps('sprint-board', 'SprintBoard', 'components/sprint/sprint-board.tsx')
expect(result).toEqual({
'data-debug-id': 'sprint-board',
'data-debug-label': 'SprintBoard — components/sprint/sprint-board.tsx',
})
})
it('returns empty object in production mode', () => {
const original = process.env.NODE_ENV
try {
vi.stubEnv('NODE_ENV', 'production')
const result = debugProps('sprint-board', 'SprintBoard', 'components/sprint/sprint-board.tsx')
expect(result).toEqual({})
} finally {
vi.stubEnv('NODE_ENV', original ?? 'test')
}
})
})

16
lib/debug.ts Normal file
View file

@ -0,0 +1,16 @@
export type DebugProps = {
'data-debug-id': string
'data-debug-label': string
}
export function debugProps(
id: string,
component: string,
file: string
): DebugProps | Record<string, never> {
if (process.env.NODE_ENV === 'production') return {}
return {
'data-debug-id': id,
'data-debug-label': `${component}${file}`,
}
}