OverviewFilesCommitsIssuesDocsReleasesPeers

hyper-note / test / unit / range-serve.test.js

28 lines · javascript ref:
import test from 'brittle'
import { parseRange } from '../../lib/media-store.js'

test('parseRange - parses "bytes=0-499"', async (t) => {
  const range = parseRange('bytes=0-499', 1000)
  t.is(range.start, 0)
  t.is(range.end, 499)
})

test('parseRange - parses "bytes=500-" (open end)', async (t) => {
  const range = parseRange('bytes=500-', 1000)
  t.is(range.start, 500)
  t.is(range.end, 999)
})

test('parseRange - parses "bytes=-200" (suffix)', async (t) => {
  const range = parseRange('bytes=-200', 1000)
  t.is(range.start, 800)
  t.is(range.end, 999)
})

test('parseRange - returns null for invalid range', async (t) => {
  t.is(parseRange('invalid', 1000), null)
  t.is(parseRange(undefined, 1000), null)
  t.is(parseRange('bytes=500-200', 1000), null)  // start > end
  t.is(parseRange('bytes=0-1500', 1000), null)    // end >= totalSize
})