mirror of
https://github.com/pacnpal/Roo-Code.git
synced 2025-12-20 04:11:10 -05:00
Add test
This commit is contained in:
180
src/api/transform/__tests__/r1-format.test.ts
Normal file
180
src/api/transform/__tests__/r1-format.test.ts
Normal file
@@ -0,0 +1,180 @@
|
|||||||
|
import { convertToR1Format } from "../r1-format"
|
||||||
|
import { Anthropic } from "@anthropic-ai/sdk"
|
||||||
|
import OpenAI from "openai"
|
||||||
|
|
||||||
|
describe("convertToR1Format", () => {
|
||||||
|
it("should convert basic text messages", () => {
|
||||||
|
const input: Anthropic.Messages.MessageParam[] = [
|
||||||
|
{ role: "user", content: "Hello" },
|
||||||
|
{ role: "assistant", content: "Hi there" },
|
||||||
|
]
|
||||||
|
|
||||||
|
const expected: OpenAI.Chat.ChatCompletionMessageParam[] = [
|
||||||
|
{ role: "user", content: "Hello" },
|
||||||
|
{ role: "assistant", content: "Hi there" },
|
||||||
|
]
|
||||||
|
|
||||||
|
expect(convertToR1Format(input)).toEqual(expected)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should merge consecutive messages with same role", () => {
|
||||||
|
const input: Anthropic.Messages.MessageParam[] = [
|
||||||
|
{ role: "user", content: "Hello" },
|
||||||
|
{ role: "user", content: "How are you?" },
|
||||||
|
{ role: "assistant", content: "Hi!" },
|
||||||
|
{ role: "assistant", content: "I'm doing well" },
|
||||||
|
]
|
||||||
|
|
||||||
|
const expected: OpenAI.Chat.ChatCompletionMessageParam[] = [
|
||||||
|
{ role: "user", content: "Hello\nHow are you?" },
|
||||||
|
{ role: "assistant", content: "Hi!\nI'm doing well" },
|
||||||
|
]
|
||||||
|
|
||||||
|
expect(convertToR1Format(input)).toEqual(expected)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should handle image content", () => {
|
||||||
|
const input: Anthropic.Messages.MessageParam[] = [
|
||||||
|
{
|
||||||
|
role: "user",
|
||||||
|
content: [
|
||||||
|
{
|
||||||
|
type: "image",
|
||||||
|
source: {
|
||||||
|
type: "base64",
|
||||||
|
media_type: "image/jpeg",
|
||||||
|
data: "base64data",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
const expected: OpenAI.Chat.ChatCompletionMessageParam[] = [
|
||||||
|
{
|
||||||
|
role: "user",
|
||||||
|
content: [
|
||||||
|
{
|
||||||
|
type: "image_url",
|
||||||
|
image_url: {
|
||||||
|
url: "data:image/jpeg;base64,base64data",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
expect(convertToR1Format(input)).toEqual(expected)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should handle mixed text and image content", () => {
|
||||||
|
const input: Anthropic.Messages.MessageParam[] = [
|
||||||
|
{
|
||||||
|
role: "user",
|
||||||
|
content: [
|
||||||
|
{ type: "text", text: "Check this image:" },
|
||||||
|
{
|
||||||
|
type: "image",
|
||||||
|
source: {
|
||||||
|
type: "base64",
|
||||||
|
media_type: "image/jpeg",
|
||||||
|
data: "base64data",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
const expected: OpenAI.Chat.ChatCompletionMessageParam[] = [
|
||||||
|
{
|
||||||
|
role: "user",
|
||||||
|
content: [
|
||||||
|
{ type: "text", text: "Check this image:" },
|
||||||
|
{
|
||||||
|
type: "image_url",
|
||||||
|
image_url: {
|
||||||
|
url: "data:image/jpeg;base64,base64data",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
expect(convertToR1Format(input)).toEqual(expected)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should merge mixed content messages with same role", () => {
|
||||||
|
const input: Anthropic.Messages.MessageParam[] = [
|
||||||
|
{
|
||||||
|
role: "user",
|
||||||
|
content: [
|
||||||
|
{ type: "text", text: "First image:" },
|
||||||
|
{
|
||||||
|
type: "image",
|
||||||
|
source: {
|
||||||
|
type: "base64",
|
||||||
|
media_type: "image/jpeg",
|
||||||
|
data: "image1",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
role: "user",
|
||||||
|
content: [
|
||||||
|
{ type: "text", text: "Second image:" },
|
||||||
|
{
|
||||||
|
type: "image",
|
||||||
|
source: {
|
||||||
|
type: "base64",
|
||||||
|
media_type: "image/png",
|
||||||
|
data: "image2",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
const expected: OpenAI.Chat.ChatCompletionMessageParam[] = [
|
||||||
|
{
|
||||||
|
role: "user",
|
||||||
|
content: [
|
||||||
|
{ type: "text", text: "First image:" },
|
||||||
|
{
|
||||||
|
type: "image_url",
|
||||||
|
image_url: {
|
||||||
|
url: "data:image/jpeg;base64,image1",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ type: "text", text: "Second image:" },
|
||||||
|
{
|
||||||
|
type: "image_url",
|
||||||
|
image_url: {
|
||||||
|
url: "data:image/png;base64,image2",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
expect(convertToR1Format(input)).toEqual(expected)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should handle empty messages array", () => {
|
||||||
|
expect(convertToR1Format([])).toEqual([])
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should handle messages with empty content", () => {
|
||||||
|
const input: Anthropic.Messages.MessageParam[] = [
|
||||||
|
{ role: "user", content: "" },
|
||||||
|
{ role: "assistant", content: "" },
|
||||||
|
]
|
||||||
|
|
||||||
|
const expected: OpenAI.Chat.ChatCompletionMessageParam[] = [
|
||||||
|
{ role: "user", content: "" },
|
||||||
|
{ role: "assistant", content: "" },
|
||||||
|
]
|
||||||
|
|
||||||
|
expect(convertToR1Format(input)).toEqual(expected)
|
||||||
|
})
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user