const should = require('should'); const shared = require('../../../../../../core/server/api/shared'); describe('Unit: v2/utils/serializers/input/all', function () { describe('all', function () { it('transforms into model readable format', function () { const apiConfig = {}; const frame = { original: { include: 'tags', fields: 'id,status', formats: 'html' }, options: { include: 'tags', fields: 'id,status', formats: 'html', context: {} } }; shared.serializers.input.all.all(apiConfig, frame); should.exist(frame.original.include); should.exist(frame.original.fields); should.exist(frame.original.formats); should.not.exist(frame.options.include); should.not.exist(frame.options.fields); should.exist(frame.options.formats); should.exist(frame.options.columns); should.exist(frame.options.withRelated); frame.options.withRelated.should.eql(['tags']); frame.options.columns.should.eql(['id','status','html']); frame.options.formats.should.eql(['html']); }); describe('extra allowed internal options', function () { it('internal access', function () { const frame = { options: { context: { internal: true }, transacting: true, forUpdate: true } }; const apiConfig = {}; shared.serializers.input.all.all(apiConfig, frame); should.exist(frame.options.transacting); should.exist(frame.options.forUpdate); should.exist(frame.options.context); }); it('no internal access', function () { const frame = { options: { context: { user: true }, transacting: true, forUpdate: true } }; const apiConfig = {}; shared.serializers.input.all.all(apiConfig, frame); should.not.exist(frame.options.transacting); should.not.exist(frame.options.forUpdate); should.exist(frame.options.context); }); }); }); });