diff --git a/Plugins/SurrealDBDriverPlugin/SurrealValue+Display.swift b/Plugins/SurrealDBDriverPlugin/SurrealValue+Display.swift index b9806d19a..960dcf6bd 100644 --- a/Plugins/SurrealDBDriverPlugin/SurrealValue+Display.swift +++ b/Plugins/SurrealDBDriverPlugin/SurrealValue+Display.swift @@ -53,8 +53,14 @@ public extension SurrealValue { } } - var jsonText: String { - JSONTruncation.truncate(Self.jsonFragment(self), maxLength: Self.maxSerializedLength) + private func jsonText(_ length: SurrealTextLength) -> String { + let json = Self.jsonFragment(self) + switch length { + case .display: + return JSONTruncation.truncate(json, maxLength: Self.maxSerializedLength) + case .whole: + return json + } } var typeName: String { diff --git a/TableProTests/Plugins/ElasticsearchDriverTests.swift b/TableProTests/Plugins/ElasticsearchDriverTests.swift index 5825be849..c7c1b5138 100644 --- a/TableProTests/Plugins/ElasticsearchDriverTests.swift +++ b/TableProTests/Plugins/ElasticsearchDriverTests.swift @@ -1202,7 +1202,7 @@ struct ElasticsearchStatementGeneratorTests { } private func displayed(_ value: Any) -> String { - ElasticsearchMappingFlattener.cell(value).asText ?? "" + ElasticsearchMappingFlattener.cell(value, length: .display).asText ?? "" } private func shortenedRefusal(_ column: String) -> PluginRowWriteRefusal { diff --git a/TableProTests/Plugins/TypesenseDriverTests.swift b/TableProTests/Plugins/TypesenseDriverTests.swift index 4b7d6a779..1c50b0828 100644 --- a/TableProTests/Plugins/TypesenseDriverTests.swift +++ b/TableProTests/Plugins/TypesenseDriverTests.swift @@ -964,7 +964,7 @@ struct TypesenseStatementGeneratorTests { } private func shortenedAuthors() -> String { - TypesenseSchema.cell((0..<1_500).map { "author-\($0)" }).asText ?? "" + TypesenseSchema.cell((0..<1_500).map { "author-\($0)" }, length: .display).asText ?? "" } private func shortenedRefusal(_ column: String) -> PluginRowWriteRefusal { @@ -1025,7 +1025,7 @@ struct TypesenseStatementGeneratorTests { @Test("A complete array written over one shortened for display is refused, since it may be the shown part closed") func updateRefusesACompleteArrayWrittenOverAShortenedOne() throws { - let shownPart = TypesenseSchema.cell((0..<600).map { "author-\($0)" }).asText ?? "" + let shownPart = TypesenseSchema.cell((0..<600).map { "author-\($0)" }, length: .display).asText ?? "" try #require(!shownPart.hasSuffix("...")) #expect(throws: shortenedRefusal("authors")) { try updateRequest(authorsEdit(from: shortenedAuthors(), to: .text(shownPart)))