You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
rap2-delos/test/helper.js

99 lines
2.7 KiB
JavaScript

/* global before, after */
const Random = require('mockjs').Random
module.exports = {
mockUsers: () => [{}, {}, {}, {}, {}].map(item => (
{
fullname: Random.cname(),
email: Random.email(),
password: Random.word(6)
}
)),
mockRepository: () => (
{
name: '测试用例_临时_' + Random.ctitle(6) + Math.random(),
description: Random.cparagraph(),
logo: Random.url()
}
),
prepare: (request, should, users, repository) => {
users.forEach((item, index) => {
before(done => {
request.post('/account/register').send(item).expect(200)
.end((err, res) => {
should.not.exist(err)
Object.assign(item, res.body.data)
done()
})
})
})
before(done => {
request.post('/account/login')
.send({ email: users[0].email, password: users[0].password })
.expect('Content-Type', /json/)
.expect(200)
.end((err, res) => {
should.not.exist(err)
let { data } = res.body
data.should.be.a('object').have.all.keys({ id: users[0].id, fullname: users[0].fullname, email: users[0].email })
done()
})
})
if (repository) {
before(done => {
request.post('/repository/create')
.send(
Object.assign(repository, {
organizationId: undefined,
memberIds: users.slice(2).map(item => item.id)
})
)
.expect('Content-Type', /json/)
.expect(200)
.end((err, res) => {
should.not.exist(err)
Object.assign(repository, res.body.data)
done()
})
})
after(done => {
request.get('/repository/remove')
.query({ id: repository.id })
.expect('Content-Type', /json/)
.expect(200)
.end((err, res) => {
should.not.exist(err)
res.body.data.should.eq(1)
done()
})
})
}
after(done => {
request.get('/account/logout')
.expect('Content-Type', /json/)
.expect(200)
.end((err, res) => {
should.not.exist(err)
done()
})
})
users.forEach((item, index) => {
after(done => {
request.get('/account/remove').query({ id: users[index].id }).expect(200)
.end((err, res) => {
should.not.exist(err)
res.body.data.should.eq(1)
done()
})
})
})
},
keys: {
pagination: ['cursor', 'limit', 'total']
},
excludes: {
user: ['password', 'create_date', 'update_date', 'delete_date', 'reserve'],
organization: [],
repository: ['create_date', 'update_date', 'delete_date', 'reserve']
}
}