UNPKG

structure-event-collector

Version:
170 lines (113 loc) 3.27 kB
import express from 'express' import Plugin from '../../src/index' import request from 'supertest-as-promised' const props = { Controller: class RootController { constructor(options = {}) { this.name = options.name } }, Model: class RootModel { create(pkg = {}) { return Promise.resolve(pkg) } deleteById(id) { return Promise.resolve({ id, deleted: true }) } getAll() { return Promise.resolve([]) } getById(id) { return Promise.resolve({id}) } updateById(id, pkg = {}) { return Promise.resolve(Object.assign(pkg, {id})) } } } describe.skip('Plugin', function() { it('should initialize', function() { const plugin = new Plugin(props) expect(plugin.routeName).to.equal('events') }) it('should create an event', async function() { const plugin = new Plugin(props) const route = `/${plugin.routeName}` const server = express() server.use(route, plugin.routes) const res = await request(server) .post('/events') .send({ label: 'click' }) const event = res.body.pkg expect(event).to.be.an('object') }) it('should get an event by Id', async function() { const plugin = new Plugin(props) const route = `/${plugin.routeName}` const server = express() server.use(route, plugin.routes) const res = await request(server) .post('/events') .send({ label: 'click' }) const event = res.body.pkg const res2 = await request(server).get(`/events/${event.id}`) const event2 = res2.body.pkg expect(event2).to.be.an('object') }) it('should get all events', async function() { const plugin = new Plugin(props) const route = `/${plugin.routeName}` const server = express() server.use(route, plugin.routes) const res = await request(server).get('/events') const events = res.body.pkg.events expect(events).to.be.an('array') }) it('should update an event by Id', async function() { const plugin = new Plugin(props) const route = `/${plugin.routeName}` const server = express() server.use(route, plugin.routes) const res = await request(server) .post('/events') .send({ label: 'click' }) const event = res.body.pkg const res2 = await request(server) .patch(`/events/${event.id}`) .send({ label: 'touch' }) const res3 = await request(server).get(`/events/${event.id}`) const event2 = res3.body.pkg expect(event2).to.be.an('object') }) it('should delete an event by Id', async function() { const plugin = new Plugin(props) const route = `/${plugin.routeName}` const server = express() server.use(route, plugin.routes) const res = await request(server) .post('/events') .send({ label: 'click' }) const event = res.body.pkg const res2 = await request(server) .patch(`/events/${event.id}`) .send({ label: 'touch' }) const res3 = await request(server).delete(`/events/${event.id}`) const event2 = res3.body.pkg expect(event2.deleted).to.be.true }) })