|
import { collections } from "$lib/server/database"; |
|
import { ObjectId } from "mongodb"; |
|
import { describe, expect, it } from "vitest"; |
|
|
|
|
|
|
|
export const insertLegacyConversation = async () => { |
|
const res = await collections.conversations.insertOne({ |
|
_id: new ObjectId(), |
|
createdAt: new Date(), |
|
updatedAt: new Date(), |
|
title: "legacy conversation", |
|
model: "", |
|
embeddingModel: "", |
|
messages: [ |
|
{ |
|
id: "1-1-1-1-1", |
|
from: "user", |
|
content: "Hello, world! I am a user", |
|
}, |
|
{ |
|
id: "1-1-1-1-2", |
|
from: "assistant", |
|
content: "Hello, world! I am an assistant.", |
|
}, |
|
{ |
|
id: "1-1-1-1-3", |
|
from: "user", |
|
content: "Hello, world! I am a user.", |
|
}, |
|
{ |
|
id: "1-1-1-1-4", |
|
from: "assistant", |
|
content: "Hello, world! I am an assistant.", |
|
}, |
|
], |
|
}); |
|
return res.insertedId; |
|
}; |
|
|
|
export const insertLinearBranchConversation = async () => { |
|
const res = await collections.conversations.insertOne({ |
|
_id: new ObjectId(), |
|
createdAt: new Date(), |
|
updatedAt: new Date(), |
|
title: "linear branch conversation", |
|
model: "", |
|
embeddingModel: "", |
|
|
|
rootMessageId: "1-1-1-1-1", |
|
messages: [ |
|
{ |
|
id: "1-1-1-1-1", |
|
from: "user", |
|
content: "Hello, world! I am a user", |
|
ancestors: [], |
|
children: ["1-1-1-1-2"], |
|
}, |
|
{ |
|
id: "1-1-1-1-2", |
|
from: "assistant", |
|
content: "Hello, world! I am an assistant.", |
|
ancestors: ["1-1-1-1-1"], |
|
children: ["1-1-1-1-3"], |
|
}, |
|
{ |
|
id: "1-1-1-1-3", |
|
from: "user", |
|
content: "Hello, world! I am a user.", |
|
ancestors: ["1-1-1-1-1", "1-1-1-1-2"], |
|
children: ["1-1-1-1-4"], |
|
}, |
|
{ |
|
id: "1-1-1-1-4", |
|
from: "assistant", |
|
content: "Hello, world! I am an assistant.", |
|
ancestors: ["1-1-1-1-1", "1-1-1-1-2", "1-1-1-1-3"], |
|
children: [], |
|
}, |
|
], |
|
}); |
|
return res.insertedId; |
|
}; |
|
|
|
export const insertSideBranchesConversation = async () => { |
|
const res = await collections.conversations.insertOne({ |
|
_id: new ObjectId(), |
|
createdAt: new Date(), |
|
updatedAt: new Date(), |
|
title: "side branches conversation", |
|
model: "", |
|
embeddingModel: "", |
|
rootMessageId: "1-1-1-1-1", |
|
messages: [ |
|
{ |
|
id: "1-1-1-1-1", |
|
from: "user", |
|
content: "Hello, world, root message!", |
|
ancestors: [], |
|
children: ["1-1-1-1-2", "1-1-1-1-5"], |
|
}, |
|
{ |
|
id: "1-1-1-1-2", |
|
from: "assistant", |
|
content: "Hello, response to root message!", |
|
ancestors: ["1-1-1-1-1"], |
|
children: ["1-1-1-1-3"], |
|
}, |
|
{ |
|
id: "1-1-1-1-3", |
|
from: "user", |
|
content: "Hello, follow up question!", |
|
ancestors: ["1-1-1-1-1", "1-1-1-1-2"], |
|
children: ["1-1-1-1-4"], |
|
}, |
|
{ |
|
id: "1-1-1-1-4", |
|
from: "assistant", |
|
content: "Hello, response from follow up question!", |
|
ancestors: ["1-1-1-1-1", "1-1-1-1-2", "1-1-1-1-3"], |
|
children: [], |
|
}, |
|
{ |
|
id: "1-1-1-1-5", |
|
from: "assistant", |
|
content: "Hello, alternative assistant answer!", |
|
ancestors: ["1-1-1-1-1"], |
|
children: ["1-1-1-1-6", "1-1-1-1-7"], |
|
}, |
|
{ |
|
id: "1-1-1-1-6", |
|
from: "user", |
|
content: "Hello, follow up question to alternative answer!", |
|
ancestors: ["1-1-1-1-1", "1-1-1-1-5"], |
|
children: [], |
|
}, |
|
{ |
|
id: "1-1-1-1-7", |
|
from: "user", |
|
content: "Hello, alternative follow up question to alternative answer!", |
|
ancestors: ["1-1-1-1-1", "1-1-1-1-5"], |
|
children: [], |
|
}, |
|
], |
|
}); |
|
return res.insertedId; |
|
}; |
|
|
|
describe("inserting conversations", () => { |
|
it("should insert a legacy conversation", async () => { |
|
const id = await insertLegacyConversation(); |
|
expect(id).toBeDefined(); |
|
}); |
|
|
|
it("should insert a linear branch conversation", async () => { |
|
const id = await insertLinearBranchConversation(); |
|
expect(id).toBeDefined(); |
|
}); |
|
|
|
it("should insert a side branches conversation", async () => { |
|
const id = await insertSideBranchesConversation(); |
|
expect(id).toBeDefined(); |
|
}); |
|
}); |
|
|