@@ -519,6 +519,28 @@ def request_body(prompt, stream: false, tool_call: false)
519519 expect ( response ) . to eq ( tool_calls )
520520 end
521521
522+ it "properly handles newlines" do
523+ response = <<~TEXT . strip
524+ data: {"id":"chatcmpl-ASngi346UA9k006bF6GBRV66tEJfQ","object":"chat.completion.chunk","created":1731427548,"model":"gpt-4o-2024-08-06","system_fingerprint":"fp_159d8341cc","choices":[{"index":0,"delta":{"content":":\\ n\\ n"},"logprobs":null,"finish_reason":null}],"usage":null}
525+
526+ data: {"id":"chatcmpl-ASngi346UA9k006bF6GBRV66tEJfQ","object":"chat.completion.chunk","created":1731427548,"model":"gpt-4o-2024-08-06","system_fingerprint":"fp_159d8341cc","choices":[{"index":0,"delta":{"content":"```"},"logprobs":null,"finish_reason":null}],"usage":null}
527+
528+ data: {"id":"chatcmpl-ASngi346UA9k006bF6GBRV66tEJfQ","object":"chat.completion.chunk","created":1731427548,"model":"gpt-4o-2024-08-06","system_fingerprint":"fp_159d8341cc","choices":[{"index":0,"delta":{"content":"ruby"},"logprobs":null,"finish_reason":null}],"usage":null}
529+
530+ data: {"id":"chatcmpl-ASngi346UA9k006bF6GBRV66tEJfQ","object":"chat.completion.chunk","created":1731427548,"model":"gpt-4o-2024-08-06","system_fingerprint":"fp_159d8341cc","choices":[{"index":0,"delta":{"content":"\\ n"},"logprobs":null,"finish_reason":null}],"usage":null}
531+
532+ data: {"id":"chatcmpl-ASngi346UA9k006bF6GBRV66tEJfQ","object":"chat.completion.chunk","created":1731427548,"model":"gpt-4o-2024-08-06","system_fingerprint":"fp_159d8341cc","choices":[{"index":0,"delta":{"content":"def"},"logprobs":null,"finish_reason":null}],"usage":null}
533+ TEXT
534+
535+ open_ai_mock . stub_raw ( response )
536+ partials = [ ]
537+
538+ dialect = compliance . dialect ( prompt : compliance . generic_prompt )
539+ endpoint . perform_completion! ( dialect , user ) { |partial | partials << partial }
540+
541+ expect ( partials ) . to eq ( [ ":\n \n " , "```" , "ruby" , "\n " , "def" ] )
542+ end
543+
522544 it "uses proper token accounting" do
523545 response = <<~TEXT . strip
524546 data: {"id":"chatcmpl-9OZidiHncpBhhNMcqCus9XiJ3TkqR","object":"chat.completion.chunk","created":1715644203,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_729ea513f7","choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}],"usage":null}|
0 commit comments