← Public packages
@kentcdodds/lineage
Interactive commit-level lines of kody, minus generated noise, as an offline-ready chart.
src/ui/refresh-state.node.test.ts
51 lines · 1.2 KB · TypeScriptimport assert from 'node:assert/strict'
import { describe, it } from 'node:test'
import { afterRefresh, whileRefreshing } from './refresh-state.ts'
describe('refresh presentation', () => {
it('keeps the last series visible while a cached refresh is in flight', () => {
assert.deepEqual(whileRefreshing(true), {
showFullPageLoading: false,
statusUpdating: true,
treatAsOffline: false,
})
})
it('never uses a full-page loading card, even before a series is on screen', () => {
assert.deepEqual(whileRefreshing(false), {
showFullPageLoading: false,
statusUpdating: false,
treatAsOffline: false,
})
})
it('does not call a successful refresh offline', () => {
assert.deepEqual(
afterRefresh({
hasCachedSeries: true,
fetchSucceeded: true,
networkOnline: true,
}),
{
showFullPageLoading: false,
statusUpdating: false,
treatAsOffline: false,
},
)
})
it('marks a failed refresh offline only when a cached series is still on screen', () => {
assert.deepEqual(
afterRefresh({
hasCachedSeries: true,
fetchSucceeded: false,
networkOnline: true,
}),
{
showFullPageLoading: false,
statusUpdating: false,
treatAsOffline: true,
},
)
})
})