Testing TypeScript Code
Edge Case Checks
Edge case tests check boundaries such as empty values and limits.
edge case
Testing a boundary value catches behavior that regular examples often miss.
Edge Case Checks
edge_cases.ts
Replay: real traced execution (multi-file project)
function clampPercent(value: number): number {
if (value < 0) {
return 0;
}
if (value > 100) {
return 100;
}
return value;
}
const rawValue: number = -5;
const clamped: number = clampPercent(rawValue);
const expected: number = rawValue < 0 ? 0 : 100;
const passed: boolean = clamped === expected;
console.log(`${rawValue}->${clamped}:${passed}`);
function clampPercent(value: number): number {
if (value < 0) {
return 0;
}
if (value > 100) {
return 100;
}
return value;
}
const rawValue: number = 125;
const clamped: number = clampPercent(rawValue);
const expected: number = rawValue < 0 ? 0 : 100;
const passed: boolean = clamped === expected;
console.log(`${rawValue}->${clamped}:${passed}`);
rawValue ← -5
8 return value;9}1011const rawValue→ -5: number = -5; //@rawValue=12512const clamped: number = clampPercent(rawValue-5);13const expected: number = rawValue < 0 ? 0 : 100;function clampPercent(value: number): number
1function clampPercent(value-5: number): number {2 if (value < 0) {if (value < 0)
1function clampPercent(value: number): number {2 if (value-5 < 0) {3 return 0;4 }clamped ← 0, expected ← 0, rawValue ← -5, passed ← true
11const rawValue: number = -5; //@rawValue=12512const clamped→ 0: number = clampPercent(rawValue-5);13const expected→ 0: number = rawValue→ -5 < 0 ? 0 : 100;14const passed→ true: boolean = clamped→ 0 === expected0;1516console.log(`${rawValue-5}->${clamped0}:${passedtrue}`);output-5->0:true
rawValue ← 125
8 return value;9}1011const rawValue→ 125: number = 125;12const clamped: number = clampPercent(rawValue125);13const expected: number = rawValue < 0 ? 0 : 100;function clampPercent(value: number): number
1function clampPercent(value125: number): number {2 if (value < 0) {if (value > 100)
3 return 0;4}5if (value125 > 100) {6 return 100;7}clamped ← 100, expected ← 100, rawValue ← 125, passed ← true
11const rawValue: number = 125;12const clamped→ 100: number = clampPercent(rawValue125);13const expected→ 100: number = rawValue→ 125 < 0 ? 0 : 100;14const passed→ true: boolean = clamped→ 100 === expected100;1516console.log(`${rawValue125}->${clamped100}:${passedtrue}`);output125->100:true