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

未关闭 适合新手
#154 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
78/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
领域
api, backend

调研方向

从 core/index.js 第 131–139 行附近开始,那里会对版本进行强制转换并读取其 major 属性;然后检查 core/test/errors.js 和 issue 中使用 fixture-server 的复现示例。确保 null 等格式错误的版本会被拒绝,并产生一条指出版本和 index URL 的错误;更新测试以验证该错误消息。

由索引模型根据 Issue 内容生成。

描述

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.

主要语言
JavaScript
星标
15
派生
2
平均合并
1 天 1 小时
30 天内合并 PR
60

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

cutenode/nodevu 的其他 Issue

查看 cutenode/nodevu 的全部 Issue

相似的 Issue

更多 JavaScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。