如何使用 Jest 测试 ID 是否是有效的 MongoDB 对象 ID?

How to test whether an ID is a valid MongoDB Object ID using Jest?

我是 javascript 的新手,遇到了这个问题。在 Google 上搜索解决方案后,我意识到 Whosebug 上没有这样的问题。在我找到解决方案后,我想在这里分享它以防它对某人有帮助。

我正在构建一个待办事项列表应用程序,其中使用用户名(电子邮件)、密码和出生日期字段创建用户。我正在使用 MongoDB 来存储用户和待办事项数据。创建用户后,他们可以使用用户名和密码登录应用程序。

当用户登录时,我需要从他们的用户名中获取他们的用户 ID。我用来获取用户 ID 的路径是 - /api/user/username/:username 我正在为 TDD 使用 Jest,所以我需要先为上述情况编写测试。

测试套件中不同测试用例的规范之一是:从用户名和 return 用户 ID 中获取 MongoDB ObjectID 格式的用户 ID。

如何检查用户 ID returned 是否为 MongoDB ObjectID 格式?

要使用 Jest 检查用户 ID 是否有效 MongoDB ObjectID,可以使用

expect(ObjectID.isvalid(userID)).toBeTruthy();

一个例子如下:

it(`must get userID when username is in valid email format & available in db and return userID in mongoDB ObjectID format`, async (done) => {
   const response = await request(app)
      .get(`/api/user/username/${username}`)
      .set({ "x-token-header": jwtToken })
      .send();
   const { body } = response;
   expect(ObjectID.isValid(body)).toBeTruthy();
   done();
});