- Add vitest as dev dep (pnpm add -D vitest), create vitest.config.ts with globals:true and setupFiles - Migrate digest-template, normalize-relay-url, reschedule-on-frequency-change, and event-arrival-race from raw JS + hand-rolled asserts to vitest describe/it/expect, as .test.ts (port all assertions without weakening) - Create test/setup.ts with env vars needed by env.ts/mailer.ts - DELETE test/web-ui.test.js: dead test for removed web UI (PR #1) - package.json: add test:unit script (vitest run), keep test = bash E2E - script/checks: add pnpm test:unit after build - README: document pnpm test:unit / pnpm test
22 lines
No EOL
872 B
TypeScript
22 lines
No EOL
872 B
TypeScript
import { describe, it, expect } from 'vitest'
|
|
import { normalizeRelayUrl } from '@welshman/util'
|
|
|
|
describe('Guarded normalizeRelayUrl', () => {
|
|
it('guarded with undefined should not crash, result is undefined', () => {
|
|
const undefinedInput: string | undefined = undefined
|
|
const guarded = undefinedInput ? normalizeRelayUrl(undefinedInput) : undefined
|
|
expect(guarded).toBeUndefined()
|
|
})
|
|
|
|
it('guarded with empty string should not crash, result is undefined', () => {
|
|
const emptyInput = ''
|
|
const guarded = emptyInput ? normalizeRelayUrl(emptyInput) : undefined
|
|
expect(guarded).toBeUndefined()
|
|
})
|
|
|
|
it('guarded with valid relay still normalizes correctly', () => {
|
|
const validInput = 'wss://relay.damus.io'
|
|
const guarded = validInput ? normalizeRelayUrl(validInput) : undefined
|
|
expect(guarded).toBe('wss://relay.damus.io/')
|
|
})
|
|
}) |