Back to Plate

Slate v2 Test Candidate Map: 5994-5918

docs/slate-issues/test-candidate-map/5994-5918.md

53.0.610.5 KB
Original Source

Slate v2 Test Candidate Map: 5994-5918

Scope

These TDD handoff notes cover issues #5994 through #5918 from the pilot set. Use the top-level index for range navigation and the dossiers for fuller thread context.


Issue #5994

  • package: slate-dom and slate-react
  • TDD readiness: blocked-on-repro
  • public test seam: mentions example newline-backspace boundary

Minimal Repro Setup

  • mentions example shape
  • mention inline at the end of a line
  • environment that actually reproduces the local-main behavior

Minimal Sequence

  1. Put a mention at the end of a line.
  2. Press Enter to create a new line.
  3. Press Backspace to remove that line.

Expected Failing Assertion

  • the cursor should land at a valid caret position
  • the mention should not become unexpectedly selected

Current Blocker

Reporter says the deployed official example does not reproduce it, only a local main run. That needs to be resolved first.


Issue #5992

  • package: slate
  • TDD readiness: not-a-test-candidate
  • public test seam: huge-document cut benchmark

Why Not A Direct Test Candidate

This is a scaling/performance issue, not a crisp correctness failure.

Useful Extraction

  • candidate benchmark seam: huge-document example or a perf harness modeled on the reported cut flow
  • workload:
    • 50,000-block document
    • select two nodes
    • cut

Better Artifact

A reproducible benchmark lane, not a behavior test.


Issue #5989

  • package: slate-dom and slate-react
  • TDD readiness: ready-with-minor-setup
  • public test seam: Android IME composition with placeholder visible

Minimal Repro Setup

  • empty editor with placeholder visible
  • composition-capable harness or approximation for Hangul IME behavior

Minimal Sequence

  1. Clear editor to empty state.
  2. Begin Hangul composition for the first syllable.

Expected Failing Assertion

  • the first consonant and vowel should compose into one syllable
  • they should not be committed as separate characters

Notes

This is another case where the first serious test may approximate composition semantics rather than perfectly emulating Android.


Issue #5987

  • package: slate-react
  • TDD readiness: ready-now
  • public test seam: async decorate update plus caret stability

Minimal Repro Setup

  • editor with text that becomes decorated after async state change
  • caret positioned at end of text before the async decoration lands

Minimal Sequence

  1. Type text that later satisfies a decoration rule.
  2. Let the async state update regenerate decorate.

Expected Failing Assertion

  • the caret should remain at the logically current position after decorations apply

Issue #5984

  • package: slate-dom and slate-react
  • TDD readiness: ready-with-minor-setup
  • public test seam: Android Chinese IME backspace behavior

Minimal Repro Setup

  • Android-flavored input harness or approximation
  • Chinese IME-like composition/deletion sequence

Minimal Sequence

  1. Insert text.
  2. Press backspace once.

Expected Failing Assertion

  • one backspace should delete exactly one unit
  • one backspace should yield one immediate state change

Notes

There is a linked PR in the issue thread. If that code still exists, it should be reviewed as a likely starting point, not treated as truth.


Issue #5983

  • package: slate-dom and slate-react
  • TDD readiness: ready-with-minor-setup
  • public test seam: empty-editor Android voice input duplication

Minimal Repro Setup

  • empty editor
  • input path that approximates Android voice insertion into empty content

Minimal Sequence

  1. Start from empty editor.
  2. Perform first dictated insertion.

Expected Failing Assertion

  • first insertion should appear exactly once
  • empty-state insertion should behave the same as non-empty-state insertion

Issue #5977

  • package: slate and slate-dom
  • TDD readiness: ready-now
  • public test seam: custom operations should not break editor detection

Minimal Repro Setup

  • editor instance whose operations array includes a custom operation object

Minimal Sequence

  1. Add custom operation to the editor's operations history.
  2. Run the public seam that depends on editor detection.

Expected Failing Assertion

  • editor detection should still succeed
  • downstream DOM/path lookup should not fail solely because custom ops exist in editor.operations

Notes

This is intentionally narrower than “full custom operation support everywhere.”


Issue #5974

  • package: slate-dom and slate-react
  • TDD readiness: blocked-on-repro
  • public test seam: Chinese composition under Chrome iPhone emulation

Minimal Repro Setup

  • Chrome DevTools iPhone emulation
  • Chinese IME composition path

Current Blocker

The issue is emulator-specific and already carries a workaround based on internal overrides. That is too shaky for a worthwhile test until the environment question is resolved.


Issue #5972

  • package: slate
  • TDD readiness: ready-now
  • public test seam: empty inline deleteBackward semantics

Minimal Repro Setup

  • inline example shape
  • empty inline/input element immediately before text boundary

Minimal Sequence

  1. Clear text inside the inline.
  2. Press backspace at the boundary.

Expected Failing Assertion

  • the empty inline should be removed
  • the preceding character should not also be deleted in the simple case

Notes

Keep the first test narrow. The harder nested-inline semantics belong in later tests if the behavior is changed.


Issue #5961

  • package: slate-react
  • TDD readiness: not-a-test-candidate
  • public test seam: none

Why Not A Direct Test Candidate

The thread resolves the original report into consumer-side timing misuse plus stale code.

Useful Extraction

  • if anything survives from this issue, it is guidance against requestAnimationFrame hacks around editor state updates

Issue #5958

  • package: cross-package
  • TDD readiness: not-a-test-candidate
  • public test seam: Burmese IME composition

Why Not A Direct Test Candidate

The current thread points upstream to Chromium, not to a clearly Slate-owned failure.

Useful Extraction

  • still valuable as cluster evidence for IME/input pain
  • not worth turning into a Slate regression test while ownership stays fuzzy

Issue #5956

  • package: docs-only
  • TDD readiness: not-a-test-candidate
  • public test seam: none

Why Not A Direct Test Candidate

This resolved into focus-ring styling, not editor behavior.

Useful Extraction

  • if this deserves anything later, it belongs in docs or examples guidance around focus indicators

Issue #5947

  • package: slate-dom
  • TDD readiness: ready-now
  • public test seam: nested editors plus DOMEditor.toSlatePoint

Minimal Repro Setup

  • parent editor containing or adjacent to a nested editor
  • nested read-only or non-editable path that forces the nonEditableNode branch

Minimal Sequence

  1. Create nested editor DOM.
  2. Trigger point resolution from the inner editor on a non-leaf/non-editable origin.
  3. Call DOMEditor.toSlatePoint.

Expected Failing Assertion

  • point resolution should stay inside the current editor
  • it should not resolve to a node from the parent editor

Issue #5945

  • package: slate
  • TDD readiness: not-a-test-candidate
  • public test seam: large plaintext paste

Why Not A Direct Test Candidate

This is benchmark work, not correctness work.

Useful Extraction

  • large plain-text paste is a first-class benchmark workload
  • the thread already points at normalization and editor-validation overhead as the main suspects

Issue #5944

  • package: slate-react
  • TDD readiness: not-a-test-candidate
  • public test seam: none

Why Not A Direct Test Candidate

This is a pagination/layout capability question, not a current failing contract with a crisp red assertion.

Useful Extraction

  • keep it as a v2 requirements input around pagination and layout composition

Issue #5938

  • package: slate-dom and slate-react
  • TDD readiness: ready-now
  • public test seam: DOMEditor.findPath inside onChange

Minimal Repro Setup

  • DOM-backed editor
  • selector or callback that resolves a node path during onChange
  • structural edit that changes paths before render

Minimal Sequence

  1. Focus a node.
  2. Perform a structural edit such as Enter/split.
  3. Call DOMEditor.findPath inside the immediate onChange path.

Expected Failing Assertion

  • path lookup should return the new correct path
  • it should not throw or return stale/wrong paths before the next render

Notes

The workaround in-thread is useful, but the first red test should stay on public behavior, not on private cache timing internals.


Issue #5931

  • package: slate-dom and slate-react
  • TDD readiness: ready-with-minor-setup
  • public test seam: Windows suggestion acceptance replacing the active word prefix

Minimal Repro Setup

  • Windows suggestion bar available
  • editor with plain text input
  • accepted suggestion after typing a prefix

Minimal Sequence

  1. Type a short prefix like He.
  2. Accept a Windows suggestion such as Hello.

Expected Failing Assertion

  • the suggestion should replace the current word prefix
  • it should not append to produce HeHello

Current Blocker

The behavioral assertion is simple. The hard part is getting a reliable Windows suggestion harness.


Issue #5928

  • package: docs-only
  • TDD readiness: not-a-test-candidate
  • public test seam: none

Why Not A Direct Test Candidate

The thread already resolves the integration pattern: use input events, not keydown, on Android.

Useful Extraction

  • this belongs in maintainer reply/docs guidance, not in Slate regression tests

Issue #5924

  • package: slate-react
  • TDD readiness: not-a-test-candidate
  • public test seam: none

Why Not A Direct Test Candidate

The thread ends with the reporter saying they could not reproduce it cleanly in isolation.

Useful Extraction

  • keep it only as an advanced-layout capability note

Issue #5918

  • package: slate-dom and slate-react
  • TDD readiness: blocked-on-repro
  • public test seam: Windows Vietnamese IME word commit plus space

Minimal Repro Setup

  • Windows Vietnamese IME
  • word commit with accents
  • immediate space plus next-word typing

Expected Failing Assertion

  • committed word should not duplicate
  • deletion should still work normally after the commit

Current Blocker

The thread is too fuzzy. The reporter mentions one failure in their app and a different failure in the official example.