openpencil/tests/engine/app
Danila Poyarkov 8408b56721
refactor(app): modernize browser clipboard adapter (#601)
* refactor(app): isolate system clipboard adapters

- Split browser and Tauri clipboard behavior into focused adapters\n- Inject browser clipboard capabilities into unit-testable operations\n- Remove navigator and document mutation from headless clipboard tests

* refactor(app): delegate browser clipboard fallbacks

- Use copy-to-clipboard for modern rich MIME writes and execCommand fallback\n- Keep OpenPencil-specific HTML and plain-text payload construction at the adapter boundary\n- Remove hand-rolled browser capability and selection handling

* test(clipboard): verify rich browser menu round-trip

- Exercise copy from the browser Edit menu under a user gesture\n- Verify text/html and text/plain ClipboardItem formats\n- Paste the system clipboard payload back into the canvas

* refactor(clipboard): reduce adapter surface

- Expose only command dispatch and the injectable system clipboard contract\n- Keep browser and Tauri copy/paste operations private to their adapters\n- Rename the in-memory DataTransfer fallback and share design HTML recognition

* fix(clipboard): harden format and fallback handling

- Require complete OpenPencil or Figma clipboard markers\n- Await browser writes so adapter failures resolve false\n- Write plain-only Tauri payloads as text and reject unrelated clipboard text

* fix(clipboard): reject unrelated current browser data

* fix(clipboard): bind fallbacks to copied selection

- Match cached rich HTML to the current Tauri plain-text fallback\n- Preserve nodes when selection changes during an asynchronous cut\n- Reject unrelated current browser HTML before consulting memory

* fix(clipboard): reuse the shared memory payload type

* fix(clipboard): scan design markers linearly

* fix(clipboard): distinguish unavailable and empty reads

* style(clipboard): use includes for marker closure

* test(clipboard): avoid wall-clock marker assertions
2026-08-28 14:37:42 +03:00
..
ai feat(ai): add HarnessAgent sidecar foundation (#560) 2026-08-19 17:41:10 +03:00
automation fix(mcp): isolate Portless development routes 2026-08-21 08:14:04 +03:00
chat fix(chat): treat MCP results with optional isError correctly 2026-08-24 18:18:02 +03:00
clipboard refactor(app): modernize browser clipboard adapter (#601) 2026-08-28 14:37:42 +03:00
code feat(code): add live JSX and HTML/CSS editing (#525) 2026-08-15 09:48:42 +03:00
diagnostics feat(diagnostics): add local usage and diagnostics foundation 2026-08-24 16:56:40 +03:00
document feat(app): make crash recovery configurable 2026-08-21 18:58:27 +03:00
editor feat(editor): model split canvas panes (#519) 2026-08-15 10:31:52 +03:00
integrations feat(ai): add HarnessAgent sidecar foundation (#560) 2026-08-19 17:41:10 +03:00
recent-files refactor(app): polish files workspace and New tabs 2026-08-20 17:20:33 +03:00
settings feat(app): add cross-platform credential storage 2026-07-26 14:07:26 +03:00
shell/menu refactor(app): polish files workspace and New tabs 2026-08-20 17:20:33 +03:00
storage fix(storage): harden workspace previews 2026-08-10 20:02:58 +03:00
tabs refactor(app): polish files workspace and New tabs 2026-08-20 17:20:33 +03:00
tauri fix(tauri): preserve request and abort semantics 2026-07-18 05:02:51 +03:00
usage feat(diagnostics): add local usage and diagnostics foundation 2026-08-24 16:56:40 +03:00
cache.test.ts refactor(app): polish files workspace and New tabs 2026-08-20 17:20:33 +03:00
demo.test.ts revert(demo): restore the visual-features showcase demo 2026-07-24 15:29:43 +03:00
external-link.test.ts test: move tauri helpers into domain folder 2026-05-06 16:16:08 +03:00
font-loading.test.ts fix(tauri): prevent Windows font loading crashes (#497) 2026-08-12 20:09:04 +03:00
font-settings.test.ts chore(tests): narrow no-empty-function exceptions 2026-05-06 12:32:54 +03:00
variables-editor.test.ts feat: split SceneGraph and Pen packages 2026-06-30 10:54:32 +03:00
vector-edit-transforms.test.ts fix(editor): commit vector drags on pointer release (#586) 2026-08-24 16:02:27 +03:00