| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- import { describe, expect, it } from 'vitest'
- import { DatabaseFormSchema } from './PerformanceSettingsForm'
- describe('DatabaseFormSchema', () => {
- describe('percent unit', () => {
- it('accepts 1 (lower bound)', () => {
- const result = DatabaseFormSchema.safeParse({
- DB_MAX_POOL_SIZE: 1,
- DB_MAX_POOL_SIZE_UNIT: 'percent',
- })
- expect(result.success).toBe(true)
- })
- it('accepts 100 (upper bound)', () => {
- const result = DatabaseFormSchema.safeParse({
- DB_MAX_POOL_SIZE: 100,
- DB_MAX_POOL_SIZE_UNIT: 'percent',
- })
- expect(result.success).toBe(true)
- })
- it('accepts a mid-range value', () => {
- const result = DatabaseFormSchema.safeParse({
- DB_MAX_POOL_SIZE: 50,
- DB_MAX_POOL_SIZE_UNIT: 'percent',
- })
- expect(result.success).toBe(true)
- })
- it('rejects 0', () => {
- const result = DatabaseFormSchema.safeParse({
- DB_MAX_POOL_SIZE: 0,
- DB_MAX_POOL_SIZE_UNIT: 'percent',
- })
- expect(result.success).toBe(false)
- })
- it('rejects 101', () => {
- const result = DatabaseFormSchema.safeParse({
- DB_MAX_POOL_SIZE: 101,
- DB_MAX_POOL_SIZE_UNIT: 'percent',
- })
- expect(result.success).toBe(false)
- if (!result.success) {
- const issue = result.error.issues.find((i) => i.path[0] === 'DB_MAX_POOL_SIZE')
- expect(issue?.message).toBe('Percentage must be between 1 and 100')
- }
- })
- it('rejects negative values', () => {
- const result = DatabaseFormSchema.safeParse({
- DB_MAX_POOL_SIZE: -5,
- DB_MAX_POOL_SIZE_UNIT: 'percent',
- })
- expect(result.success).toBe(false)
- })
- it('coerces string input', () => {
- const result = DatabaseFormSchema.safeParse({
- DB_MAX_POOL_SIZE: '75',
- DB_MAX_POOL_SIZE_UNIT: 'percent',
- })
- expect(result.success).toBe(true)
- })
- it('rejects out-of-range string input', () => {
- const result = DatabaseFormSchema.safeParse({
- DB_MAX_POOL_SIZE: '150',
- DB_MAX_POOL_SIZE_UNIT: 'percent',
- })
- expect(result.success).toBe(false)
- })
- })
- describe('connections unit', () => {
- it('accepts 1 (min)', () => {
- const result = DatabaseFormSchema.safeParse({
- DB_MAX_POOL_SIZE: 1,
- DB_MAX_POOL_SIZE_UNIT: 'connections',
- })
- expect(result.success).toBe(true)
- })
- it('accepts values above 100 (no upper schema bound for absolute)', () => {
- const result = DatabaseFormSchema.safeParse({
- DB_MAX_POOL_SIZE: 500,
- DB_MAX_POOL_SIZE_UNIT: 'connections',
- })
- expect(result.success).toBe(true)
- })
- it('rejects 0', () => {
- const result = DatabaseFormSchema.safeParse({
- DB_MAX_POOL_SIZE: 0,
- DB_MAX_POOL_SIZE_UNIT: 'connections',
- })
- expect(result.success).toBe(false)
- })
- })
- describe('unit enum', () => {
- it('rejects unknown unit values', () => {
- const result = DatabaseFormSchema.safeParse({
- DB_MAX_POOL_SIZE: 10,
- DB_MAX_POOL_SIZE_UNIT: 'bytes',
- })
- expect(result.success).toBe(false)
- })
- })
- })
|