moving
Some checks failed
Installer Smoke / installer-smoke (push) Has been cancelled

This commit is contained in:
Oleg Maslov
2026-09-02 10:10:29 +02:00
commit 0c3e2ead3b
3841 changed files with 970576 additions and 0 deletions

View File

@@ -0,0 +1,89 @@
import { describe, it, expect } from 'vitest';
import {
createTeamSchema,
createTaskSchema,
sendMessageSchema,
createAgentSchema,
createAgentGroupSchema,
} from '../src/schemas.js';
describe('createTeamSchema', () => {
it('accepts valid team', () => {
const result = createTeamSchema.safeParse({ name: 'Marketing', slug: 'marketing' });
expect(result.success).toBe(true);
});
it('rejects empty name', () => {
const result = createTeamSchema.safeParse({ name: '', slug: 'ok' });
expect(result.success).toBe(false);
});
it('rejects invalid slug characters', () => {
const result = createTeamSchema.safeParse({ name: 'Ok', slug: 'Has Spaces' });
expect(result.success).toBe(false);
});
});
describe('createTaskSchema', () => {
it('accepts valid task with defaults', () => {
const result = createTaskSchema.safeParse({ title: 'Research competitors' });
expect(result.success).toBe(true);
if (result.success) {
expect(result.data.priority).toBe('normal');
}
});
});
describe('sendMessageSchema', () => {
it('accepts valid waggle dance message', () => {
const result = sendMessageSchema.safeParse({
type: 'request',
subtype: 'knowledge_check',
content: { topic: 'competitor pricing', scope: 'Product Line X' },
});
expect(result.success).toBe(true);
});
it('rejects invalid subtype', () => {
const result = sendMessageSchema.safeParse({
type: 'broadcast',
subtype: 'invalid_type',
content: {},
});
expect(result.success).toBe(false);
});
});
describe('createAgentSchema', () => {
it('accepts agent with defaults', () => {
const result = createAgentSchema.safeParse({ name: 'web-searcher' });
expect(result.success).toBe(true);
if (result.success) {
expect(result.data.model).toBe('claude-haiku-4-5');
expect(result.data.tools).toEqual([]);
}
});
});
describe('createAgentGroupSchema', () => {
it('accepts valid agent group', () => {
const result = createAgentGroupSchema.safeParse({
name: 'Research Team',
strategy: 'parallel',
members: [
{ agentId: '00000000-0000-0000-0000-000000000001', roleInGroup: 'lead' },
{ agentId: '00000000-0000-0000-0000-000000000002' },
],
});
expect(result.success).toBe(true);
});
it('rejects invalid strategy', () => {
const result = createAgentGroupSchema.safeParse({
name: 'Bad',
strategy: 'random',
members: [],
});
expect(result.success).toBe(false);
});
});