← Public packages
@kentcdodds/codemod-runner
Run codemods over your own saved packages: scan, dry-run with real publish checks and diffs, apply, and revert.
src/time-budget.test.ts
53 lines · 1.1 KB · TypeScriptimport assert from 'node:assert/strict'
import { describe, it } from 'node:test'
import {
shouldStopBeforeNextPackage,
stepHardCeilingMs,
stepTimeBudgetMs,
} from './time-budget.ts'
describe('shouldStopBeforeNextPackage', () => {
it('always starts the first package', () => {
assert.equal(
shouldStopBeforeNextPackage({
elapsedMs: stepHardCeilingMs + 1,
completedCount: 0,
lastPackageMs: 60_000,
}),
false,
)
})
it('stops after the step budget once something has completed', () => {
assert.equal(
shouldStopBeforeNextPackage({
elapsedMs: stepTimeBudgetMs + 1,
completedCount: 1,
lastPackageMs: 1_000,
}),
true,
)
})
it('stops when the last package duration would cross the ceiling', () => {
assert.equal(
shouldStopBeforeNextPackage({
elapsedMs: 50_000,
completedCount: 1,
lastPackageMs: 30_000,
}),
true,
)
})
it('continues while both budgets still have room', () => {
assert.equal(
shouldStopBeforeNextPackage({
elapsedMs: 20_000,
completedCount: 1,
lastPackageMs: 15_000,
}),
false,
)
})
})