Add tests

This commit is contained in:
Simon Edelmann 2021-01-09 20:14:39 +01:00
parent 4926af8536
commit 5b08c644bd
8 changed files with 22 additions and 1 deletions

View File

@ -91,6 +91,8 @@ extension Todo: CRUDModel {
func `public`(eventLoop: EventLoop, db: Database) -> EventLoopFuture<Public> { func `public`(eventLoop: EventLoop, db: Database) -> EventLoopFuture<Public> {
eventLoop.makeSucceededFuture(self.public) eventLoop.makeSucceededFuture(self.public)
} }
// You can find an example for loading relationship in /Tests/CRUDKitTests/Models/Todo.swift
} }
``` ```

View File

@ -17,6 +17,7 @@ final class CreateTests: ApplicationXCTestCase {
XCTAssertEqual($0.id, 1) XCTAssertEqual($0.id, 1)
XCTAssertEqual($0.title, "Run tests") XCTAssertEqual($0.title, "Run tests")
XCTAssertTrue($0.isPublic) XCTAssertTrue($0.isPublic)
XCTAssertEqual($0.tagCount, 0)
} }
}.test(.GET, "/todos/1", afterResponse: { res in }.test(.GET, "/todos/1", afterResponse: { res in
XCTAssertEqual(res.status, .ok) XCTAssertEqual(res.status, .ok)
@ -27,6 +28,7 @@ final class CreateTests: ApplicationXCTestCase {
XCTAssertEqual($0.id, 1) XCTAssertEqual($0.id, 1)
XCTAssertEqual($0.title, "Run tests") XCTAssertEqual($0.title, "Run tests")
XCTAssertTrue($0.isPublic) XCTAssertTrue($0.isPublic)
XCTAssertEqual($0.tagCount, 0)
} }
}) })
} }

View File

@ -12,7 +12,9 @@ final class DeleteTests: ApplicationXCTestCase {
XCTAssertContent(Todo.Public.self, res) { XCTAssertContent(Todo.Public.self, res) {
XCTAssertNotNil($0.id) XCTAssertNotNil($0.id)
XCTAssertEqual($0.id, 1) XCTAssertEqual($0.id, 1)
XCTAssertEqual($0.title, "Wash clothes")
XCTAssertTrue($0.isPublic) XCTAssertTrue($0.isPublic)
XCTAssertEqual($0.tagCount, 1)
} }
}).test(.DELETE, "/todos/1", afterResponse: { res in }).test(.DELETE, "/todos/1", afterResponse: { res in
XCTAssertEqual(res.status, .ok) XCTAssertEqual(res.status, .ok)

View File

@ -27,6 +27,7 @@ final class IndexAllTests: ApplicationXCTestCase {
XCTAssertNotEqual($0.count, 2) XCTAssertNotEqual($0.count, 2)
XCTAssertEqual($0[0].title, Todo(title: "Wash clothes").title) XCTAssertEqual($0[0].title, Todo(title: "Wash clothes").title)
XCTAssertTrue($0[0].isPublic) XCTAssertTrue($0[0].isPublic)
XCTAssertEqual($0[0].tagCount, 1)
} }
}) })
} }

View File

@ -25,6 +25,7 @@ final class IndexTests: ApplicationXCTestCase {
XCTAssertNotEqual($0.id, 2) XCTAssertNotEqual($0.id, 2)
XCTAssertEqual($0.title, "Wash clothes") XCTAssertEqual($0.title, "Wash clothes")
XCTAssertTrue($0.isPublic) XCTAssertTrue($0.isPublic)
XCTAssertEqual($0.tagCount, 1)
} }
}) })
} }

View File

@ -24,6 +24,7 @@ final class PatchTests: ApplicationXCTestCase {
XCTAssertEqual($0.id, 1) XCTAssertEqual($0.id, 1)
XCTAssertEqual($0.title, "Run other tests") XCTAssertEqual($0.title, "Run other tests")
XCTAssertTrue($0.isPublic) XCTAssertTrue($0.isPublic)
XCTAssertEqual($0.tagCount, 1)
} }
}.test(.GET, "/todos/1", afterResponse: { res in }.test(.GET, "/todos/1", afterResponse: { res in
XCTAssertEqual(res.status, .ok) XCTAssertEqual(res.status, .ok)
@ -34,6 +35,7 @@ final class PatchTests: ApplicationXCTestCase {
XCTAssertEqual($0.id, 1) XCTAssertEqual($0.id, 1)
XCTAssertEqual($0.title, "Run other tests") XCTAssertEqual($0.title, "Run other tests")
XCTAssertTrue($0.isPublic) XCTAssertTrue($0.isPublic)
XCTAssertEqual($0.tagCount, 1)
} }
}) })
} }
@ -54,6 +56,7 @@ final class PatchTests: ApplicationXCTestCase {
XCTAssertNotEqual($0.id, 2) XCTAssertNotEqual($0.id, 2)
XCTAssertEqual($0.title, "Wash clothes") XCTAssertEqual($0.title, "Wash clothes")
XCTAssertTrue($0.isPublic) XCTAssertTrue($0.isPublic)
XCTAssertEqual($0.tagCount, 1)
} }
}) })
} }

View File

@ -33,6 +33,7 @@ final class ReplaceTests: ApplicationXCTestCase {
XCTAssertEqual($0.id, 1) XCTAssertEqual($0.id, 1)
XCTAssertEqual($0.title, "Run other tests") XCTAssertEqual($0.title, "Run other tests")
XCTAssertTrue($0.isPublic) XCTAssertTrue($0.isPublic)
XCTAssertEqual($0.tagCount, 1)
} }
}.test(.GET, "/todos/1", afterResponse: { res in }.test(.GET, "/todos/1", afterResponse: { res in
XCTAssertEqual(res.status, .ok) XCTAssertEqual(res.status, .ok)
@ -43,6 +44,7 @@ final class ReplaceTests: ApplicationXCTestCase {
XCTAssertEqual($0.id, 1) XCTAssertEqual($0.id, 1)
XCTAssertEqual($0.title, "Run other tests") XCTAssertEqual($0.title, "Run other tests")
XCTAssertTrue($0.isPublic) XCTAssertTrue($0.isPublic)
XCTAssertEqual($0.tagCount, 1)
} }
}) })
} }
@ -88,6 +90,7 @@ final class ReplaceTests: ApplicationXCTestCase {
XCTAssertNotEqual($0.id, 2) XCTAssertNotEqual($0.id, 2)
XCTAssertEqual($0.title, "Wash clothes") XCTAssertEqual($0.title, "Wash clothes")
XCTAssertTrue($0.isPublic) XCTAssertTrue($0.isPublic)
XCTAssertEqual($0.tagCount, 1)
} }
}) })
} }

View File

@ -27,10 +27,17 @@ extension Todo: CRUDModel {
var id: Int? var id: Int?
var title: String var title: String
var isPublic: Bool var isPublic: Bool
var tagCount: Int
} }
var `public`: Public { var `public`: Public {
Public.init(id: id, title: title, isPublic: true) Public.init(id: id, title: title, isPublic: true, tagCount: 0)
}
func `public`(eventLoop: EventLoop, db: Database) -> EventLoopFuture<Public> {
self.$tags.query(on: db).all().map {
Public.init(id: self.id, title: self.title, isPublic: true, tagCount: $0.count)
}
} }
struct Create: Content { struct Create: Content {