principle-test-behavior-not-implementation: listed matchers do not all pass when imports return undefined
Les mainteneurs répondent en général sous 1 jour
@Yi-111-a y travaille déjà.
Depuis le 1/10/2026.
Évaluation
- Difficulté
- 1/5
- Temps estimé
- Moins d'une heure
- Accessibilité débutants
- 88/100
- Type d'issue
- Documentation
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- javascript
- Domaine
- documentation
Piste de recherche
Commencez par pstack/skills/principle-test-behavior-not-implementation/SKILL.md, en particulier les lignes 15-18, et comparez chaque matcher listé avec le comportement indéfini présenté dans l’issue. Mettez à jour l’explication ou le regroupement afin que l’affirmation de comportement indéfini ne s’applique qu’aux matcher qui réussissent effectivement, tandis que les assertions faibles mais non-vacuous soient décrites avec précision.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Observed at commit 2eb7ed4613cfc8f098dfe464a23680ea44d84c5e: pstack/skills/principle-test-behavior-not-implementation/SKILL.md lines 15-18.
The skill's check is "would the test still pass if every function it imports returned undefined?" and it lists, as "Five shapes that still pass when every imported function returns undefined", assertions such as:
toBeDefined,toBeTruthy,toBeInstanceOf,toBeGreaterThan(0)toEqual([]),toHaveLength(0)
Problem
Several of these do not pass when the value is undefined:
expect(undefined).toBeDefined() // fails
expect(undefined).toBeTruthy() // fails
expect(undefined).toBeInstanceOf(Foo) // fails
expect(undefined).toBeGreaterThan(0) // throws (received value must be a number)
expect(undefined).toEqual([]) // fails
expect(undefined).toHaveLength(0) // throws (received value must have a length property)
They are weak assertions, but the stated reason ("still passes when every import returns undefined") is false for them, which can lead an agent following the rule to delete tests that do fail when the function breaks, or to distrust the check. (not.toThrow, toBeUndefined, not.toHaveBeenCalled and a missing expect do pass.)
Suggested fix
Describe the principle by what the test can detect rather than by matcher name: ask whether the assertion would still pass if the function returned a wrong but plausible value (an empty array, true, a different object). Either remove the matchers that fail on undefined from the list, or move them to a separate "weak but not vacuous" group with the accurate explanation, and keep the undefined claim only for the matchers that truly pass.
- Langage dominant
- TypeScript
- Étoiles
- 10.8k
- Forks
- 1k
- Merge moyen
- 12 h 59 min
- PR mergées (30 j)
- 107
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de cursor/plugins
-
create-plugin README documents a /create-plugin command that does not existPeut-être pris @lab1207 l’a pris il y a 15 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
cursor/plugins#475 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
cursor-sdk auth.md: non-null assertion described as a runtime missing-variable checkPeut-être pris @lab1207 l’a pris il y a 15 jours. Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
cursor/plugins#473 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
check-agent-compatibility: SKILL.md description has an unquoted colon, YAML parse failsPeut-être pris @rufushsu9987 l’a pris il y a 30 jours. Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 95/100
cursor/plugins#381 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
pstack: disable-model-invocation skills still have "Use only when user ..." agent instructionsPeut-être pris @rufushsu9987 l’a pris il y a 30 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
cursor/plugins#367 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Ralph Loop accepts an untagged response as a completion promisePeut-être pris @abhinavgautam01 l’a pris il y a 51 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
cursor/plugins#282 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de cursor/plugins
Issues similaires
-
backend priority:P3 privacy-fix
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
[Bug]: 【优化】对话消息底部增加发送时间展示Ouvertebug desktop v3 windows
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
esengine/DeepSeek-Reasonix#13697 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
area:security documentation effort:S priority:P2
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
Les mainteneurs répondent en général sous 1 jour
-
app:web meta:ops
Difficulté 2/5 Une demi-journée Accessibilité débutants 78/100
osu-tournament-rating/otr#1113 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100