96 lines
3.4 KiB
JavaScript
96 lines
3.4 KiB
JavaScript
export const setup = async function (config, store, chai) {
|
|
const expect = chai.expect
|
|
const icon = '🚀'
|
|
|
|
// Shared state
|
|
describe(`${icon} Initial setup of user accounts`, async function () {
|
|
step(`${icon} Should signup new user ${store.account.email}`, (done) => {
|
|
chai
|
|
.request(config.api)
|
|
.post('/signup')
|
|
.send({
|
|
email: store.account.email,
|
|
language: store.account.language,
|
|
unittest: true,
|
|
})
|
|
.end((err, res) => {
|
|
expect(res.status).to.equal(201)
|
|
expect(res.type).to.equal('application/json')
|
|
expect(res.charset).to.equal('utf-8')
|
|
expect(res.body.result).to.equal(`success`)
|
|
expect(res.body.email).to.equal(store.account.email)
|
|
store.account.confirmation = res.body.confirmation
|
|
done()
|
|
})
|
|
})
|
|
|
|
step(`${icon} Should confirm new user (${store.account.email})`, (done) => {
|
|
chai
|
|
.request(config.api)
|
|
.post(`/confirm/signup/${store.account.confirmation}`)
|
|
.send({ consent: 1 })
|
|
.end((err, res) => {
|
|
expect(res.status).to.equal(200)
|
|
expect(res.type).to.equal('application/json')
|
|
expect(res.charset).to.equal('utf-8')
|
|
expect(res.body.result).to.equal(`success`)
|
|
expect(typeof res.body.token).to.equal(`string`)
|
|
expect(typeof res.body.account.id).to.equal(`number`)
|
|
store.account.token = res.body.token
|
|
store.account.username = res.body.account.username
|
|
store.account.userid = res.body.account.id
|
|
done()
|
|
})
|
|
})
|
|
|
|
step(`${icon} Should create API Key`, (done) => {
|
|
chai
|
|
.request(config.api)
|
|
.post('/apikey/jwt')
|
|
.set('Authorization', 'Bearer ' + store.account.token)
|
|
.send({
|
|
name: 'Test API key',
|
|
level: 4,
|
|
expiresIn: 60,
|
|
})
|
|
.end((err, res) => {
|
|
expect(res.status).to.equal(201)
|
|
expect(res.type).to.equal('application/json')
|
|
expect(res.charset).to.equal('utf-8')
|
|
expect(res.body.result).to.equal(`created`)
|
|
expect(typeof res.body.apikey.key).to.equal('string')
|
|
expect(typeof res.body.apikey.secret).to.equal('string')
|
|
expect(typeof res.body.apikey.expiresAt).to.equal('string')
|
|
expect(res.body.apikey.level).to.equal(4)
|
|
store.apikey = res.body.apikey
|
|
done()
|
|
})
|
|
})
|
|
|
|
step(`${store.icon('user')} Should set the initial password`, (done) => {
|
|
chai
|
|
.request(config.api)
|
|
.put('/account/jwt')
|
|
.set('Authorization', 'Bearer ' + store.account.token)
|
|
.send({
|
|
password: store.account.password,
|
|
})
|
|
.end((err, res) => {
|
|
expect(res.status).to.equal(200)
|
|
expect(res.type).to.equal('application/json')
|
|
expect(res.charset).to.equal('utf-8')
|
|
expect(res.body.result).to.equal(`success`)
|
|
expect(res.body.account.email).to.equal(store.account.email)
|
|
expect(res.body.account.username).to.equal(store.account.username)
|
|
expect(res.body.account.lusername).to.equal(store.account.username.toLowerCase())
|
|
expect(typeof res.body.account.id).to.equal(`number`)
|
|
store.token = res.body.token
|
|
done()
|
|
})
|
|
})
|
|
})
|
|
}
|
|
|
|
export const teardown = async function (store) {
|
|
console.log(store)
|
|
}
|