prompt-transient-state.test.ts 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { expect, test } from "bun:test"
  2. import { createRoot, createSignal } from "solid-js"
  3. import { createPromptInputTransientState } from "@/components/prompt-input/transient-state"
  4. test("resets transient prompt input state when the prompt session changes", () => {
  5. createRoot((dispose) => {
  6. const [identity, setIdentity] = createSignal("A")
  7. const [state, setState] = createPromptInputTransientState(identity, 3)
  8. setState({
  9. popover: "slash",
  10. slashMenu: true,
  11. slashMenuQuery: "compact",
  12. historyIndex: 2,
  13. savedPrompt: {
  14. prompt: [{ type: "text", content: "draft-A", start: 0, end: 7 }],
  15. comments: [],
  16. },
  17. draggingType: "image",
  18. mode: "shell",
  19. applyingHistory: true,
  20. })
  21. setIdentity("B")
  22. expect(state).toMatchObject({
  23. popover: null,
  24. slashMenu: false,
  25. slashMenuQuery: "",
  26. historyIndex: -1,
  27. savedPrompt: null,
  28. placeholder: 3,
  29. draggingType: null,
  30. mode: "normal",
  31. applyingHistory: false,
  32. })
  33. dispose()
  34. })
  35. })