- Delete old Vite+Svelte frontend - Initialize new SvelteKit project with TypeScript - Configure Tailwind CSS v4 + DaisyUI - Implement JWT authentication with auto-refresh - Create login page with form validation (Zod) - Add protected route guards - Update Docker configuration for single-stage build - Add E2E tests with Playwright (6/11 passing) - Fix Svelte 5 reactivity with $state() runes Known issues: - 5 E2E tests failing (timing/async issues) - Token refresh implementation needs debugging - Validation error display timing
34 lines
879 B
JavaScript
34 lines
879 B
JavaScript
import {
|
|
limit,
|
|
trimAfterFirstMatch,
|
|
startsWith,
|
|
endsWith
|
|
} from './util.js'
|
|
|
|
describe('findNumbers/util', () => {
|
|
it('should generate regexp limit', () => {
|
|
let thrower = () => limit(1, 0)
|
|
expect(thrower).to.throw()
|
|
|
|
thrower = () => limit(-1, 1)
|
|
expect(thrower).to.throw()
|
|
|
|
thrower = () => limit(0, 0)
|
|
expect(thrower).to.throw()
|
|
})
|
|
|
|
it('should trimAfterFirstMatch', () => {
|
|
expect(trimAfterFirstMatch(/\d/, 'abc123')).to.equal('abc')
|
|
expect(trimAfterFirstMatch(/\d/, 'abc')).to.equal('abc')
|
|
})
|
|
|
|
it('should determine if a string starts with a substring', () => {
|
|
expect(startsWith('𐍈123', '𐍈')).to.equal(true)
|
|
expect(startsWith('1𐍈', '𐍈')).to.equal(false)
|
|
})
|
|
|
|
it('should determine if a string ends with a substring', () => {
|
|
expect(endsWith('123𐍈', '𐍈')).to.equal(true)
|
|
expect(endsWith('𐍈1', '𐍈')).to.equal(false)
|
|
})
|
|
}) |