import { openai } from "@ai-sdk/openai";
import { LibSQLStore } from "@mastra/libsql";
import { Memory } from "@mastra/memory";
import { Agent } from "@mastra/core/agent";
import { describe, it, expect, beforeAll } from "vitest";
const testAgent = new Agent({
name: 'testAgent',
instructions: 'You are a test agent, just chat with the user and answer questions.',
model: openai('gpt-4o'),
memory: new Memory({
storage: new LibSQLStore({
url: ':memory:',
}),
}),
});
describe('testMemory', () => {
let result: Awaited<ReturnType<typeof testAgent.generate>>;
beforeAll(async () => {
await testAgent.generate([{role: 'system', content: 'The users name is John Doe. Please respond with "Confirmed" if you understand.'}], {memory: {thread: 'test-thread-1', resource: 'test-resource-1'}});
result = await testAgent.generate([{role: 'user', content: 'What is my full name?'}], {memory: {thread: 'test-thread-1', resource: 'test-resource-1'}});
});
it('should know the users name', () => {
expect(result.text.toLowerCase()).toContain('john');
expect(result.text.toLowerCase()).toContain('doe');
});
});
import { openai } from "@ai-sdk/openai";
import { LibSQLStore } from "@mastra/libsql";
import { Memory } from "@mastra/memory";
import { Agent } from "@mastra/core/agent";
import { describe, it, expect, beforeAll } from "vitest";
const testAgent = new Agent({
name: 'testAgent',
instructions: 'You are a test agent, just chat with the user and answer questions.',
model: openai('gpt-4o'),
memory: new Memory({
storage: new LibSQLStore({
url: ':memory:',
}),
}),
});
describe('testMemory', () => {
let result: Awaited<ReturnType<typeof testAgent.generate>>;
beforeAll(async () => {
await testAgent.generate([{role: 'system', content: 'The users name is John Doe. Please respond with "Confirmed" if you understand.'}], {memory: {thread: 'test-thread-1', resource: 'test-resource-1'}});
result = await testAgent.generate([{role: 'user', content: 'What is my full name?'}], {memory: {thread: 'test-thread-1', resource: 'test-resource-1'}});
});
it('should know the users name', () => {
expect(result.text.toLowerCase()).toContain('john');
expect(result.text.toLowerCase()).toContain('doe');
});
});