UNPKG

rtech-struct

Version:

Rtech Platform Superstruct Entity

98 lines (85 loc) 1.79 kB
const s = require('superstruct') const struct = require('../../structures/rels') describe('Rels object structure', () => { test('Success: Rels structure', () => { expect( s.is( { name: 'DEMO Express', key: 'DEMOEX', url: 'http://localhost:3005', autoinvite: true }, struct.rel ) ).toBeTruthy() expect( s.is( { key: 'DEMOEX' }, struct.rel ) ).toBeTruthy() const [error, value] = s.validate( { key: 'DEMOEX', timestamp: '2021-02-17T17:57:20.107Z', toto: 'because' }, struct.rel, { coerce: true, mask: true } ) expect(error).toBeUndefined() expect(value).toBeDefined() expect(value).toStrictEqual({ autoinvite: false, key: 'DEMOEX', name: 'DEMO', timestamp: '2021-02-17T17:57:20.107Z', visible: 'private' }) expect( s.is( [ { key: 'DEMOEX' }, { key: 'DEMOEX' }, { key: 'DEMOEX' } ], struct.rels ) ).toBeTruthy() expect(s.is([], struct.rels)).toBeTruthy() }) test('Fail: Rels structure fail', () => { let error = s.validate( { name: 'DEMO Express', key: 'DEMOEX', url: 'badurl', autoinvite: true }, struct.rel ) expect(error[0]).toHaveProperty('key', 'url') error = s.validate( { key: 'D' }, struct.rel ) expect(error[0]).toHaveProperty('key', 'key') error = s.validate(null, struct.rels) expect(error[0]).toBeDefined() expect(error[1]).toBeUndefined() }) })