import { simpleCopy, simpleEquals } from '../src/utils/helpers'; import { type User, type UserMessage, buildMessage, convertMessageToUser, } from '../src/models/user'; const userSyncBuilds = [ buildMessage('anlix', 'flashman', '123345', 'a user name'), ]; // creating an Array without any element being possibly an undefined. const userSyncs: UserMessage[] = []; for (let i = 0; i < userSyncBuilds.length; i++) { const [m, errmsg] = userSyncBuilds[i] if (errmsg) { console.log(`Error building test user sync ${i}: ${errmsg}`); process.exit(1); } if (m !== undefined) userSyncs.push(m); } let success = true; for (const userSync of userSyncs) { const copiedUserMessage = simpleCopy(userSync); const user = convertMessageToUser(copiedUserMessage, new Date()); let key: keyof User; for (key in user) { if (key === 'last_update') { if (!user[key] || user[key].constructor !== Date) console.log(`Converted User did not have valid a '${key}' attribute. Found`, user[key]); continue; } const before = userSync[key]; const after = user[key]; if (!simpleEquals(before, after)) { success = false; console.log(`Converted User did not have the same '${key}' as its original user sync.\n`+ `\tFrom`, before, `it became`, after); } } } export default success;