export.test.js 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. import { test } from 'node:test'
  2. import assert from 'node:assert/strict'
  3. import { run } from '../../src/commands/export.js'
  4. import { tempBookCtx } from './_helper.js'
  5. test('export 命令:单章/范围/全书三形态与用法提示', async () => {
  6. const { ctx, cleanup } = await tempBookCtx()
  7. try {
  8. const single = await run(['1'], {}, ctx)
  9. assert.equal(single.ok, true, single.error)
  10. assert.match(single.output, /工作区\/导出\/第0001章-开局\.txt/)
  11. const range = await run([], { range: '1-2' }, ctx)
  12. assert.equal(range.ok, true, range.error)
  13. assert.match(range.output, /已导出 2 章/)
  14. const all = await run([], { all: true }, ctx)
  15. assert.equal(all.ok, true, all.error)
  16. assert.match(all.output, /全书-测试书\.txt/)
  17. const noArgs = await run([], {}, ctx)
  18. assert.equal(noArgs.ok, false)
  19. assert.match(noArgs.error, /用法/)
  20. const badRange = await run([], { range: 'a-b' }, ctx)
  21. assert.equal(badRange.ok, false)
  22. assert.match(badRange.error, /范围格式/)
  23. } finally {
  24. await cleanup()
  25. }
  26. })