state/test/priority.test.js

21 lines
826 B
JavaScript
Raw Normal View History

// test/priority.test.js
window.testPriority = async function() {
const { ___unsafeRefreshState, $, NewState } = ApigoState;
console.log('Testing directive priorities...');
// Test $if vs $text (if should hide text)
document.body.innerHTML = '<div id="prio-test" $if="state.hide" $text="state.msg"></div>';
const state = NewState({ hide: false, msg: 'visible' });
document.documentElement._thisObj = { state };
___unsafeRefreshState(document.documentElement);
if ($('#prio-test').textContent !== 'visible') throw new Error('Basic visibility failed');
state.hide = true;
await new Promise(r => setTimeout(r, 10));
if ($('#prio-test')) throw new Error('Priority $if failed: node should be removed');
console.log('priority.js tests passed');
return true;
}