/
generator.ts
33 lines (31 loc) · 1.2 KB
/
generator.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
describe("unittests:: evaluation:: generatorEvaluation", () => {
it("throw before start (es5)", () => {
const { gen, output } = evaluator.evaluateTypeScript(`
export const output: string[] = [];
export function * gen() {
output.push("start");
yield 1;
output.push("end");
}
`, { target: ts.ScriptTarget.ES5 });
const g = gen();
const e = new Error();
assert.throws(() => g.throw(e), e);
assert.deepEqual(g.next(), { value: undefined, done: true });
assert.deepEqual(output, []);
});
it("return before start (es5)", () => {
const { gen, output } = evaluator.evaluateTypeScript(`
export const output: string[] = [];
export function * gen() {
output.push("start");
yield 1;
output.push("end");
}
`, { target: ts.ScriptTarget.ES5 });
const g = gen();
assert.deepEqual(g.return(2), { value: 2, done: true });
assert.deepEqual(g.next(), { value: undefined, done: true });
assert.deepEqual(output, []);
});
});