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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -27,10 +27,17 @@ extension Todo: CRUDModel {
var id: Int?
var title: String
var isPublic: Bool
var tagCount: Int
}
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 {