spring-ai
spring-ai copied to clipboard
ContentFormatterTests failed on Windows
Bug description ContentFormatterTests failed on Windows. This is a Windows specific issue.
org.opentest4j.AssertionFailedError:
expected:
"llmKey2: value4
embedKey1: value1
embedKey2: value2
embedKey3: value3
The World is Big and Salvation Lurks Around the Corner"
but was:
"llmKey2: value4
embedKey1: value1
embedKey2: value2
embedKey3: value3
The World is Big and Salvation Lurks Around the Corner"
Environment Spring AI 0.8.1 Java 17 Windows
Steps to reproduce
Just mvn test
to run the tests
Expected behavior ContentFormatterTests should pass
Minimal Complete Reproducible example Just the main repo
I did some investigation and found out the issue was with the DEFAULT_METADATA_SEPARATOR
. On Windows, the default metadata separator System.lineSeparator()
is \r\n
, not \n
.
private static final String DEFAULT_METADATA_SEPARATOR = System.lineSeparator();
The test uses a text block as the expected result, which always uses \n
. So on Windows the assertion failed, as the formatted content has an extra \r
in it.
The customTextFormatter
test can be fixed by overriding the default metadata separator using withMetadataSeparator("\n")
. However, the defaultConfigTextFormatter
test cannot be fixed in this way, as there is no way to configure the default DefaultContentFormatter
.
Another option is to set the DEFAULT_METADATA_SEPARATOR
to \n
. Not sure about the impact of changing the default metadata separator.