import 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('uses the full-page loading card only when there is no series yet', () => {
assert.deepEqual(whileRefreshing(false), {
showFullPageLoading: true,
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,
},
)
})
})