codeburn/tests/parser-number-helpers.test.ts
Tiago Santos cf35854b09
feat: add devin provider (#444)
* feat: add devin provider

* feat: add devin to gnome extension and improve dev scripts

* fix: fix local installer

* chore: cleanup unecessary changes and address pr comments
2026-06-09 21:58:31 +02:00

53 lines
1.7 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import { isPositiveNumber, safeNumber } from '../src/parser.js'
describe('safeNumber', () => {
it('returns positive finite numbers unchanged', () => {
expect(safeNumber(1)).toBe(1)
expect(safeNumber(0.25)).toBe(0.25)
})
it('normalizes non-positive numbers to zero', () => {
expect(safeNumber(0)).toBe(0)
expect(safeNumber(-1)).toBe(0)
})
it('normalizes non-finite numbers to zero', () => {
expect(safeNumber(Number.NaN)).toBe(0)
expect(safeNumber(Number.POSITIVE_INFINITY)).toBe(0)
expect(safeNumber(Number.NEGATIVE_INFINITY)).toBe(0)
})
it('normalizes non-number values to zero', () => {
expect(safeNumber('12')).toBe(0)
expect(safeNumber(null)).toBe(0)
expect(safeNumber(undefined)).toBe(0)
expect(safeNumber({ value: 12 })).toBe(0)
})
})
describe('isPositiveNumber', () => {
it('returns true for positive finite numbers', () => {
expect(isPositiveNumber(1)).toBe(true)
expect(isPositiveNumber(0.25)).toBe(true)
})
it('returns false for zero and negative numbers', () => {
expect(isPositiveNumber(0)).toBe(false)
expect(isPositiveNumber(-1)).toBe(false)
})
it('returns false for non-finite numbers', () => {
expect(isPositiveNumber(Number.NaN)).toBe(false)
expect(isPositiveNumber(Number.POSITIVE_INFINITY)).toBe(false)
expect(isPositiveNumber(Number.NEGATIVE_INFINITY)).toBe(false)
})
it('returns false for non-number values', () => {
expect(isPositiveNumber('12')).toBe(false)
expect(isPositiveNumber(null)).toBe(false)
expect(isPositiveNumber(undefined)).toBe(false)
expect(isPositiveNumber({ value: 12 })).toBe(false)
})
})