/* global describe, it, before */ let app = require('../dist/scripts/app').default let request = require('supertest').agent(app.listen()) let should = require('chai').should() let Random = require('mockjs').Random const { Property } = require('../dist/models') const { mockUsers, mockRepository, prepare } = require('./helper') describe('Property', () => { let users = mockUsers() let repository = mockRepository() prepare(request, should, users, repository) let mod = {} let itf = {} let property = {} before(done => { mod = repository.modules[0] itf = mod.interfaces[0] property = { scope: Random.pick(['request', 'response']), name: Random.word(6), type: Random.pick(['String', 'Number', 'Boolean', 'Object', 'Array', 'Function', 'RegExp']), rule: '', value: Random.pick(['@INT', '@FLOAT', '@TITLE', '@NAME']), description: Random.cparagraph(), parentId: -1, repositoryId: repository.id, moduleId: mod.id, interfaceId: itf.id } done() }) let validProperty = (property) => { property.should.be.a('object').have.all.keys( Object.keys(Property.rawAttributes) ) property.creatorId.should.be.a('number') property.repositoryId.should.be.a('number') property.moduleId.should.be.a('number') } it('/property/create', done => { request.post('/property/create') .send(property) .expect('Content-Type', /json/) .expect(200) .end((err, res) => { should.not.exist(err) validProperty(res.body.data) property = res.body.data done() }) }) it('/property/count', done => { request.get('/property/count') .expect('Content-Type', /json/) .expect(200) .end((err, res) => { should.not.exist(err) res.body.data.should.to.be.a('number') done() }) }) it('/property/list', done => { request.get('/property/list') .query({ interfaceId: itf.id }) .expect('Content-Type', /json/) .expect(200) .end((err, res) => { should.not.exist(err) let { data } = res.body data.should.be.a('array').have.length.within(1, 15) data.forEach(item => { validProperty(item) }) done() }) }) it('/property/get', done => { request.get('/property/get') .query({ id: property.id }) .expect('Content-Type', /json/) .expect(200) .end((err, res) => { should.not.exist(err) validProperty(res.body.data) done() }) }) it('/property/update', done => { request.post('/property/update') .send({ id: property.id, name: Random.word(6) }) .expect('Content-Type', /json/) .expect(200) .end((err, res) => { should.not.exist(err) res.body.data.should.eq(1) done() }) }) it('/property/remove', done => { request.get('/property/remove') .query({ id: property.id }) .expect('Content-Type', /json/) .expect(200) .end((err, res) => { should.not.exist(err) res.body.data.should.eq(1) done() }) }) })