-
Notifications
You must be signed in to change notification settings - Fork 38
Expand file tree
/
Copy pathconsolidationPromptPolicy.test.js
More file actions
105 lines (97 loc) · 3.44 KB
/
Copy pathconsolidationPromptPolicy.test.js
File metadata and controls
105 lines (97 loc) · 3.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// Copyright (C) 2024–2026 Aiko Hanasaki
// SPDX-License-Identifier: AGPL-3.0-only
import assert from 'node:assert/strict';
import test from 'node:test';
import {
buildConsolidationPromptsExportData,
isGroupChatOnlyPreset,
isOrdinaryConsolidationPreset,
isRegenerationOnlyPreset,
selectConsolidationDefaultPresetKey,
} from './consolidationPromptPolicy.js';
test('identifies only the reserved regeneration preset', () => {
assert.equal(isRegenerationOnlyPreset('arc_regenerate'), true);
assert.equal(isRegenerationOnlyPreset('arc_alternate'), false);
assert.equal(isRegenerationOnlyPreset('custom-regenerate'), false);
});
test('identifies only the reserved automatic group-chat preset', () => {
assert.equal(isGroupChatOnlyPreset('arc_group_chat'), true);
assert.equal(isGroupChatOnlyPreset('arc_default'), false);
assert.equal(isGroupChatOnlyPreset('custom-group-chat'), false);
});
test('ordinary consolidation excludes both reserved preset kinds', () => {
assert.equal(isOrdinaryConsolidationPreset('arc_default'), true);
assert.equal(isOrdinaryConsolidationPreset('custom'), true);
assert.equal(isOrdinaryConsolidationPreset('arc_regenerate'), false);
assert.equal(isOrdinaryConsolidationPreset('arc_group_chat'), false);
});
test('never selects a reserved preset as the consolidation default', () => {
const builtIns = {
arc_default: 'default prompt',
arc_regenerate: 'regeneration prompt',
arc_group_chat: 'group-chat prompt',
};
assert.equal(selectConsolidationDefaultPresetKey({
defaultPresetKey: 'arc_regenerate',
overrides: {
arc_regenerate: { prompt: 'custom regeneration prompt' },
},
}, builtIns), 'arc_default');
assert.equal(selectConsolidationDefaultPresetKey({
defaultPresetKey: 'arc_group_chat',
overrides: {
arc_group_chat: { prompt: 'custom group-chat prompt' },
},
}, builtIns), 'arc_default');
});
test('preserves ordinary defaults and skips reserved fallbacks', () => {
assert.equal(selectConsolidationDefaultPresetKey({
defaultPresetKey: 'custom',
overrides: {
custom: { prompt: 'custom prompt' },
arc_regenerate: { prompt: 'regeneration prompt' },
},
}), 'custom');
assert.equal(selectConsolidationDefaultPresetKey({
defaultPresetKey: 'missing',
overrides: {
arc_regenerate: { prompt: 'regeneration prompt' },
arc_group_chat: { prompt: 'group-chat prompt' },
another: { prompt: 'ordinary prompt' },
},
}), 'another');
});
test('exports built-in fallback presets without migrating the persisted document', () => {
const data = {
version: 1,
defaultPresetKey: 'arc_default',
overrides: {
arc_default: {
displayName: 'Edited default',
prompt: 'edited default prompt',
},
},
};
const exported = buildConsolidationPromptsExportData(
data,
{
arc_default: 'built-in default prompt',
arc_group_chat: 'built-in group prompt',
},
key => key === 'arc_group_chat'
? 'Group Chat Consolidation Analysis (Automatic)'
: key,
);
assert.notEqual(exported, data);
assert.notEqual(exported.overrides, data.overrides);
assert.equal(
exported.overrides.arc_default.prompt,
'edited default prompt',
);
assert.deepEqual(exported.overrides.arc_group_chat, {
displayName: 'Group Chat Consolidation Analysis (Automatic)',
prompt: 'built-in group prompt',
createdAt: null,
});
assert.equal(data.overrides.arc_group_chat, undefined);
});