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