Back to Plate

Slate v2 Test Candidate Map: 5655-5559

docs/slate-issues/test-candidate-map/5655-5559.md

53.0.68.3 KB
Original Source

Slate v2 Test Candidate Map: 5655-5559

Scope

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


Issue #5655

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

Why Not A Direct Test Candidate

This is consumer setup failure around initialValue, not Slate behavior.


Issue #5653

  • package: slate-dom and slate-react
  • TDD readiness: ready-with-minor-setup
  • public test seam: Windows Chrome Microsoft IME blur duplication

Minimal Repro Setup

  • Windows Chrome
  • Microsoft IME
  • compose text then blur

Expected Failing Assertion

  • composition text should not be duplicated after focus loss

Issue #5647

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

Why Not A Direct Test Candidate

This likely depends on invalid document shape and outdated usage, not a stable current contract.


Issue #5643

  • package: slate-dom and slate-react
  • TDD readiness: ready-with-minor-setup
  • public test seam: Android autocomplete replacement duplicates prefix

Minimal Repro Setup

  • Android browser and keyboard autocomplete
  • type short prefix
  • accept suggestion

Expected Failing Assertion

  • accepted autocomplete should replace the prefix instead of appending after it

Issue #5639

  • package: slate-dom and slate-react
  • TDD readiness: ready-with-minor-setup
  • public test seam: iPhone Persian typing scroll jump

Minimal Repro Setup

  • iPhone Safari
  • Persian or RTL input
  • type past the first word

Expected Failing Assertion

  • typing should not scroll the editor out of view on every character

Issue #5634

  • package: ecosystem
  • TDD readiness: not-a-test-candidate
  • public test seam: clipboard style retention from external docs

Why Not A Direct Test Candidate

This is too parser-scope and ecosystem-specific to be a good default red test.


Issue #5632

  • package: slate-dom and slate-react
  • TDD readiness: ready-now
  • public test seam: adjacent inline badge delete caret

Minimal Repro Setup

  • two adjacent inline badges
  • place caret after them
  • backspace one badge

Expected Failing Assertion

  • caret should remain visibly valid and continue deleting predictably

Issue #5630

  • package: slate
  • TDD readiness: ready-now
  • public test seam: select-all paste over trailing image block

Minimal Repro Setup

  • document ending in block void plus empty paragraph tail
  • select all
  • insert fragment from another editor

Expected Failing Assertion

  • the original trailing block should be fully replaced instead of surviving the paste

Issue #5629

  • package: slate
  • TDD readiness: ready-now
  • public test seam: word navigation over punctuation

Minimal Repro Setup

  • plaintext with punctuation and brackets
  • word-jump navigation

Expected Failing Assertion

  • cursor word jumps should match expected punctuation boundaries

Issue #5628

  • package: slate-dom and slate-react
  • TDD readiness: ready-with-minor-setup
  • public test seam: browser writing-direction DOM mutation

Minimal Repro Setup

  • mentions or inline-void example
  • trigger browser writing-direction command

Expected Failing Assertion

  • direction changes should not corrupt the DOM mapping or crash the editor

Issue #5617

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

Why Not A Direct Test Candidate

This is stale repo/tooling cleanup, not behavior work.


Issue #5616

  • package: slate-dom
  • TDD readiness: ready-with-minor-setup
  • public test seam: copy Slate rich text with empty lines into Word

Minimal Repro Setup

  • rich text with empty paragraph
  • copy from Slate
  • inspect clipboard/export result

Expected Failing Assertion

  • exported clipboard content should preserve the empty line semantics

Issue #5612

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

Why Not A Direct Test Candidate

This is docs/example quality, not runtime behavior.


Issue #5611

  • package: slate-dom and slate-react
  • TDD readiness: ready-now
  • public test seam: soft break then reversed typing in Chrome

Minimal Repro Setup

  • formatted text at line end
  • insert soft break
  • continue typing in Chrome

Expected Failing Assertion

  • typed text should appear in normal order after the soft break

Issue #5605

  • package: slate-react
  • TDD readiness: not-a-test-candidate
  • public test seam: overlaps #6013

Why Not A Direct Test Candidate

This is the same API-gap seam already better captured by #6013.


Issue #5603

  • package: slate-react
  • TDD readiness: ready-with-minor-setup
  • public test seam: onInput at offset 0

Minimal Repro Setup

  • attach onInput
  • type at start of editable
  • compare with typing in middle

Expected Failing Assertion

  • onInput should fire at offset 0 the same way it does elsewhere

Issue #5600

  • package: slate-react
  • TDD readiness: blocked-on-repro
  • public test seam: consecutive deletion of custom approved components

Current Blocker

The issue never defines the component shape well enough to produce a trustworthy red test.


Issue #5599

  • package: slate-hyperscript
  • TDD readiness: ready-now
  • public test seam: custom hyperscript shorthand typing

Minimal Repro Setup

  • createHyperscript with custom shorthand tags
  • TypeScript compile check

Expected Failing Assertion

  • typed custom shorthand calls should compile without unsafe casts

Issue #5592

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

Why Not A Direct Test Candidate

The actual leak claim is still too murky. This needs proof, not red-green theatre.


Issue #5588

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

Why Not A Direct Test Candidate

This is adapter demand, not a failing current contract.


Issue #5587

  • package: slate-history
  • TDD readiness: ready-with-minor-setup
  • public test seam: Grammarly suggestion undo granularity

Minimal Repro Setup

  • external multi-location text replacement sequence
  • undo through history

Expected Failing Assertion

  • distinct accepted suggestions should not collapse into one undo step

Issue #5582

  • package: slate
  • TDD readiness: ready-now
  • public test seam: consecutive non-inline void delete selection

Minimal Repro Setup

  • consecutive block void nodes
  • select one in the middle
  • repeatedly delete backward

Expected Failing Assertion

  • selection should move to the correct surviving neighbor instead of sticking to the old path

Issue #5569

  • package: slate-dom and slate-react
  • TDD readiness: ready-with-minor-setup
  • public test seam: TextExpander replacement on Edge

Minimal Repro Setup

  • Chromium on Windows
  • external text expansion replacement

Expected Failing Assertion

  • full abbreviation should be replaced instead of partially surviving after expansion

Issue #5568

  • package: slate-react
  • TDD readiness: ready-with-minor-setup
  • public test seam: ReactEditor.focus with empty initial value

Minimal Repro Setup

  • empty initial value
  • replace editor.children
  • call ReactEditor.focus

Expected Failing Assertion

  • focusing should not blank the editor after content replacement

Issue #5559

  • package: slate-dom and slate-react
  • TDD readiness: ready-now
  • public test seam: shift-click through void element selection

Minimal Repro Setup

  • text plus void element
  • extend selection with Shift-click across the void boundary

Expected Failing Assertion

  • selection should extend predictably instead of resetting or corrupting

Pilot Take

This artifact is worth keeping.

Why:

  • it forces a clean distinction between triage and implementation
  • it exposes which issues are actually test-ready
  • it prevents later TDD work from degenerating into “go reread GitHub and guess”

One useful rule became obvious immediately:

  • not-a-test-candidate is legitimate for architecture issues
  • that is better than forcing every issue into fake test language