test: adaptive cancellation assertion races before partial transition

Offen
#2,104 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
75/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Ruhig
Tech-Stack
typescript
Bereich
testing

Rechercherichtung

Beginne mit tests/browser-adaptive-exploration.test.ts, insbesondere mit der fehlschlagenden Assertion um Zeile 444, und führe npm run test:browser-accessibility-oracles aus, um die Race Condition zu reproduzieren. Verfolge die teilweise fehlgeschlagene Aktion und das Timing der Abbruchanforderung und synchronisiere dann den Abbruch mit dem vorgesehenen Zustand der laufenden Aktion statt mit einer festen Verzögerung von 250ms. Erledigt ist die Aufgabe, wenn die Assertion für den begrenzten, nicht wiederholbaren Nachweis deterministisch besteht, ohne den Produktionsvertrag für Nachweise abzuschwächen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Problem

The full adaptive browser gate can deterministically fail the test cancellation during a partially failed action retains bounded non-replayable evidence because its fixed 250ms abort fires before any error transition is recorded.

Reproduction

npm run test:browser-accessibility-oracles

Observed repeatedly on current origin/main plus PR #2099:

✖ cancellation during a partially failed action retains bounded non-replayable evidence
AssertionError: assert(failed)
  at tests/browser-adaptive-exploration.test.ts:444

The result is already incomplete/cancelled, but result.transitions.find((transition) => transition.status === \"error\") is undefined because cancellation wins the timing race before the intercepted repeat action reaches its expected partial failure.

Expected

The test should synchronize cancellation to the intended in-flight action state instead of using a fixed wall delay, then assert bounded non-replayable evidence deterministically.

Scope

Test synchronization only unless investigation shows runtime cancellation dropped an already-observed transition. Do not weaken the production evidence contract.

Vorherrschende Sprache
TypeScript
Sterne
19
Forks
4
Ø Merge
3 Std.
Gemergte PRs (30 T.)
20

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus Automattic/wp-codebox

Alle Issues in Automattic/wp-codebox

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.