27 lines
1006 B
JavaScript
27 lines
1006 B
JavaScript
import { describe, it, expect, beforeAll } from 'vitest';
|
|
import { pool } from '../../lib/db/pool.js';
|
|
import { resetDb } from '../helpers/db.js';
|
|
import { migrateUp } from '../../lib/db/migrate.js';
|
|
import * as conversations from '../../lib/db/repos/conversations.js';
|
|
|
|
const ACTOR = { kind: 'user', id: null };
|
|
let spaceId, agentId;
|
|
|
|
beforeAll(async () => {
|
|
await resetDb(); await migrateUp();
|
|
({ rows: [{ id: spaceId }] } = await pool.query(
|
|
`INSERT INTO spaces(slug,name) VALUES('s','S') RETURNING id`));
|
|
({ rows: [{ id: agentId }] } = await pool.query(
|
|
`SELECT id FROM agents WHERE slug='companion'`));
|
|
});
|
|
|
|
describe('findOrCreateForSpace', () => {
|
|
it('creates once then returns the same row', async () => {
|
|
const a = await conversations.findOrCreateForSpace(spaceId, agentId, ACTOR);
|
|
const b = await conversations.findOrCreateForSpace(spaceId, agentId, ACTOR);
|
|
expect(a.id).toBe(b.id);
|
|
expect(a.space_id).toBe(spaceId);
|
|
expect(a.agent_id).toBe(agentId);
|
|
});
|
|
});
|