core throws a TypeError when index.json has a version semver can't read

Ouverte Adaptée aux débutants
#154 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

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

Personne n'a encore pris cette issue.

Évaluation

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

Piste de recherche

Commencez dans core/index.js vers les lignes 131–139, où la version est convertie et où sa propriété major est lue ; examinez ensuite core/test/errors.js et la reproduction avec fixture-server de l’issue. Faites en sorte que les versions mal formées, comme null, soient rejetées avec une erreur indiquant la version et l’URL de index, et mettez à jour les tests pour vérifier ce message.

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

Description

When index.json has a version that semver.coerce can't read (null, a string with no digits, an object), core rejects with TypeError: Cannot read properties of null (reading 'major') from core/index.js#L139. The comment above it at L131 assumes every version parses, so nothing checks for null.

The error doesn't say which entry or which URL was the problem, and core/test/errors.js only checks that core rejects, so the TypeError passes it.

Repro, with the fixture server:

const nodevu = require('@nodevu/core');
const { at } = require('@nodevu/fixtures');

await nodevu(at('2024-01-01', {
  index: [{ version: null, date: '2024-01-01', files: ['src'] }],
  schedule: {},
}));
// TypeError: Cannot read properties of null (reading 'major')

fast-check finds it in its first run, shrunk to version: null in an otherwise empty index.

core should reject with an error that names the version and the index URL instead.

Found while working on #153.

Langage dominant
JavaScript
Étoiles
15
Forks
2
Merge moyen
1 j 1 h
PR mergées (30 j)
60

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

  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 cutenode/nodevu

Toutes les issues de cutenode/nodevu

Issues similaires

Plus d'issues JavaScript

Recevez les nouvelles issues par e-mail

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