const ejs = require('ejs'); const path = require('path'); (async ()=>{ try{ const cwd = process.cwd(); const viewsDir = path.join(cwd,'src','server','views'); const pageFile = path.join(viewsDir,'pages','dashboard.ejs'); const layoutFile = path.join(viewsDir,'layouts','layout.ejs'); const mockRoles = [ { id: '111', name: 'Admin', color: '#ff0000' }, { id: '222', name: 'Mods', color: '#00ff00' }, ]; const locals = { appName: 'amayo', user: { username: 'test', id: '1' }, guilds: [], selectedGuild: 'guild1', selectedGuildId: 'guild1', selectedGuildName: 'Guild One', guildConfig: { staff: ['111'] }, guildRoles: mockRoles, useDashboardNav: true, hideNavbar: false, page: 'settings' }; const pageBody = await ejs.renderFile(pageFile, locals, { async: true, views:[viewsDir] }); const html = await ejs.renderFile(layoutFile, {...locals, body: pageBody, dashboardNav: null, navbar: null, title: 'Dashboard test', version: 'test'}, { async: true, views:[viewsDir] }); const hasAdmin = html.indexOf('Admin') !== -1; const hasMods = html.indexOf('Mods') !== -1; const hasSwatch = html.indexOf('background:#ff0000') !== -1 || html.indexOf('background:#00ff00') !== -1; console.log({ hasAdmin, hasMods, hasSwatch, length: html.length }); process.exit(hasAdmin && hasMods && hasSwatch ? 0 : 2); }catch(err){ console.error(err && err.stack ? err.stack : err); process.exit(3); } })();