prompt-transient-state.test.ts 1007 B

123456789101112131415161718192021222324252627282930313233343536
  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. historyIndex: 2,
  11. savedPrompt: {
  12. prompt: [{ type: "text", content: "draft-A", start: 0, end: 7 }],
  13. comments: [],
  14. },
  15. draggingType: "image",
  16. mode: "shell",
  17. applyingHistory: true,
  18. variantOpen: true,
  19. })
  20. setIdentity("B")
  21. expect(state).toMatchObject({
  22. popover: null,
  23. historyIndex: -1,
  24. savedPrompt: null,
  25. placeholder: 3,
  26. draggingType: null,
  27. mode: "normal",
  28. applyingHistory: false,
  29. variantOpen: false,
  30. })
  31. dispose()
  32. })
  33. })