(assert, expected, code, session = new Database())
| 169 | } |
| 170 | |
| 171 | export function evaluate(assert, expected, code, session = new Database()) { |
| 172 | let parsed = parser.parseDoc(dedent(code), "0"); |
| 173 | let {blocks, errors} = builder.buildDoc(parsed.results); |
| 174 | if(expected.errors) { |
| 175 | assert.true(parsed.errors.length > 0 || errors.length > 0, "This test is supposed to produce errors"); |
| 176 | } |
| 177 | session.blocks = session.blocks.concat(blocks); |
| 178 | let evaluation = new Evaluation(); |
| 179 | evaluation.registerDatabase("session", session); |
| 180 | let changes = evaluation.fixpoint(); |
| 181 | verify(assert, expected.insert, expected.remove, changes.result()); |
| 182 | let next = {execute: (expected, actions) => { |
| 183 | let changes = evaluation.executeActions(actions); |
| 184 | verify(assert, expected.insert, expected.remove, changes.result()); |
| 185 | return next; |
| 186 | }, session}; |
| 187 | return next; |
| 188 | } |
| 189 | |
| 190 | export function evaluates(assert, code, session = new Database()) { |
| 191 | let parsed = parser.parseDoc(dedent(code), "0"); |
no test coverage detected