feat: add unit tests and CI configuration
This commit is contained in:
61
lib/utils/__tests__/requestId.test.ts
Normal file
61
lib/utils/__tests__/requestId.test.ts
Normal file
@@ -0,0 +1,61 @@
|
||||
import { describe, it, expect, beforeEach } from 'vitest'
|
||||
import {
|
||||
generateRequestId,
|
||||
getRequestIdHeader,
|
||||
setLastRequestId,
|
||||
getLastRequestId,
|
||||
clearLastRequestId,
|
||||
} from '../requestId'
|
||||
|
||||
describe('generateRequestId', () => {
|
||||
it('returns a string starting with REQ', () => {
|
||||
const id = generateRequestId()
|
||||
expect(id).toMatch(/^REQ/)
|
||||
})
|
||||
|
||||
it('contains a timestamp and random segment separated by underscore', () => {
|
||||
const id = generateRequestId()
|
||||
const parts = id.replace('REQ', '').split('_')
|
||||
expect(parts).toHaveLength(2)
|
||||
expect(parts[0].length).toBeGreaterThan(0)
|
||||
expect(parts[1].length).toBeGreaterThan(0)
|
||||
})
|
||||
|
||||
it('generates unique IDs across calls', () => {
|
||||
const ids = new Set(Array.from({ length: 100 }, () => generateRequestId()))
|
||||
expect(ids.size).toBe(100)
|
||||
})
|
||||
})
|
||||
|
||||
describe('getRequestIdHeader', () => {
|
||||
it('returns X-Request-ID', () => {
|
||||
expect(getRequestIdHeader()).toBe('X-Request-ID')
|
||||
})
|
||||
})
|
||||
|
||||
describe('lastRequestId storage', () => {
|
||||
beforeEach(() => {
|
||||
clearLastRequestId()
|
||||
})
|
||||
|
||||
it('returns null when no ID has been set', () => {
|
||||
expect(getLastRequestId()).toBeNull()
|
||||
})
|
||||
|
||||
it('stores and retrieves a request ID', () => {
|
||||
setLastRequestId('REQ123_abc')
|
||||
expect(getLastRequestId()).toBe('REQ123_abc')
|
||||
})
|
||||
|
||||
it('overwrites previous ID on set', () => {
|
||||
setLastRequestId('first')
|
||||
setLastRequestId('second')
|
||||
expect(getLastRequestId()).toBe('second')
|
||||
})
|
||||
|
||||
it('clears the stored ID', () => {
|
||||
setLastRequestId('REQ123_abc')
|
||||
clearLastRequestId()
|
||||
expect(getLastRequestId()).toBeNull()
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user