list-characters.test.js 939 B

1234567891011121314151617181920212223242526272829
  1. import { test, before, after } from 'node:test'
  2. import assert from 'node:assert/strict'
  3. import { run } from '../../src/commands/list-characters.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('list-characters 列出所有角色', async () => {
  13. const r = await run([], {}, ctx)
  14. assert.equal(r.ok, true)
  15. const rows = JSON.parse(r.output)
  16. const names = rows.map((c) => c.正名 ?? c.id)
  17. assert.ok(names.includes('林晚'))
  18. assert.ok(names.includes('神秘老者'))
  19. })
  20. test('list-characters --status=在世 按状态筛选', async () => {
  21. const r = await run([], { status: '在世' }, ctx)
  22. assert.equal(r.ok, true)
  23. const rows = JSON.parse(r.output)
  24. assert.ok(rows.some((c) => (c.正名 ?? c.id) === '林晚'))
  25. assert.ok(rows.every((c) => c.status === '在世' || c.状态 === '在世'))
  26. })