mirror of https://github.com/espruino/BangleApps
runapptests - Add example test as documentation
parent
42cd2bfbcb
commit
acd910a864
|
@ -8,6 +8,8 @@ IT IS UNFINISHED
|
||||||
It searches for `test.json` in each app's directory and will
|
It searches for `test.json` in each app's directory and will
|
||||||
run them in sequence.
|
run them in sequence.
|
||||||
|
|
||||||
|
The return code is the number of failed tests.
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
|
|
||||||
* more code to test with
|
* more code to test with
|
||||||
|
@ -20,6 +22,44 @@ TODO:
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
const DEMOAPP = {
|
||||||
|
"id":"demoappfortestformat",
|
||||||
|
"name":"demo",
|
||||||
|
"version":"0.01",
|
||||||
|
"type":"app",
|
||||||
|
"supports":["BANGLEJS2"],
|
||||||
|
"storage":[],
|
||||||
|
};
|
||||||
|
const DEMOTEST = {
|
||||||
|
"app" : "demoappfortestformat",
|
||||||
|
"setup" : [{
|
||||||
|
"id": "arbitraryid",
|
||||||
|
"steps" : [
|
||||||
|
{"t":"cmd", "js": "global.testfunction = ()=>{}", "text": "Runs some code on the device"},
|
||||||
|
{"t":"wrap", "fn": "global.testfunction", "id": "testfunc", text:"Wraps a function to count calls and store the last set of arguments on the device"}
|
||||||
|
]
|
||||||
|
}],
|
||||||
|
"tests" : [{
|
||||||
|
"description": "Optional description of the test, will be shown in results table",
|
||||||
|
"steps" : [
|
||||||
|
{"t":"setup", "id": "arbitraryid", "text": "Calls a set of predefined steps"},
|
||||||
|
{"t":"eval", "js": "'test' + 'value'", "eq": "testvalue", "text": "Evals code on the device and optionally compares the resulting string to the value in 'eq'"},
|
||||||
|
{"t":"saveMemoryUsage", "text": "Gets and stores the current memory usage"},
|
||||||
|
{"t":"checkMemoryUsage", "text": "Checks the current memory to be equal to the stored value"},
|
||||||
|
{"t":"assert", "js": "0", "is":"falsy", "text": "Evaluates the content of 'js' on the device and asserts if the result is falsy"},
|
||||||
|
{"t":"assert", "js": "1", "is":"truthy", "text": "Evaluates the content of 'js' on the device and asserts if the result is truthy"},
|
||||||
|
{"t":"assert", "js": "false", "is":"false", "text": "Evaluates the content of 'js' on the device and asserts if the result is false"},
|
||||||
|
{"t":"assert", "js": "true", "is":"true", "text": "Evaluates the content of 'js' on the device and asserts if the result is true"},
|
||||||
|
{"t":"assert", "js": "()=>{}", "is":"function", "text": "Evaluates the content of 'js' and on the device and asserts if the result is a function"},
|
||||||
|
{"t":"assert", "js": "test", "is":"equal", "to": "test", "text": "Evaluates the content of 'js' and 'to' on the device and asserts if the result is equal"},
|
||||||
|
{"t":"assertArray", "js": "[]", "is":"undefinedOrEmpty", "text": "Evaluates the content of 'js' on the device and asserts if the result is undefined or an empty array"},
|
||||||
|
{"t":"assertArray", "js": "[1,2,3]", "is":"notEmpty", "text": "Evaluates the content of 'js' on the device and asserts if the result is an array with more than 0 entries"},,
|
||||||
|
{"t":"assertCall", "id": "testfunc", "argAsserts": [ { "t": "assert", "arg": "0", "is": "equal", "to": 1 } ] , "text": "Asserts if a wrapped function has been called with the expected arguments"},
|
||||||
|
{"t":"assertCall", "id": "testfunc", "count": 1 , "text": "Asserts if a wrapped function has been called the expected number of times"}
|
||||||
|
]
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
var EMULATOR = "banglejs2";
|
var EMULATOR = "banglejs2";
|
||||||
var DEVICEID = "BANGLEJS2";
|
var DEVICEID = "BANGLEJS2";
|
||||||
|
|
||||||
|
@ -413,6 +453,12 @@ emu.init({
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
apps.push(DEMOAPP);
|
||||||
|
|
||||||
|
p = p.then(()=>{
|
||||||
|
return runTest(DEMOTEST, testState);
|
||||||
|
});
|
||||||
|
|
||||||
apps.forEach(app => {
|
apps.forEach(app => {
|
||||||
var testFile = APP_DIR+"/"+app.id+"/test.json";
|
var testFile = APP_DIR+"/"+app.id+"/test.json";
|
||||||
if (!require("fs").existsSync(testFile)) return;
|
if (!require("fs").existsSync(testFile)) return;
|
||||||
|
|
Loading…
Reference in New Issue