{ "name": "verify-fs-readdir", "nodes": [ {"id": "n1", "name": "Trigger", "type": "click-trigger", "position": {"x": 0, "y": 0}, "config": {}}, {"id": "n2", "name": "List", "type": "code", "position": {"x": 0, "y": 100}, "config": {"code": "const dir = '/tmp/sb-readdir-test';\nsmartbotic.fs.mkdir(dir);\nsmartbotic.fs.writeFile(dir + '/one.txt', smartbotic.utils.base64Encode('hello'));\nsmartbotic.fs.writeFile(dir + '/two.txt', smartbotic.utils.base64Encode('worldwide'));\nsmartbotic.fs.mkdir(dir + '/sub');\n\nconst listing = smartbotic.fs.readdir(dir);\nconst missing = smartbotic.fs.readdir('/tmp/sb-readdir-does-not-exist');\nconst notDir = smartbotic.fs.readdir(dir + '/one.txt');\n\nconst names = listing.entries.map(function (e) { return e.name; }).sort();\nconst one = listing.entries.filter(function (e) { return e.name === 'one.txt'; })[0];\nconst sub = listing.entries.filter(function (e) { return e.name === 'sub'; })[0];\n\nsmartbotic.fs.unlink(dir + '/one.txt');\nsmartbotic.fs.unlink(dir + '/two.txt');\n\nreturn {\n ok: listing.success,\n names: names,\n oneSize: one.size,\n oneHasMtime: one.modifiedAt > 1600000000000,\n subIsDirectory: sub.isDirectory,\n oneIsDirectory: one.isDirectory,\n missingRejected: missing.success === false,\n notDirRejected: notDir.success === false,\n hasWorkflowId: typeof context.workflowId === 'string' && context.workflowId.length > 0\n};"}} ], "connections": [ {"sourceNodeId": "n1", "sourceOutput": "main", "targetNodeId": "n2", "targetInput": "data"} ], "expect": { "n2": {"status": "completed", "output": {"result": { "ok": true, "names": ["one.txt", "sub", "two.txt"], "oneSize": 5, "oneHasMtime": true, "subIsDirectory": true, "oneIsDirectory": false, "missingRejected": true, "notDirRejected": true, "hasWorkflowId": true }}} } }