1 import ExpoModulesTestCore 2 3 @testable import ExpoModulesCore 4 5 class JavaScriptRuntimeSpec: ExpoSpec { 6 override func spec() { 7 let runtime = JavaScriptRuntime() 8 9 it("has global object accessible") { 10 expect(runtime.global) !== nil 11 } 12 13 describe("evaluateScript") { 14 it("returns primitive types") { 15 expect(runtime.evaluateScript("null")).to(beNil()) 16 expect(runtime.evaluateScript("undefined")).to(beNil()) 17 expect(runtime.evaluateScript("true") as? Bool) == true 18 expect(runtime.evaluateScript("false") as? Bool) == false 19 expect(runtime.evaluateScript("123") as? Int) == 123 20 expect(runtime.evaluateScript("1.23") as? Double) == 1.23 21 expect(runtime.evaluateScript("'foobar'") as? String) == "foobar" 22 } 23 24 it("returns arrays") { 25 expect(runtime.evaluateScript("['foo', 'bar']") as? [String]) == ["foo", "bar"] 26 } 27 28 it("returns dicts") { 29 expect(runtime.evaluateScript("{ 'foo': 123 }") as? [String: Int]) == ["foo": 123] 30 expect(runtime.evaluateScript("{ 'foo': 'bar' }") as? [String: String]) == ["foo": "bar"] 31 } 32 } 33 } 34 } 35