const should = require('should'); const shared = require('../'); describe('Frame', function () { it('constructor', function () { const frame = new shared.Frame(); Object.keys(frame).should.eql([ 'original', 'options', 'data', 'user', 'file', 'files', 'apiType', 'docName', 'method', 'response' ]); }); describe('fn: configure', function () { it('no transform', function () { const original = { context: {user: 'id'}, body: {posts: []}, params: {id: 'id'}, query: {include: 'tags', filter: 'type:post', soup: 'yumyum'} }; const frame = new shared.Frame(original); frame.configure({}); should.exist(frame.options.context.user); should.not.exist(frame.options.include); should.not.exist(frame.options.filter); should.not.exist(frame.options.id); should.not.exist(frame.options.soup); should.exist(frame.data.posts); }); it('transform with query', function () { const original = { context: {user: 'id'}, body: {posts: []}, params: {id: 'id'}, query: {include: 'tags', filter: 'type:post', soup: 'yumyum'} }; const frame = new shared.Frame(original); frame.configure({ options: ['include', 'filter', 'id'] }); should.exist(frame.options.context.user); should.exist(frame.options.include); should.exist(frame.options.filter); should.exist(frame.options.id); should.not.exist(frame.options.soup); should.exist(frame.data.posts); }); it('transform', function () { const original = { context: {user: 'id'}, options: { slug: 'slug' } }; const frame = new shared.Frame(original); frame.configure({ options: ['include', 'filter', 'slug'] }); should.exist(frame.options.context.user); should.exist(frame.options.slug); }); it('transform with data', function () { const original = { context: {user: 'id'}, options: { id: 'id' }, body: {} }; const frame = new shared.Frame(original); frame.configure({ data: ['id'] }); should.exist(frame.options.context.user); should.not.exist(frame.options.id); should.exist(frame.data.id); }); }); });