module.exports = function tests(store, config, chai) { describe('Pattern endpoints', () => { it('should create a pattern', done => { chai .request(config.backend) .post('/patterns') .set('Authorization', 'Bearer ' + config.user.token) .send({ name: 'Test pattern', person: 'Someone', notes: 'Some notes', data: { test: 'value' } }) .end((err, res) => { res.should.have.status(200) let data = JSON.parse(res.text) data.name.should.equal('Test pattern') data.notes.should.equal('Some notes') data.data.test.should.equal('value') config.user.pattern = data.handle done() }) }) it('should update the pattern name', done => { chai .request(config.backend) .put('/patterns/' + config.user.pattern) .set('Authorization', 'Bearer ' + config.user.token) .send({ name: 'New name' }) .end((err, res) => { res.should.have.status(200) let data = JSON.parse(res.text) data.name.should.equal('New name') data.handle.should.equal(config.user.pattern) done() }) }) it('should update the pattern notes', done => { chai .request(config.backend) .put('/patterns/' + config.user.pattern) .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.notes.should.equal('These are the notes') data.handle.should.equal(config.user.pattern) done() }) }) it('should load the pattern data without authentication', done => { chai .request(config.backend) .get('/patterns/' + config.user.pattern) .end((err, res) => { res.should.have.status(200) let data = JSON.parse(res.text) data.notes.should.equal('These are the notes') data.handle.should.equal(config.user.pattern) done() }) }) it('should delete the pattern', done => { chai .request(config.backend) .delete('/patterns/' + config.user.pattern) .set('Authorization', 'Bearer ' + config.user.token) .end((err, res) => { res.should.have.status(204) done() }) }) it('should no longer have this pattern', done => { chai .request(config.backend) .get('/patterns/' + config.user.pattern) .set('Authorization', 'Bearer ' + config.user.token) .end((err, res) => { res.should.have.status(404) done() }) }) }) }