read-chapters.test.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import { test, before, after } from 'node:test'
  2. import assert from 'node:assert/strict'
  3. import { run } from '../../src/commands/read-chapters.js'
  4. import { fixtureCtx } from './_helper.js'
  5. let ctx, cleanup
  6. before(async () => {
  7. ;({ ctx, cleanup } = await fixtureCtx())
  8. })
  9. after(async () => {
  10. await cleanup()
  11. })
  12. test('read-chapters --range=1-2 --摘要 返回范围内各章摘要', async () => {
  13. const r = await run([], { range: '1-2', 摘要: true }, ctx)
  14. assert.equal(r.ok, true)
  15. const rows = JSON.parse(r.output)
  16. assert.equal(rows.length, 2)
  17. assert.equal(rows[0].章号, 1)
  18. assert.ok(rows[0].摘要.length > 0)
  19. })
  20. test('read-chapters --recent=1 --tail=8 返回近 1 章结尾', async () => {
  21. const r = await run([], { recent: '1', tail: '8' }, ctx)
  22. assert.equal(r.ok, true)
  23. const rows = JSON.parse(r.output)
  24. assert.equal(rows.length, 1)
  25. assert.equal(rows[0].章号, 2) // 最新章
  26. assert.ok([...rows[0].结尾].length <= 8)
  27. })
  28. test('read-chapters 缺选项 → ok=false', async () => {
  29. const r = await run([], {}, ctx)
  30. assert.equal(r.ok, false)
  31. })