39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import {
|
|
DEFAULT_GIT_STATUS_LIMIT,
|
|
capGitStatusEntries,
|
|
resolveGitStatusLimit
|
|
} from './git-status-limit'
|
|
|
|
describe('resolveGitStatusLimit', () => {
|
|
it('accepts non-negative integers and rejects malformed limits', () => {
|
|
expect(resolveGitStatusLimit(0)).toBe(0)
|
|
expect(resolveGitStatusLimit(25)).toBe(25)
|
|
expect(resolveGitStatusLimit(1.5)).toBe(DEFAULT_GIT_STATUS_LIMIT)
|
|
expect(resolveGitStatusLimit(Number.NaN)).toBe(DEFAULT_GIT_STATUS_LIMIT)
|
|
expect(resolveGitStatusLimit(-1)).toBe(DEFAULT_GIT_STATUS_LIMIT)
|
|
})
|
|
})
|
|
|
|
describe('capGitStatusEntries', () => {
|
|
it('caps composed entries and reports the observed size', () => {
|
|
expect(capGitStatusEntries(['a', 'b', 'c'], 2)).toEqual({
|
|
entries: ['a', 'b'],
|
|
didHitLimit: true,
|
|
statusLength: 3
|
|
})
|
|
})
|
|
|
|
it('preserves an earlier incomplete-status signal after deduplication', () => {
|
|
expect(capGitStatusEntries(['a'], 2, { didHitLimit: true, statusLength: 3 })).toEqual({
|
|
entries: ['a'],
|
|
didHitLimit: true,
|
|
statusLength: 3
|
|
})
|
|
})
|
|
|
|
it('treats zero as an unlimited result', () => {
|
|
expect(capGitStatusEntries(['a', 'b'], 0)).toEqual({ entries: ['a', 'b'] })
|
|
})
|
|
})
|