import { simpleCopy, simpleEquals } from '../src/utils/helpers'; import { type Audit, type AuditMessage, buildMessage, buildMessageForJS, convertMessageToAudit, } from '../src/models/audit'; const auditMessageBuilds = [ buildMessage( 'integrationtest', 'flashman', '123123', 'cpe', ['aa:bb:cc:dd:ee:ff'], 'create', {wifi_name: 'mynet'}, ), buildMessage( 'integrationtest', 'flashman', '123123', 'cpe', ['aa:bb:cc:dd:ee:ff'], 'edit', {wifi_name: {old: 'mynet', new: 'best net'}}, ), buildMessage( 'integrationtest', 'flashman', '123123', 'cpe', ['aa:bb:cc:dd:ee:ff'], 'delete', undefined, ), buildMessage( 'integrationtest', 'flashman', '123123', 'cpe', ['aa:bb:cc:dd:ee:ff'], 'delete', ), buildMessage( 'integrationtest', 'flashman', '123123', 'cpe', ['aa:bb:cc:dd:ee:ff'], 'delete', {a: 10}, ), buildMessage( 'integrationtest', 'flashman', '123123', 'cpe', ['aa:bb:cc:dd:ee:ff'], 'trigger', {cmd: 'speedtest'}, ), buildMessage( 'integrationtest', 'flashman', '123123', 'user', ['1234455'], 'edit', {name: {old: 'previous name', new: 'next name'}}, ), buildMessageForJS( 'integrationtest', 'flashman', '123123', 'user', ['1234455'], 'edit', {name: {}, array: [{}, undefined], other: undefined}, ), ]; // creating an Array without any element being possibly an undefined. const auditMessages: AuditMessage[] = []; for (let i = 0; i < auditMessageBuilds.length; i++) { const [m, errmsg] = auditMessageBuilds[i]; if (errmsg) { console.log(`Error building test audit message ${i}: ${errmsg}`); process.exit(1); } if (m !== undefined) auditMessages.push(m); } let success = true; for (const message of auditMessages) { const copiedMessage = simpleCopy(message); const audit = convertMessageToAudit(copiedMessage); let key: keyof Audit; for (key in audit) { let before, after: any; switch (key) { case 'date': before = new Date(message.date).getTime(); after = audit.date.getTime(); break; default: before = message[key]; after = audit[key]; break; } if (!simpleEquals(before, after)) { success = false; console.log(`Converted audit did not have the same '${key}' as its original message.\n`+ `\tFrom`, before, `it became`, after); } } } export default success;