import { expect, test } from 'vitest'; import { compactPassages } from './passageSummary.js'; test('runs of chapters become ranges', () => { expect(compactPassages('Luke 1, Luke 2, Luke 3, Luke 4, Luke 5, Luke 6')).toBe('Luke 1–6'); expect(compactPassages('1 John 1, 1 John 2, 1 John 3, 1 John 4, 1 John 5')).toBe('1 John 1–5'); }); test('gaps stay separate, pairs and singles stay plain', () => { expect(compactPassages('Luke 1, Luke 2, Luke 3, Luke 5')).toBe('Luke 1–3, 5'); expect(compactPassages('Malachi 1, Malachi 2')).toBe('Malachi 1, 2'); expect(compactPassages('John 3')).toBe('John 3'); }); test('several books, and text that is not a chapter, are kept', () => { expect(compactPassages('Ephesians 1, Ephesians 2, Ephesians 3, Titus 1')).toBe('Ephesians 1–3, Titus 1'); expect(compactPassages('Whole book')).toBe('Whole book'); expect(compactPassages('')).toBe(''); });