Skip to content

Commit 55f4fe1

Browse files
committed
[Tests] Reflect API changes
1 parent 317adc3 commit 55f4fe1

File tree

3 files changed

+64
-57
lines changed

3 files changed

+64
-57
lines changed

Sources/SJavaScriptCore/JSError.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import CJavaScriptCore
55
import JavaScriptCore
66
#endif
77

8-
public struct JSError: Error, CustomStringConvertible {
8+
public struct JSError: Error, Equatable, CustomStringConvertible {
99
public var description: String
1010

1111
init(context: JSContextRef, pointer: JSValueRef) {
@@ -24,4 +24,9 @@ public struct JSError: Error, CustomStringConvertible {
2424
self.description = "failed to convert JSError"
2525
}
2626
}
27+
28+
// @testable
29+
init(_ description: String) {
30+
self.description = description
31+
}
2732
}

Tests/SJavaScriptCoreTests/JSValueTests.swift

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ final class JSValueTests: TestCase {
88
let context = JSContext()
99

1010
let result = try context.evaluate("undefined")
11-
assertTrue(result.isUndefined)
12-
assertFalse(result.isNull)
13-
assertFalse(result.isBool)
14-
assertFalse(result.isNumber)
15-
assertFalse(result.isString)
16-
assertEqual(try result.toString(), "undefined")
11+
expect(result.isUndefined)
12+
expect(!result.isNull)
13+
expect(!result.isBool)
14+
expect(!result.isNumber)
15+
expect(!result.isString)
16+
expect(try result.toString() == "undefined")
1717
} catch {
1818
fail(String(describing: error))
1919
}
@@ -23,12 +23,12 @@ final class JSValueTests: TestCase {
2323
do {
2424
let context = JSContext()
2525
let result = try context.evaluate("null")
26-
assertFalse(result.isUndefined)
27-
assertTrue(result.isNull)
28-
assertFalse(result.isBool)
29-
assertFalse(result.isNumber)
30-
assertFalse(result.isString)
31-
assertEqual(try result.toString(), "null")
26+
expect(!result.isUndefined)
27+
expect(result.isNull)
28+
expect(!result.isBool)
29+
expect(!result.isNumber)
30+
expect(!result.isString)
31+
expect(try result.toString() == "null")
3232
} catch {
3333
fail(String(describing: error))
3434
}
@@ -38,13 +38,13 @@ final class JSValueTests: TestCase {
3838
do {
3939
let context = JSContext()
4040
let result = try context.evaluate("true")
41-
assertFalse(result.isUndefined)
42-
assertFalse(result.isNull)
43-
assertTrue(result.isBool)
44-
assertFalse(result.isNumber)
45-
assertFalse(result.isString)
46-
assertEqual(try result.toString(), "true")
47-
assertEqual(result.toBool(), true)
41+
expect(!result.isUndefined)
42+
expect(!result.isNull)
43+
expect(result.isBool)
44+
expect(!result.isNumber)
45+
expect(!result.isString)
46+
expect(try result.toString() == "true")
47+
expect(result.toBool() == true)
4848
} catch {
4949
fail(String(describing: error))
5050
}
@@ -54,13 +54,13 @@ final class JSValueTests: TestCase {
5454
do {
5555
let context = JSContext()
5656
let result = try context.evaluate("3.14")
57-
assertFalse(result.isUndefined)
58-
assertFalse(result.isNull)
59-
assertFalse(result.isBool)
60-
assertTrue(result.isNumber)
61-
assertFalse(result.isString)
62-
assertEqual(try result.toString(), "3.14")
63-
assertEqual(try result.toDouble(), 3.14)
57+
expect(!result.isUndefined)
58+
expect(!result.isNull)
59+
expect(!result.isBool)
60+
expect(result.isNumber)
61+
expect(!result.isString)
62+
expect(try result.toString() == "3.14")
63+
expect(try result.toDouble() == 3.14)
6464
} catch {
6565
fail(String(describing: error))
6666
}
@@ -70,12 +70,12 @@ final class JSValueTests: TestCase {
7070
do {
7171
let context = JSContext()
7272
let result = try context.evaluate("'success'")
73-
assertFalse(result.isUndefined)
74-
assertFalse(result.isNull)
75-
assertFalse(result.isBool)
76-
assertFalse(result.isNumber)
77-
assertTrue(result.isString)
78-
assertEqual(try result.toString(), "success")
73+
expect(!result.isUndefined)
74+
expect(!result.isNull)
75+
expect(!result.isBool)
76+
expect(!result.isNumber)
77+
expect(result.isString)
78+
expect(try result.toString() == "success")
7979
} catch {
8080
fail(String(describing: error))
8181
}
@@ -85,7 +85,7 @@ final class JSValueTests: TestCase {
8585
do {
8686
let context = JSContext()
8787
let result = try context.evaluate("40 + 2")
88-
assertEqual(try result.toInt(), 42)
88+
expect(try result.toInt() == 42)
8989
} catch {
9090
fail(String(describing: error))
9191
}
@@ -95,7 +95,7 @@ final class JSValueTests: TestCase {
9595
do {
9696
let context = JSContext()
9797
let result = try context.evaluate("40 + 2")
98-
assertEqual(try result.toString(), "42")
98+
expect(try result.toString() == "42")
9999
} catch {
100100
fail(String(describing: error))
101101
}
@@ -110,7 +110,7 @@ final class JSValueTests: TestCase {
110110
})()
111111
""")
112112

113-
assertEqual(try result["property"]?.toString(), "test")
113+
expect(try result["property"]?.toString() == "test")
114114
} catch {
115115
fail(String(describing: error))
116116
}

Tests/SJavaScriptCoreTests/JavaScriptTests.swift

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,19 @@ import Test
33
@testable import SJavaScriptCore
44

55
final class SJavaScriptCoreTests: TestCase {
6-
func testEvaluate() {
6+
func testEvaluate() throws {
77
let context = JSContext()
8-
assertNoThrow(try context.evaluate("40 + 2"))
8+
_ = try context.evaluate("40 + 2")
99
}
1010

1111
func testException() {
1212
let context = JSContext()
13-
assertThrowsError(try context.evaluate("x()")) { error in
14-
assertEqual("\(error)", "Can't find variable: x")
13+
expect(throws: JSError("Can't find variable: x")) {
14+
try context.evaluate("x()")
1515
}
1616

17-
assertThrowsError(try context.evaluate("{")) { error in
18-
assertEqual("\(error)", "Unexpected end of script")
17+
expect(throws: JSError("Unexpected end of script")) {
18+
try context.evaluate("{")
1919
}
2020
}
2121

@@ -26,7 +26,7 @@ final class SJavaScriptCoreTests: TestCase {
2626
return .string("success")
2727
}
2828
let result = try context.evaluate("test()")
29-
assertEqual(try result.toString(), "success")
29+
expect(try result.toString() == "success")
3030
} catch {
3131
fail(String(describing: error))
3232
}
@@ -40,31 +40,31 @@ final class SJavaScriptCoreTests: TestCase {
4040
return .undefined
4141
}
4242
let undefinedResult = try context.evaluate("testUndefined()")
43-
assertTrue(undefinedResult.isUndefined)
43+
expect(undefinedResult.isUndefined)
4444

4545
try context.createFunction(name: "testNull") {
4646
return .null
4747
}
4848
let nullResult = try context.evaluate("testNull()")
49-
assertTrue(nullResult.isNull)
49+
expect(nullResult.isNull)
5050

5151
try context.createFunction(name: "testBool") {
5252
return .bool(true)
5353
}
5454
let boolResult = try context.evaluate("testBool()")
55-
assertTrue(boolResult.isBool)
55+
expect(boolResult.isBool)
5656

5757
try context.createFunction(name: "testNumber") {
5858
return .number(3.14)
5959
}
6060
let numberResult = try context.evaluate("testNumber()")
61-
assertTrue(numberResult.isNumber)
61+
expect(numberResult.isNumber)
6262

6363
try context.createFunction(name: "testString") {
6464
return .string("success")
6565
}
6666
let stringResult = try context.evaluate("testString()")
67-
assertTrue(stringResult.isString)
67+
expect(stringResult.isString)
6868
} catch {
6969
fail(String(describing: error))
7070
}
@@ -80,8 +80,8 @@ final class SJavaScriptCoreTests: TestCase {
8080
return .string("captured")
8181
}
8282
let result = try context.evaluate("test()")
83-
assertTrue(captured)
84-
assertEqual("\(result)", "captured")
83+
expect(captured)
84+
expect("\(result)" == "captured")
8585
} catch {
8686
fail(String(describing: error))
8787
}
@@ -91,9 +91,9 @@ final class SJavaScriptCoreTests: TestCase {
9191
do {
9292
let context = JSContext()
9393
try context.createFunction(name: "test") { (arguments) -> Void in
94-
assertEqual(arguments.count, 2)
95-
assertEqual(try arguments.first?.toString(), "one")
96-
assertEqual(try arguments.last?.toInt(), 42)
94+
expect(arguments.count == 2)
95+
expect(try arguments.first?.toString() == "one")
96+
expect(try arguments.last?.toInt() == 42)
9797
}
9898
try context.evaluate("test('one', 42)")
9999
} catch {
@@ -105,13 +105,13 @@ final class SJavaScriptCoreTests: TestCase {
105105
do {
106106
let context = JSContext()
107107
try context.evaluate("result = 'success'")
108-
assertEqual(try context.evaluate("result").toString(), "success")
108+
expect(try context.evaluate("result").toString() == "success")
109109

110110
try context.createFunction(name: "test") { (arguments) -> Value in
111111
return .string("test ok")
112112
}
113113

114-
assertEqual(try context.evaluate("result").toString(), "success")
114+
expect(try context.evaluate("result").toString() == "success")
115115
} catch {
116116
fail(String(describing: error))
117117
}
@@ -122,13 +122,15 @@ final class SJavaScriptCoreTests: TestCase {
122122
let context = JSContext()
123123
try context.evaluate("test = 'hello'")
124124
let result = try context.evaluate("test")
125-
assertEqual(try result.toString(), "hello")
125+
expect(try result.toString() == "hello")
126126
} catch {
127127
fail(String(describing: error))
128128
return
129129
}
130130

131131
let context = JSContext()
132-
assertThrowsError(try context.evaluate("test"))
132+
expect(throws: JSError("Can\'t find variable: test")) {
133+
try context.evaluate("test")
134+
}
133135
}
134136
}

0 commit comments

Comments
 (0)