1
0
Fork 0
freesewing/packages/backend/tests/person.test.js

196 lines
6 KiB
JavaScript
Raw Normal View History

module.exports = function tests(store, config, chai) {
const should = chai.should()
describe('Person endpoints', () => {
it('should create a person', done => {
chai
.request(config.backend)
.post('/people')
.set('Authorization', 'Bearer ' + config.user.token)
.send({
name: 'Test person',
units: 'imperial',
breasts: true
})
.end((err, res) => {
res.should.have.status(200)
let data = JSON.parse(res.text)
data.person.breasts.should.be.true
data.person.units.should.equal('imperial')
data.person.name.should.equal('Test person')
data.person.pictureUris.xs
.split('/')
.pop()
.should.equal(data.person.handle + '.svg')
config.user.person = data.person.handle
done()
})
})
it('should update the person name', done => {
chai
.request(config.backend)
.put('/people/' + config.user.person)
.set('Authorization', 'Bearer ' + config.user.token)
.send({
name: 'New person name'
})
.end((err, res) => {
res.should.have.status(200)
let data = JSON.parse(res.text)
data.person.name.should.equal('New person name')
data.person.handle.should.equal(config.user.person)
done()
})
})
it('should update the person chest', done => {
chai
.request(config.backend)
.put('/people/' + config.user.person)
.set('Authorization', 'Bearer ' + config.user.token)
.send({
breasts: 'false'
})
.end((err, res) => {
res.should.have.status(200)
let data = JSON.parse(res.text)
data.person.breasts.should.be.false
data.person.handle.should.equal(config.user.person)
done()
})
})
it('should update the person units', done => {
chai
.request(config.backend)
.put('/people/' + config.user.person)
.set('Authorization', 'Bearer ' + config.user.token)
.send({
units: 'metric'
})
.end((err, res) => {
res.should.have.status(200)
let data = JSON.parse(res.text)
data.person.units.should.equal('metric')
data.person.handle.should.equal(config.user.person)
done()
})
})
it('should update the person notes', done => {
chai
.request(config.backend)
.put('/people/' + config.user.person)
.set('Authorization', 'Bearer ' + config.user.token)
.send({
notes: 'These are the notes'
})
.end((err, res) => {
res.should.have.status(200)
let data = JSON.parse(res.text)
data.person.notes.should.equal('These are the notes')
data.person.handle.should.equal(config.user.person)
done()
})
})
it('should update the person measurements', done => {
chai
.request(config.backend)
.put('/people/' + config.user.person)
.set('Authorization', 'Bearer ' + config.user.token)
.send({
measurements: {
shoulderToShoulder: 456,
neck: 345
}
})
.end((err, res) => {
res.should.have.status(200)
let data = JSON.parse(res.text)
data.person.measurements.shoulderToShoulder.should.equal(456)
data.person.measurements.neck.should.equal(345)
data.person.handle.should.equal(config.user.person)
done()
})
})
it('should not set a non-existing measurement', done => {
chai
.request(config.backend)
.put('/people/' + config.user.person)
.set('Authorization', 'Bearer ' + config.user.token)
.send({
measurements: {
hairLength: 12
}
})
.end((err, res) => {
res.should.have.status(200)
let data = JSON.parse(res.text)
should.not.exist(data.person.measurements.hairLength)
data.person.measurements.shoulderToShoulder.should.equal(456)
data.person.measurements.neck.should.equal(345)
data.person.handle.should.equal(config.user.person)
done()
})
})
it('should update the person avatar', done => {
chai
.request(config.backend)
.put('/people/' + config.user.person)
.set('Authorization', 'Bearer ' + config.user.token)
.send({
picture: config.avatar
})
.end((err, res) => {
res.should.have.status(200)
let data = JSON.parse(res.text)
data.person.measurements.shoulderToShoulder.should.equal(456)
data.person.measurements.neck.should.equal(345)
data.person.handle.should.equal(config.user.person)
done()
})
})
it('should load the person data', done => {
chai
.request(config.backend)
.get('/people/' + config.user.person)
.set('Authorization', 'Bearer ' + config.user.token)
.end((err, res) => {
res.should.have.status(200)
let data = JSON.parse(res.text)
data.person.measurements.shoulderToShoulder.should.equal(456)
data.person.measurements.neck.should.equal(345)
data.person.handle.should.equal(config.user.person)
done()
})
})
it('should delete the person', done => {
chai
.request(config.backend)
.delete('/people/' + config.user.person)
.set('Authorization', 'Bearer ' + config.user.token)
.end((err, res) => {
res.should.have.status(204)
done()
})
})
it('should no longer have this person', done => {
chai
.request(config.backend)
.get('/people/' + config.user.person)
.set('Authorization', 'Bearer ' + config.user.token)
.end((err, res) => {
res.should.have.status(404)
done()
})
})
})
}