File tree 2 files changed +41
-0
lines changed
2 files changed +41
-0
lines changed Original file line number Diff line number Diff line change 99
99
" unittests/evaluation/optionalCall.ts" ,
100
100
" unittests/evaluation/objectRest.ts" ,
101
101
" unittests/evaluation/superInStaticInitializer.ts" ,
102
+ " unittests/evaluation/templateLiteral.ts" ,
102
103
" unittests/evaluation/updateExpressionInModule.ts" ,
103
104
" unittests/services/cancellableLanguageServiceOperations.ts" ,
104
105
" unittests/services/colorization.ts" ,
Original file line number Diff line number Diff line change
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
+ } ) ;
You can’t perform that action at this time.
0 commit comments