Incorrect prototype check
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 38/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- À l'abandon
- Stack technique
- javascript, node.js
- Domaine
- testing
Piste de recherche
Reproduisez l’échec avec l’exemple Node fourni, puis examinez lib/index.js autour des lignes 139 et 239 ainsi que le paramètre comparePrototypes. Le travail est terminé lorsque la comparaison réussit sans erreur pour des objets imbriqués à prototype nul lorsque comparePrototypes vaut false.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Support plan
- is this issue currently blocking your project? yes
- is this issue affecting a production system? no
Context
- node version: 18.x
- module version with issue: 9.0.3
- last module version without issue: NA
- environment (e.g. node, browser, native): node
- used with
@hapi/[email protected] - any other relevant information: NA
What are you trying to achieve or the steps to reproduce?
The module does not ignore the prototype during a comparison.
const Code = require('@hapi/code');
const noProto = Object.create(null);
noProto.a = Object.create(null);
noProto.a.b = 1;
Code.settings.comparePrototypes = false;
Code.expect([noProto]).to.once.include({ a: { b: 1 } });
** By using simple objects {} the comparison works as expected.
What was the result you got?
/Users/manuel_spigolon/dev/misc/hapi/code/lib/index.js:139
throw error;
^
Error: Expected [ [Object: null prototype] { a: [Object: null prototype] { b: 1 } } ] to include { a: { b: 1 } } once
at internals.Assertion.internals.include (/Users/manuel_spigolon/dev/misc/hapi/code/lib/index.js:239:17)
at Object.<anonymous> (/Users/manuel_spigolon/dev/misc/hapi/code/asd.js:8:32)
at Module._compile (node:internal/modules/cjs/loader:1155:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1209:10)
at Module.load (node:internal/modules/cjs/loader:1033:32)
at Function.Module._load (node:internal/modules/cjs/loader:868:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:22:47 {
actual: undefined,
expected: undefined,
}
What result did you expect?
No error due to the default comparePrototypes = false setting
- Langage dominant
- JavaScript
- Étoiles
- 231
- Forks
- 75
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
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 hapijs/code
-
pass parameter to throwOuvertefeature
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 30/100
-
feature
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
Toutes les issues de hapijs/code
Issues similaires
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
capricorn86/happy-dom#2485 ·
Les mainteneurs répondent en général sous 2 jours
-
area:space-accuracy good first issue track:data
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Sara-Managed-Projects/space-radar#904 ·
Les mainteneurs répondent en général sous 1 jour