footer.width.test.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import { describe, expect, test } from "bun:test"
  2. import { footerWidthPolicy } from "@/cli/cmd/run/footer.width"
  3. describe("run footer width", () => {
  4. test("preserves shared dialog and statusline breakpoints", () => {
  5. const narrow = footerWidthPolicy(79)
  6. expect(narrow.dialog.narrow).toBe(true)
  7. expect(narrow.statusline.showActivityMeta).toBe(false)
  8. expect(narrow.statusline.showCommandHint).toBe(true)
  9. expect(narrow.statusline.showContextHints).toBe(false)
  10. expect(narrow.statusline.contextHintLimit).toBe(0)
  11. expect(narrow.statusline.showModel).toBe(false)
  12. const command = footerWidthPolicy(65)
  13. expect(command.statusline.showCommandHint).toBe(false)
  14. const commandHint = footerWidthPolicy(66)
  15. expect(commandHint.statusline.showCommandHint).toBe(true)
  16. const compact = footerWidthPolicy(80)
  17. expect(compact.dialog.narrow).toBe(false)
  18. expect(compact.statusline.showActivityMeta).toBe(true)
  19. expect(compact.statusline.showContextHints).toBe(true)
  20. expect(compact.statusline.contextHintLimit).toBe(1)
  21. expect(compact.statusline.showModel).toBe(false)
  22. const model = footerWidthPolicy(120)
  23. expect(model.statusline.contextHintLimit).toBe(2)
  24. expect(model.statusline.showModel).toBe(true)
  25. const spacious = footerWidthPolicy(150)
  26. expect(spacious.statusline.contextHintLimit).toBeUndefined()
  27. expect(spacious.statusline.showModel).toBe(true)
  28. })
  29. })