UNPKG

@seanox/aspect-js

Version:

full stack JavaScript framework for SPAs incl. reactivity rendering, mvc / mvvm, models, expression language, datasource, routing, paths, unit test and some more

78 lines (74 loc) 2.16 kB
<!DOCTYPE HTML> <html> <head> <meta charset="ISO-8859-1"> <title>Seanox aspect-js test environment</title> <style> body { font-family: monospace; white-space: pre; } </style> <script src="aspect-js.js"></script> <script type="text/javascript"> Test.activate(); const snapshots = []; Composite.listen(Composite.EVENT_RENDER_END, () => { const snapshot = document.body.textContent.trim(); snapshots.push(snapshot); const count = document.querySelectorAll("script[type=\"text/test\"]").length; if (snapshots.length === count) Test.start(); if (snapshots.length >= count) Assert.assertEquals("expected {1} steps but was {2}", count, snapshots.length); }); Test.create({test() { snapshots.forEach((snapshot, index) => { console.log(`Test based on script #${index +1}`); Assert.assertSameText(document.querySelectorAll("script[type='text/test']")[index].textContent, snapshot); }); }}); const modelA = { valueA: "aaabbb" }.reactive(); const modelB = modelA.reactive(); window.setTimeout(() => {modelB.valueA = "a2b4c6d8e0";}, 1000); </script> <script type="text/test"> _A_aaabbb_ _B_aaabbb_ _C_AAABBB_ _D_bb_ </script> <script type="text/test"> _A_a2b4c6d8e0_ _B_aaabbb_ _C_AAABBB_ _D_bb_ </script> <script type="text/test"> _A_a2b4c6d8e0_ _B_a2b4c6d8e0_ _C_AAABBB_ _D_bb_ </script> <script type="text/test"> _A_a2b4c6d8e0_ _B_a2b4c6d8e0_ _C_A2B4C6D8E0_ _D_bb_ </script> <script type="text/test"> _A_a2b4c6d8e0_ _B_a2b4c6d8e0_ _C_A2B4C6D8E0_ _D_c6d8e0_ </script> </head> <body> _A_{{modelA.valueA}}_ _B_{{modelA.valueA}}_ _C_{{modelA.valueA.toUpperCase()}}_ _D_{{modelA.valueA.substring(4)}}_ </body> </html>