97 lines
2.5 KiB
JavaScript
97 lines
2.5 KiB
JavaScript
|
import { module, test } from "qunit";
|
||
|
import AiPersona from "discourse/plugins/discourse-ai/discourse/admin/models/ai-persona";
|
||
|
|
||
|
module("Discourse AI | Unit | Model | ai-persona", function () {
|
||
|
test("init properties", function (assert) {
|
||
|
const properties = {
|
||
|
commands: [
|
||
|
["CommandName", { option1: "value1", option2: "value2" }],
|
||
|
"CommandName2",
|
||
|
"CommandName3",
|
||
|
],
|
||
|
};
|
||
|
|
||
|
const aiPersona = AiPersona.create(properties);
|
||
|
|
||
|
assert.deepEqual(aiPersona.commands, [
|
||
|
"CommandName",
|
||
|
"CommandName2",
|
||
|
"CommandName3",
|
||
|
]);
|
||
|
assert.equal(
|
||
|
aiPersona.getCommandOption("CommandName", "option1").value,
|
||
|
"value1"
|
||
|
);
|
||
|
assert.equal(
|
||
|
aiPersona.getCommandOption("CommandName", "option2").value,
|
||
|
"value2"
|
||
|
);
|
||
|
});
|
||
|
|
||
|
test("update properties", function (assert) {
|
||
|
const properties = {
|
||
|
id: 1,
|
||
|
name: "Test",
|
||
|
commands: ["CommandName"],
|
||
|
allowed_group_ids: [12],
|
||
|
system: false,
|
||
|
enabled: true,
|
||
|
system_prompt: "System Prompt",
|
||
|
priority: false,
|
||
|
description: "Description",
|
||
|
};
|
||
|
|
||
|
const aiPersona = AiPersona.create({ ...properties });
|
||
|
|
||
|
aiPersona.getCommandOption("CommandName", "option1").value = "value1";
|
||
|
|
||
|
const updatedProperties = aiPersona.updateProperties();
|
||
|
|
||
|
// perform remapping for save
|
||
|
properties.commands = [["CommandName", { option1: "value1" }]];
|
||
|
|
||
|
assert.deepEqual(updatedProperties, properties);
|
||
|
});
|
||
|
|
||
|
test("create properties", function (assert) {
|
||
|
const properties = {
|
||
|
name: "Test",
|
||
|
commands: ["CommandName"],
|
||
|
allowed_group_ids: [12],
|
||
|
system: false,
|
||
|
enabled: true,
|
||
|
system_prompt: "System Prompt",
|
||
|
priority: false,
|
||
|
description: "Description",
|
||
|
};
|
||
|
|
||
|
const aiPersona = AiPersona.create({ ...properties });
|
||
|
|
||
|
aiPersona.getCommandOption("CommandName", "option1").value = "value1";
|
||
|
|
||
|
const createdProperties = aiPersona.createProperties();
|
||
|
|
||
|
properties.commands = [["CommandName", { option1: "value1" }]];
|
||
|
|
||
|
assert.deepEqual(createdProperties, properties);
|
||
|
});
|
||
|
|
||
|
test("working copy", function (assert) {
|
||
|
const aiPersona = AiPersona.create({
|
||
|
name: "Test",
|
||
|
commands: ["CommandName"],
|
||
|
});
|
||
|
|
||
|
aiPersona.getCommandOption("CommandName", "option1").value = "value1";
|
||
|
|
||
|
const workingCopy = aiPersona.workingCopy();
|
||
|
|
||
|
assert.equal(workingCopy.name, "Test");
|
||
|
assert.equal(
|
||
|
workingCopy.getCommandOption("CommandName", "option1").value,
|
||
|
"value1"
|
||
|
);
|
||
|
assert.deepEqual(workingCopy.commands, ["CommandName"]);
|
||
|
});
|
||
|
});
|