Files
tolaria/src/utils/viewFilename.test.ts
2026-04-28 05:39:41 +02:00

27 lines
1.1 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import { createViewFilename, slugifyViewFilenameStem } from './viewFilename'
describe('slugifyViewFilenameStem', () => {
it('turns awkward custom view names into portable filename stems', () => {
expect(slugifyViewFilenameStem(' Project / Q2: Launch 🚀 ')).toBe('project-q2-launch')
expect(slugifyViewFilenameStem('...Roadmap...')).toBe('roadmap')
expect(slugifyViewFilenameStem('你好')).toBe('你好')
})
it('falls back for symbol-only names and avoids Windows reserved device names', () => {
expect(slugifyViewFilenameStem('🚀')).toBe('view')
expect(slugifyViewFilenameStem('CON')).toBe('con-view')
})
})
describe('createViewFilename', () => {
it('adds the yml extension and avoids duplicate sanitized filenames', () => {
expect(createViewFilename('Project / Q2', ['project-q2.yml', 'project-q2-2.yml']))
.toBe('project-q2-3.yml')
})
it('compares existing filenames case-insensitively', () => {
expect(createViewFilename('Roadmap', ['Roadmap.yml'])).toBe('roadmap-2.yml')
})
})