为了账号安全,请及时绑定邮箱和手机立即绑定

用jest做测试的时候怎么模拟koa-session中的ctx.session信息?

用jest做测试的时候怎么模拟koa-session中的ctx.session信息?

神不在的星期二 2018-12-23 22:27:10
在学习用 jest 对 api 做测试的时候,遇到了这个函数:const checkHasLogin = async (ctx, next) => {  if (ctx.session.userName) {     ctx.body = {       success: true,       msg: ctx.session.userName     }   } else {     ctx.body = {       success: false,       msg: ''     }   } }其中 ctx.session 是:// app.jsconst session = require('koa-session')const CONFIG = {   key: 'koa:todo',   maxAge: 86400000,   overwrite: true,   httpOnly: true,   signed: true,   rolling: false,   renew: false} app.use(session(CONFIG, app))想问下有什么方法可以模拟这个 ctx.session 的么。。。// 不知道怎么模拟了。。。test('user login if session.userName is exist', async () => {  const res = await request(app.callback())     .get('/api/login/hasLogin')   expect(res.body.success).toBe(true) })
查看完整描述

1 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

test('user login if session.userName is exist', async () => {
    const res = await request(app.callback())
      .get('/api/login/hasLogin')
      .set('cookie', 'koa:todo=eyJ1c2VyTmFtZSI6Imhpd29ybGQiLCJfZXhwaXJlIjoxNTQzNzM5NjU1ODkwLCJfbWF4QWdlIjo4NjQwMDAwMH0=; koa:todo.sig=Op3Ik5vbgl-IsFuGC8i_u6MRgyk')
    expect(res.body.success).toBe(true)
  })

造一个测试用的 cookie,解决了...

查看完整回答
反对 回复 2018-12-23
  • 1 回答
  • 0 关注
  • 883 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信