memory: persistence EISDIR test fails on macOS (the path suffix depends on the platform, not the Node version)

Fermée Adaptée aux débutants
#5,162 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@ace-ify y travaille déjà.

Depuis le 19/10/2026.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
83/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
node.js, typescript
Domaine
testing

Piste de recherche

Lis src/memory/__tests__/persistence.test.ts, en particulier le test "reports a graph file that cannot be read as a tool error" et l’attente basée sur la version introduite par #5076. Exécute npm test -w src/memory -- __tests__/persistence.test.ts pour reproduire l’échec sous Node 26.7. Mets à jour l’assertion afin qu’elle accepte le simple message EISDIR ou ce message suivi du chemin du fichier, puis confirme que le test passe.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

bug server-memory v2

Problem

src/memory/__tests__/persistence.test.ts, "reports a graph file that cannot be read as a tool error", fails again locally, this time on Node 26.7.0 (macOS), so npm run local:gate exits 1 on a machine whose default Node is 26.7:

Expected: "EISDIR: illegal operation on a directory, read '/var/folders/.../memory.jsonl'"
Received: "EISDIR: illegal operation on a directory, read"

#5076 made the expectation follow the Node major: the path appended on >= 26, the bare message before. That matched the Node 26 release #5076 was filed against, but Node 26.7.0 no longer appends the path:

$ node -v && node -e 'require("fs").promises.readFile("/tmp").catch(e=>console.log(e.message))'
v26.7.0
EISDIR: illegal operation on a directory, read

CI's Node 26 leg (#5068) passes on v2/main, so the format differs by Node minor (or platform), not by major. The server is correct on every version: it returns an isError result carrying Node's message. Only the test's expectation is wrong.

Found while running the gate for #5161, on v2/main at 38569bd5.

Reproduce

On Node 26.7.0, on v2/main:

npm ci
npm test -w src/memory -- __tests__/persistence.test.ts

1 failed. Passes on Node 22.

Change

Stop keying the expectation on the Node version. Assert the message is exactly the bare text, or the bare text followed by '<filePath>': for example expect([bare, \${bare} '${filePath}'`]).toContain(textOf(result))`. That still pins the full text the client receives, and holds whichever form the running Node produces.

Langage dominant
TypeScript
Étoiles
91.7k
Forks
11.9k
Merge moyen
3 h 30 min
PR mergées (30 j)
204

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de modelcontextprotocol/servers

Toutes les issues de modelcontextprotocol/servers

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.