55 lines
1.8 KiB
TypeScript
55 lines
1.8 KiB
TypeScript
import assert from 'node:assert';
|
|
import path from 'node:path';
|
|
import fs from 'node:fs';
|
|
import { Yonexus } from '../src/index';
|
|
import { YonexusError } from '../src/models/errors';
|
|
|
|
const root = path.resolve(process.cwd(), 'data/test-openclaw');
|
|
const dataFile = path.resolve(process.cwd(), 'data/test-org.json');
|
|
if (fs.existsSync(dataFile)) fs.unlinkSync(dataFile);
|
|
if (fs.existsSync(root)) fs.rmSync(root, { recursive: true, force: true });
|
|
|
|
const app = new Yonexus({ dataFile, registrars: ['orion'], openclawDir: root });
|
|
|
|
app.registerAgent({ agentId: 'orion' }, 'orion', 'Orion', ['org_admin', 'agent']);
|
|
app.registerAgent({ agentId: 'orion' }, 'u1', 'U1', ['agent']);
|
|
const org = app.createOrganization({ agentId: 'orion' }, 'Yonexus');
|
|
const dept = app.createDepartment({ agentId: 'orion' }, 'Eng', org.id);
|
|
const team = app.createTeam({ agentId: 'orion' }, 'API', dept.id);
|
|
app.assignIdentity({ agentId: 'orion' }, 'u1', dept.id, team.id, {
|
|
git_user_name: 'u1',
|
|
position: 'dev'
|
|
});
|
|
|
|
const result = app.queryAgents(
|
|
{ agentId: 'orion' },
|
|
{ deptId: dept.id },
|
|
{ filters: [{ field: 'git_user_name', op: 'eq', value: 'u1' }] }
|
|
);
|
|
assert.equal(result.length, 1);
|
|
|
|
const expectedAgentDocsDir = path.join(root, 'yonexus', 'organizations', 'yonexus', 'teams', 'api', 'agents', 'u1', 'docs');
|
|
assert.equal(fs.existsSync(expectedAgentDocsDir), true);
|
|
|
|
let thrown = false;
|
|
try {
|
|
app.queryAgents(
|
|
{ agentId: 'orion' },
|
|
{ deptId: dept.id },
|
|
{ filters: [{ field: 'team', op: 'eq', value: 'API' }] }
|
|
);
|
|
} catch (e) {
|
|
thrown = e instanceof YonexusError && e.code === 'FIELD_NOT_QUERYABLE';
|
|
}
|
|
assert.equal(thrown, true);
|
|
|
|
let invalidRegexThrown = false;
|
|
try {
|
|
app.getDocs('agent', 'docs', '[');
|
|
} catch (e) {
|
|
invalidRegexThrown = e instanceof YonexusError && e.code === 'VALIDATION_ERROR';
|
|
}
|
|
assert.equal(invalidRegexThrown, true);
|
|
|
|
console.log('smoke test passed');
|