@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
64 lines (58 loc) • 1.98 kB
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 TestModel = {};
TestModel.ticks = 0;
TestModel.ping = () => {
return ++TestModel.ticks + "-" + "{{TestModel.ping()}}";
};
Test.create({test() {
try {Assert.assertSameTo("script[type='text/test-1']", document.body.innerHTML);
} catch (exception) {
try {Assert.assertSameTo("script[type='text/test-2']", document.body.innerHTML);
} catch (exception) {
throw exception;
}
}
}});
Composite.listen(Composite.EVENT_RENDER_END, () => {
Test.start();
});
</script>
<script type="text/test-1">
A:1-{{TestModel.ping()}}
B:2-{{TestModel.ping()}}
C:3-{{TestModel.ping()}}
D:<input type="text" value="4-{{TestModel.ping()}}">
E:<input type="text" value="5-{{TestModel.ping()}}">
F:<input type="text" value="6-{{TestModel.ping()}}">
</script>
<script type="text/test-2">
A:1-{{TestModel.ping()}}
B:2-{{TestModel.ping()}}
C:3-{{TestModel.ping()}}
D:<input value="4-{{TestModel.ping()}}" type="text">
E:<input value="5-{{TestModel.ping()}}" type="text">
F:<input value="6-{{TestModel.ping()}}" type="text">
</script>
</head>
<body>
A:{{TestModel.ping()}}
B:{{TestModel.ping()}}
C:{{TestModel.ping()}}
D:<input type="text" value="{{TestModel.ping()}}"/>
E:<input type="text" value="{{TestModel.ping()}}"/>
F:<input type="text" value="{{TestModel.ping()}}"/>
</body>
</html>