Spracherkennung für: .ts vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]
import { render } from "lit";
import { describe, expect, it } from "vitest";
import { renderAgents, type AgentsProps } from "./agents.ts";
function createSkill() {
return {
name: "Repo Skill",
description: "Skill description",
source: "workspace",
filePath: "/tmp/skill",
baseDir: "/tmp",
skillKey: "repo-skill",
always: false,
disabled: false,
blockedByAllowlist: false,
eligible: true,
requirements: {
bins: [],
env: [],
config: [],
os: [],
},
missing: {
bins: [],
env: [],
config: [],
os: [],
},
configChecks: [],
install: [],
};
}
function createProps(overrides: Partial<AgentsProps> = {}): AgentsProps {
return {
basePath: "",
loading: false,
error: null,
agentsList: {
defaultId: "alpha",
mainKey: "main",
scope: "workspace",
agents: [{ id: "alpha", name: "Alpha" } as never, { id: "beta", name: "Beta" } as never],
},
selectedAgentId: "beta",
activePanel: "overview",
config: {
form: null,
loading: false,
saving: false,
dirty: false,
},
channels: {
snapshot: null,
loading: false,
error: null,
lastSuccess: null,
},
cron: {
status: null,
jobs: [],
loading: false,
error: null,
},
agentFiles: {
list: null,
loading: false,
error: null,
active: null,
contents: {},
drafts: {},
saving: false,
},
agentIdentityLoading: false,
agentIdentityError: null,
agentIdentityById: {},
agentSkills: {
report: null,
loading: false,
error: null,
agentId: null,
filter: "",
},
toolsCatalog: {
loading: false,
error: null,
result: null,
},
toolsEffective: {
loading: false,
error: null,
result: null,
},
runtimeSessionKey: "main",
runtimeSessionMatchesSelectedAgent: false,
modelCatalog: [],
onRefresh: () => undefined,
onSelectAgent: () => undefined,
onSelectPanel: () => undefined,
onLoadFiles: () => undefined,
onSelectFile: () => undefined,
onFileDraftChange: () => undefined,
onFileReset: () => undefined,
onFileSave: () => undefined,
onToolsProfileChange: () => undefined,
onToolsOverridesChange: () => undefined,
onConfigReload: () => undefined,
onConfigSave: () => undefined,
onModelChange: () => undefined,
onModelFallbacksChange: () => undefined,
onChannelsRefresh: () => undefined,
onCronRefresh: () => undefined,
onCronRunNow: () => undefined,
onSkillsFilterChange: () => undefined,
onSkillsRefresh: () => undefined,
onAgentSkillToggle: () => undefined,
onAgentSkillsClear: () => undefined,
onAgentSkillsDisableAll: () => undefined,
onSetDefault: () => undefined,
...overrides,
};
}
describe("renderAgents", () => {
it("shows the skills count only for the selected agent's report", async () => {
const container = document.createElement("div");
render(
renderAgents(
createProps({
agentSkills: {
report: {
workspaceDir: "/tmp/workspace",
managedSkillsDir: "/tmp/skills",
skills: [createSkill()],
},
loading: false,
error: null,
agentId: "alpha",
filter: "",
},
}),
),
container,
);
await Promise.resolve();
let skillsTab = Array.from(container.querySelectorAll<HTMLButtonElement>(".agent-tab")).find(
(button) => button.textContent?.includes("Skills"),
);
expect(skillsTab?.textContent?.trim()).toBe("Skills");
render(
renderAgents(
createProps({
agentSkills: {
report: {
workspaceDir: "/tmp/workspace",
managedSkillsDir: "/tmp/skills",
skills: [createSkill()],
},
loading: false,
error: null,
agentId: "beta",
filter: "",
},
}),
),
container,
);
await Promise.resolve();
skillsTab = Array.from(container.querySelectorAll<HTMLButtonElement>(".agent-tab")).find(
(button) => button.textContent?.includes("Skills"),
);
expect(skillsTab?.textContent?.trim()).toContain("1");
});
});
¤ Dauer der Verarbeitung: 0.21 Sekunden
(vorverarbeitet am 2026-04-27)
¤
*© Formatika GbR, Deutschland
|
|