From acd12dc06deff27e412bb72af61229527d7418cd Mon Sep 17 00:00:00 2001 From: Francesco Paolo Severino Date: Tue, 20 Aug 2024 18:35:41 +0200 Subject: [PATCH] Add more tests for auth middleware --- Tests/OrdersTests/OrdersTests.swift | 16 ++++++++++++++++ Tests/PassesTests/PassesTests.swift | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/Tests/OrdersTests/OrdersTests.swift b/Tests/OrdersTests/OrdersTests.swift index f15334f..e828ae2 100644 --- a/Tests/OrdersTests/OrdersTests.swift +++ b/Tests/OrdersTests/OrdersTests.swift @@ -86,6 +86,18 @@ final class OrdersTests: XCTestCase { let deviceLibraryIdentifier = "abcdefg" let pushToken = "1234567890" + // Test registration without authentication token + try await app.test( + .POST, + "\(ordersURI)devices/\(deviceLibraryIdentifier)/registrations/\(order.orderTypeIdentifier)/\(order.requireID())", + beforeRequest: { req async throws in + try req.content.encode(RegistrationDTO(pushToken: pushToken)) + }, + afterResponse: { res async throws in + XCTAssertEqual(res.status, .unauthorized) + } + ) + try await app.test( .POST, "\(ordersURI)devices/\(deviceLibraryIdentifier)/registrations/\(order.orderTypeIdentifier)/\(order.requireID())", @@ -98,6 +110,7 @@ final class OrdersTests: XCTestCase { } ) + // Test registration of an already registered device try await app.test( .POST, "\(ordersURI)devices/\(deviceLibraryIdentifier)/registrations/\(order.orderTypeIdentifier)/\(order.requireID())", @@ -169,6 +182,9 @@ final class OrdersTests: XCTestCase { let orderData = OrderData(title: "Test Order") try await orderData.create(on: app.db) let order = try await orderData._$order.get(on: app.db) + + try await ordersService.sendPushNotificationsForOrder(id: order.requireID(), of: order.orderTypeIdentifier, on: app.db) + let deviceLibraryIdentifier = "abcdefg" let pushToken = "1234567890" diff --git a/Tests/PassesTests/PassesTests.swift b/Tests/PassesTests/PassesTests.swift index d29fc9b..0e1a88b 100644 --- a/Tests/PassesTests/PassesTests.swift +++ b/Tests/PassesTests/PassesTests.swift @@ -172,6 +172,18 @@ final class PassesTests: XCTestCase { let deviceLibraryIdentifier = "abcdefg" let pushToken = "1234567890" + // Test registration without authentication token + try await app.test( + .POST, + "\(passesURI)devices/\(deviceLibraryIdentifier)/registrations/\(pass.passTypeIdentifier)/\(pass.requireID())", + beforeRequest: { req async throws in + try req.content.encode(RegistrationDTO(pushToken: pushToken)) + }, + afterResponse: { res async throws in + XCTAssertEqual(res.status, .unauthorized) + } + ) + try await app.test( .POST, "\(passesURI)devices/\(deviceLibraryIdentifier)/registrations/\(pass.passTypeIdentifier)/\(pass.requireID())", @@ -184,6 +196,7 @@ final class PassesTests: XCTestCase { } ) + // Test registration of an already registered device try await app.test( .POST, "\(passesURI)devices/\(deviceLibraryIdentifier)/registrations/\(pass.passTypeIdentifier)/\(pass.requireID())", @@ -255,6 +268,9 @@ final class PassesTests: XCTestCase { let passData = PassData(title: "Test Pass") try await passData.create(on: app.db) let pass = try await passData._$pass.get(on: app.db) + + try await passesService.sendPushNotificationsForPass(id: pass.requireID(), of: pass.passTypeIdentifier, on: app.db) + let deviceLibraryIdentifier = "abcdefg" let pushToken = "1234567890"