diff --git a/Tests/DatabaseClientTests/ComponentLossTests.swift b/Tests/DatabaseClientTests/ComponentLossTests.swift new file mode 100644 index 0000000..72dd53d --- /dev/null +++ b/Tests/DatabaseClientTests/ComponentLossTests.swift @@ -0,0 +1,53 @@ +import DatabaseClient +import Dependencies +import Foundation +import ManualDCore +import Testing + +@Suite +struct ComponentLossTests { + + @Test + func happyPaths() async throws { + try await withTestUser { user in + @Dependency(\.database) var database + + let project = try await database.projects.create(user.id, .mock) + + let componentLoss = try await database.componentLosses.create( + .init(projectID: project.id, name: "Test", value: 0.2) + ) + + let fetched = try await database.componentLosses.fetch(project.id) + #expect(fetched == [componentLoss]) + + let got = try await database.componentLosses.get(componentLoss.id) + #expect(got == componentLoss) + + let updated = try await database.componentLosses.update( + componentLoss.id, .init(name: "Updated", value: nil) + ) + #expect(updated.id == componentLoss.id) + #expect(updated.value == componentLoss.value) + #expect(updated.name == "Updated") + + try await database.componentLosses.delete(componentLoss.id) + + } + } + + @Test + func notFound() async throws { + try await withDatabase { + @Dependency(\.database.componentLosses) var componentLosses + + await #expect(throws: NotFoundError.self) { + try await componentLosses.delete(UUID(0)) + } + + await #expect(throws: NotFoundError.self) { + try await componentLosses.update(UUID(0), .init(name: "Updated")) + } + } + } +} diff --git a/Tests/DatabaseClientTests/Helpers.swift b/Tests/DatabaseClientTests/Helpers.swift index fcc85d2..65f04b0 100644 --- a/Tests/DatabaseClientTests/Helpers.swift +++ b/Tests/DatabaseClientTests/Helpers.swift @@ -53,3 +53,15 @@ func withTestUser( try await operation(user) } } + +extension Project.Create { + + static let mock = Self( + name: "Testy McTestface", + streetAddress: "1234 Sesame St", + city: "Nowhere", + state: "MN", + zipCode: "55555", + sensibleHeatRatio: 0.83 + ) +} diff --git a/Tests/DatabaseClientTests/ProjectTests.swift b/Tests/DatabaseClientTests/ProjectTests.swift index b91c203..37585a0 100644 --- a/Tests/DatabaseClientTests/ProjectTests.swift +++ b/Tests/DatabaseClientTests/ProjectTests.swift @@ -152,15 +152,3 @@ struct ProjectTests { } } - -extension Project.Create { - - static let mock = Self( - name: "Testy McTestface", - streetAddress: "1234 Sesame St", - city: "Nowhere", - state: "MN", - zipCode: "55555", - sensibleHeatRatio: 0.83 - ) -}