@@ -43,9 +43,16 @@ class FTS5PatternTests: GRDBTestCase {
4343 ( " title:brest " , 1 )
4444 ]
4545 for (rawPattern, expectedCount) in validRawPatterns {
46- let pattern = try db. makeFTS5Pattern ( rawPattern: rawPattern, forTable: " books " )
47- let count = try Int . fetchOne ( db, sql: " SELECT COUNT(*) FROM books WHERE books MATCH ? " , arguments: [ pattern] ) !
48- XCTAssertEqual ( count, expectedCount, " Expected pattern \( String ( reflecting: rawPattern) ) to yield \( expectedCount) results " )
46+ do {
47+ let pattern = try FTS5Pattern ( rawPattern: rawPattern, allowedColumns: [ " title " ] )
48+ let count = try Int . fetchOne ( db, sql: " SELECT COUNT(*) FROM books WHERE books MATCH ? " , arguments: [ pattern] ) !
49+ XCTAssertEqual ( count, expectedCount, " Expected pattern \( String ( reflecting: rawPattern) ) to yield \( expectedCount) results " )
50+ }
51+ do {
52+ let pattern = try db. makeFTS5Pattern ( rawPattern: rawPattern, forTable: " books " )
53+ let count = try Int . fetchOne ( db, sql: " SELECT COUNT(*) FROM books WHERE books MATCH ? " , arguments: [ pattern] ) !
54+ XCTAssertEqual ( count, expectedCount, " Expected pattern \( String ( reflecting: rawPattern) ) to yield \( expectedCount) results " )
55+ }
4956 }
5057 }
5158 }
@@ -55,6 +62,14 @@ class FTS5PatternTests: GRDBTestCase {
5562 dbQueue. inDatabase { db in
5663 let invalidRawPatterns = [ " " , " ?! " , " ^ " , " NOT " , " ( " , " AND " , " OR " , " \" " , " missing:foo " ]
5764 for rawPattern in invalidRawPatterns {
65+ do {
66+ _ = try FTS5Pattern ( rawPattern: rawPattern, allowedColumns: [ " title " ] )
67+ XCTFail ( " Expected pattern to be invalid: \( String ( reflecting: rawPattern) ) " )
68+ } catch is DatabaseError {
69+ } catch {
70+ XCTFail ( " Expected DatabaseError, not \( error) " )
71+ }
72+
5873 do {
5974 _ = try db. makeFTS5Pattern ( rawPattern: rawPattern, forTable: " books " )
6075 XCTFail ( " Expected pattern to be invalid: \( String ( reflecting: rawPattern) ) " )
0 commit comments