资讯动态

330个测试、0个mock:keslr_connect测试哲学、冒烟脚本与开源贡献指南

发布时间:2026/10/14 15:02:59 来源:尧图企业网站定制
【免费下载链接】keslr_connectConnect your service to Keslr: sign in with Keslr and read the verification claim that proves a user is a real, vouched-for human — plus run services reachable only by Keslr members.项目地址https://gitcode.com/gh_mirrors/ke/keslr_connect点击查看免费下载keslr_connect 是帮助开发者把服务接入 Keslr 邀请制网络的 TypeScript 工具包支持Sign in with KeslrOIDC 登录、读取证明用户是真实且被担保的真人的 verification claim还能搭建只对 Keslr 成员开放的专属服务。本文带你读懂它330 个测试、0 个 mock的测试哲学、零凭据冒烟脚本以及一份可直接上手的开源贡献指南。 先认识项目3 个包 1 个示例仓库采用 npm workspaces 组织结构非常清晰模块包名作用packages/auth/keslr/authOIDC 依赖方Relying Party零运行时依赖packages/express/keslr/expressExpress 路由与守卫免去手写回调packages/network/keslr/network把 Keslr 内网地址解析成成员身份examples/guestbook/示例应用一个完整可用的签名簿测试方面15 个*.test.ts文件覆盖三个包npm test一次跑出 330 个用例——其中 packages/auth/test/tokens.test.ts 一个文件就贡献了 35 个是整个项目的安全心脏。 测试哲学为什么坚持0 个 mock真实 RSA 密钥与真实签名多数项目的做法是用假数据骗过密码学层而 keslr_connect 明确反对。测试助手 packages/auth/test/helpers/keys.ts 会生成真实的 2048 位 RSA 密钥对并签发真实的 RS256 签名让测试走的是与生产完全相同的代码路径。文件头注释写得很直白一个把签名验证 stub 掉的测试套件根本无法告诉你签名验证到底能不能工作。助手甚至提供了forgeUnsignedToken()keys.ts#L107-L122这类攻击者工具用来构造alg: none的伪造令牌专门验证防线是否真的存在。测试即规格删掉任何一行校验必有一个测试变红tokens.test.ts 的注释规定了这条铁律删掉 tokens.ts 中的任意单条校验至少有一个测试会失败。这意味着测试与校验逻辑一一对应、互相锁定——想改验证逻辑先让测试替你把风险说清楚。mock 只出现在 HTTP 边界那 mock 就完全没有吗不是。项目把 mock 严格限制在网络这一层而且做得相当讲究createMockFetchkeys.ts#L174-L206提供一张路由表未映射的 URL 返回 404 而不是抛错——测试如果意外打到了真实网络会以断言失败暴露而不是卡死超时Express 集成测试packages/express/test/router.test.ts起真实的 Express 服务、监听真实临时端口、用fetch驱动完整登录流程唯一被扮演的是 Keslr 本身——一个用真 RSA 密钥签 token 的 stub provider。路由挂载、Cookie 跨重定向存活、Session 存储这些真正容易坏的东西全都在真实 HTTP 里被验证。最后由 vitest.config.ts 的覆盖率门槛兜底语句 85%、分支 80%、函数 85%、行 85%CI 不达标直接卡住。 冒烟脚本一条命令验证线上还是不是文档说的那样node scripts/smoke.mjsscripts/smoke.mjs 是这个仓库里最反直觉的测试不需要任何凭据却在每次 push 时直连真实线上环境。它做两件事smoke.mjs#L23-L46拉取线上 OIDC discovery 文档确认authorization_endpoint、token_endpoint、jwks_uri都存在拉取 JWKS确认签名密钥仍在正常发布。它捕获的是启动套件最怕的失败服务商迁移了、文档过时了——也就是README 开始说谎。而它已经证明过自己的价值文档里曾写错过 issuer URL冒烟脚本第一次运行就红了。️ 开源贡献指南从 clone 到 PR一键安装与本地测试步骤要求 Node 20.19 及以上见 package.jsongit clone https://gitcode.com/gh_mirrors/ke/keslr_connect cd keslr_connect npm install npm testPR 前必跑的 4 条命令CI 会在 Node 20 和 Node 22 上跑全套所以本地先跑一遍更省心CONTRIBUTING.mdnpm run typecheck npm run lint npm run format npm test维护者想要什么Yes please 清单 Bug 修复——必须附带一个修复前会失败的测试 其他框架的适配器Fastify、Hono、Koa、Next.js 文档改进尤其是曾让你困惑的错误信息 更好的错误提示。先讨论再动手Discuss first 清单给keslr/auth增加运行时依赖——它现在是零依赖这是刻意为之任何改变安全姿态的改动公开 API 变更。安全相关改动红线有几条行为故意不可配置CONTRIBUTING.md改动前请先开 issue 说明你的威胁模型PKCE 永远开启且只支持 S256alg头从不被信任RS256 硬编码Token 交换从不重试授权码是一次性的未知验证状态一律归一为unverifiedfail closedX-Forwarded-For默认忽略。理由一句话总结得极好一个会 fail open 的开关选项就是披着配置外衣的漏洞。提 Bug 与报告漏洞报 Bug附上错误code、包版本、Node 版本和最小复现并抹掉 token——任何看到 issue 的人都能解码它报安全漏洞不要开公开 issue按 SECURITY.md 走邮件渠道**范围、响应时限都写得明明白白。✅ 小结keslr_connect 的测试实践可以浓缩成三句话密码学层用真实密钥mock 只碰 HTTP 边界线上行为交给冒烟脚本盯梢。如果你正想参与一个把测试即规格当工程信条维护的开源项目这份贡献指南和它的 330 个测试就是最现成的教材。赞分享【免费下载链接】keslr_connectConnect your service to Keslr: sign in with Keslr and read the verification claim that proves a user is a real, vouched-for human — plus run services reachable only by Keslr members.项目地址https://gitcode.com/gh_mirrors/ke/keslr_connect点击查看免费下载相关推荐Wechaty 测试体系实战指南从 npm test 到 377 个冒烟测试用例的深度解析Wechaty 测试体系实战指南从 npm test 到 377 个冒烟测试用例的深度解析 本指南以仓库中的 tests/README.md https://后端即时通讯从ScanNet到EmbodiedScan具身AI 3D感知数据集与基准的演进之路从ScanNet到EmbodiedScan具身AI 3D感知数据集与基准的演进之路 当机器人在真实房间里自主行走时它需要像人类一样回答我看到了什么桌子Electron 源码仓库测试指南Lint 与单元测试、Node.js 冒烟测试及多显示器测试全攻略Electron 源码仓库测试指南Lint 与单元测试、Node.js 冒烟测试及多显示器测试全攻略 Electron 官方源码仓库为自身庞大的代码面 li桌面应用跨平台前端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑