@@ -407,6 +407,55 @@ class APICommandTests: XCTestCase {
407
407
}
408
408
}
409
409
410
+ func testQueryWhereEncoding( ) async throws {
411
+ let query = Level . query ( " name " == " [email protected] " )
412
+ let parameters = try query. getQueryParameters ( )
413
+
414
+ let queryCommand = API . NonParseBodyCommand < Query < Level > , Level ? > (
415
+ method: . GET,
416
+ path: query. endpoint,
417
+ params: parameters
418
+ ) { _ in
419
+ return nil
420
+ }
421
+
422
+ switch await queryCommand. prepareURLRequest ( options: [ ] ) {
423
+
424
+ case . success( let request) :
425
+ XCTAssertEqual (
426
+ request. url? . absoluteString,
427
+ " http://localhost:1337/parse/classes/Level?limit=100&skip=0&where=%7B%22name%22:%[email protected] %22%7D "
428
+ )
429
+ case . failure( let error) :
430
+ XCTFail ( error. localizedDescription)
431
+ }
432
+ }
433
+
434
+ func testQueryWhereEncodingPlus( ) async throws {
435
+ let query = Level . query ( " name " == " [email protected] " )
436
+ let parameters = try query. getQueryParameters ( )
437
+
438
+ let queryCommand = API . NonParseBodyCommand < Query < Level > , Level ? > (
439
+ method: . GET,
440
+ path: query. endpoint,
441
+ params: parameters
442
+ ) { _ in
443
+ return nil
444
+ }
445
+
446
+ switch await queryCommand. prepareURLRequest ( options: [ ] ) {
447
+
448
+ case . success( let request) :
449
+ XCTAssertEqual (
450
+ request. url? . absoluteString,
451
+ // swiftlint:disable:next line_length
452
+ " http://localhost:1337/parse/classes/Level?limit=100&skip=0&where=%7B%22name%22:%22test%[email protected] %22%7D "
453
+ )
454
+ case . failure( let error) :
455
+ XCTFail ( error. localizedDescription)
456
+ }
457
+ }
458
+
410
459
func testClientKeyHeader( ) async throws {
411
460
guard let clientKey = ParseSwift . configuration. clientKey else {
412
461
throw ParseError ( code: . otherCause, message: " Parse configuration should contain key " )
0 commit comments