1- import { Expect , Test , TestCase , FocusTest } from "alsatian" ;
1+ import { Expect , Test , TestCase , FocusTests } from "alsatian" ;
22
33import * as util from "../src/util" ;
44
5+ @FocusTests
56export class OverloadTests {
6-
77 @TestCase ( "0" )
88 @TestCase ( "30" )
99 @TestCase ( "30_000" )
1010 @TestCase ( "30.00" )
1111 @Test ( "typeof number" )
12- @FocusTest
1312 public typeofNumberTest ( inp : string ) {
1413 const lua = util . transpileString ( `return typeof ${ inp } ;` ) ;
1514 const result = util . executeLua ( lua ) ;
@@ -37,8 +36,8 @@ export class OverloadTests {
3736 Expect ( result ) . toBe ( "boolean" ) ;
3837 }
3938
40- @Test ( "{}" )
41- @Test ( "[]" )
39+ @TestCase ( "{}" )
40+ @TestCase ( "[]" )
4241 @Test ( "typeof object literal" )
4342 public typeofObjectLiteral ( inp : string ) {
4443 const lua = util . transpileString ( `return typeof ${ inp } ;` ) ;
@@ -55,13 +54,57 @@ export class OverloadTests {
5554 Expect ( result ) . toBe ( "table" ) ;
5655 }
5756
58- @Test ( "null" )
59- @Test ( "undefined" )
57+ @TestCase ( "null" )
58+ @TestCase ( "undefined" )
6059 @Test ( "typeof undefined" )
6160 public typeofUndefinedTest ( inp : string ) {
6261 const lua = util . transpileString ( `return typeof ${ inp } ;` ) ;
6362 const result = util . executeLua ( lua ) ;
6463
6564 Expect ( result ) . toBe ( "nil" ) ;
6665 }
66+
67+ @Test ( "instanceof" )
68+ public instanceOf ( ) {
69+ const lua = util . transpileString ( "class myClass {} let inst = new myClass(); return inst instanceof myClass;" ) ;
70+ const result = util . executeLua ( lua ) ;
71+
72+ Expect ( result ) . toBeTruthy ( ) ;
73+ }
74+
75+ @Test ( "instanceof inheritance" )
76+ public instanceOfInheritance ( ) {
77+ const lua = util . transpileString ( "class myClass {}\n"
78+ + "class childClass extends myClass{}\n"
79+ + "let inst = new childClass(); return inst instanceof myClass;" ) ;
80+ const result = util . executeLua ( lua ) ;
81+
82+ Expect ( result ) . toBeTruthy ( ) ;
83+ }
84+
85+ @Test ( "instanceof inheritance false" )
86+ public instanceOfInheritanceFalse ( ) {
87+ const lua = util . transpileString ( "class myClass {}\n"
88+ + "class childClass extends myClass{}\n"
89+ + "let inst = new myClass(); return inst instanceof childClass;" ) ;
90+ const result = util . executeLua ( lua ) ;
91+
92+ Expect ( result ) . toBeTruthy ( ) ;
93+ }
94+
95+ @Test ( "null instanceof Object" )
96+ public nullInstanceOf ( ) {
97+ const lua = util . transpileString ( "return null instanceof Object;" ) ;
98+ const result = util . executeLua ( lua ) ;
99+
100+ Expect ( result ) . toBe ( false ) ;
101+ }
102+
103+ @Test ( "null instanceof Class" )
104+ public nullInstanceOfClass ( ) {
105+ const lua = util . transpileString ( "class myClass {} return null instanceof myClass;" ) ;
106+ const result = util . executeLua ( lua ) ;
107+
108+ Expect ( result ) . toBe ( false ) ;
109+ }
67110}
0 commit comments