test: add home top mask progress helper
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
import test from 'node:test'
|
||||
import assert from 'node:assert/strict'
|
||||
import { getTopMaskProgress } from '../src/utils/homeTopMask.js'
|
||||
|
||||
test('returns 0 before the title reaches the status-bar area', () => {
|
||||
assert.equal(
|
||||
getTopMaskProgress({ scrollTop: 30, startY: 80, rangeY: 40 }),
|
||||
0
|
||||
)
|
||||
})
|
||||
|
||||
test('ramps linearly through the transition range', () => {
|
||||
assert.equal(
|
||||
getTopMaskProgress({ scrollTop: 100, startY: 80, rangeY: 40 }),
|
||||
0.5
|
||||
)
|
||||
})
|
||||
|
||||
test('returns 1 after the full transition range', () => {
|
||||
assert.equal(
|
||||
getTopMaskProgress({ scrollTop: 180, startY: 80, rangeY: 40 }),
|
||||
1
|
||||
)
|
||||
})
|
||||
|
||||
test('clamps invalid values into a stable progress range', () => {
|
||||
assert.equal(getTopMaskProgress({ scrollTop: -10, startY: 80, rangeY: 40 }), 0)
|
||||
assert.equal(getTopMaskProgress({ scrollTop: 90, startY: 80, rangeY: 0 }), 1)
|
||||
assert.equal(getTopMaskProgress({ scrollTop: Number.NaN, startY: 80, rangeY: 40 }), 0)
|
||||
})
|
||||
Reference in New Issue
Block a user