Skip to content

Commit 8fe1210

Browse files
committed
Add evaluation test for template literals
1 parent 8323d00 commit 8fe1210

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

src/testRunner/tsconfig.json

+1
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
"unittests/evaluation/optionalCall.ts",
100100
"unittests/evaluation/objectRest.ts",
101101
"unittests/evaluation/superInStaticInitializer.ts",
102+
"unittests/evaluation/templateLiteral.ts",
102103
"unittests/evaluation/updateExpressionInModule.ts",
103104
"unittests/services/cancellableLanguageServiceOperations.ts",
104105
"unittests/services/colorization.ts",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
describe("unittests:: evaluation:: templateLiteral", () => {
2+
it("toString() over valueOf()", () => {
3+
const result = evaluator.evaluateTypeScript(`
4+
class C {
5+
toString() {
6+
return "toString";
7+
}
8+
valueOf() {
9+
return "valueOf";
10+
}
11+
}
12+
13+
export const output = \`\${new C}\`;
14+
`);
15+
assert.strictEqual(result.output, "toString");
16+
});
17+
18+
it("correct evaluation order", () => {
19+
const result = evaluator.evaluateTypeScript(`
20+
class C {
21+
counter: number;
22+
23+
constructor() {
24+
this.counter = 0;
25+
}
26+
27+
get foo() {
28+
this.counter++;
29+
return {
30+
toString: () => this.counter++,
31+
};
32+
}
33+
}
34+
35+
const c = new C;
36+
export const output = \`\${c.foo} \${c.foo}\`;
37+
`);
38+
assert.strictEqual(result.output, "1 3");
39+
});
40+
});

0 commit comments

Comments
 (0)