From 44a09641816cac0f03272bffbec98eea5dcb3c97 Mon Sep 17 00:00:00 2001 From: Michael Housh Date: Fri, 30 Jan 2026 15:28:25 -0500 Subject: [PATCH] feat: Adds equivalent length database tests. --- .../EquivalentLengthTests.swift | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 Tests/DatabaseClientTests/EquivalentLengthTests.swift diff --git a/Tests/DatabaseClientTests/EquivalentLengthTests.swift b/Tests/DatabaseClientTests/EquivalentLengthTests.swift new file mode 100644 index 0000000..68861c5 --- /dev/null +++ b/Tests/DatabaseClientTests/EquivalentLengthTests.swift @@ -0,0 +1,79 @@ +import DatabaseClient +import Dependencies +import Foundation +import ManualDCore +import Testing + +@Suite +struct EquivalentLengthTests { + + @Test + func happyPath() async throws { + try await withTestUserAndProject { user, project in + @Dependency(\.database.equivalentLengths) var equivalentLengths + + let equivalentLength = try await equivalentLengths.create( + .init( + projectID: project.id, + name: "Test", + type: .supply, + straightLengths: [10], + groups: [ + .init(group: 1, letter: "a", value: 20), + .init(group: 2, letter: "a", value: 30, quantity: 2), + ] + ) + ) + + let fetched = try await equivalentLengths.fetch(project.id) + #expect(fetched == [equivalentLength]) + + let got = try await equivalentLengths.get(equivalentLength.id) + #expect(got == equivalentLength) + + var max = try await equivalentLengths.fetchMax(project.id) + #expect(max.supply == equivalentLength) + #expect(max.return == nil) + + let returnLength = try await equivalentLengths.create( + .init( + projectID: project.id, + name: "Test", + type: .return, + straightLengths: [10], + groups: [ + .init(group: 1, letter: "a", value: 20), + .init(group: 2, letter: "a", value: 30, quantity: 2), + ] + ) + ) + max = try await equivalentLengths.fetchMax(project.id) + #expect(max.supply == equivalentLength) + #expect(max.return == returnLength) + + let updated = try await equivalentLengths.update( + equivalentLength.id, .init(name: "Supply Test") + ) + #expect(updated.name == "Supply Test") + #expect(updated.id == equivalentLength.id) + + try await equivalentLengths.delete(equivalentLength.id) + + } + } + + @Test + func notFound() async throws { + try await withDatabase { + @Dependency(\.database.equivalentLengths) var equivalentLengths + + await #expect(throws: NotFoundError.self) { + try await equivalentLengths.delete(UUID(0)) + } + + await #expect(throws: NotFoundError.self) { + try await equivalentLengths.update(UUID(0), .init()) + } + } + } +}