fancive_obsidian-parallel-r.../tests/direct-providers.test.js

99 lines
4.1 KiB
JavaScript
Raw Permalink Normal View History

const { assert, requireBundledModule, cleanup } = require('./direct-test-setup');
(async () => {
try {
const generation = await requireBundledModule('src/generation.ts');
const providerParsers = await requireBundledModule('src/provider-parsers.ts');
// ── generation.ts ──
assert.strictEqual(
generation.cancellationNoticeKey({ backend: 'api' }, { phase: 'generating' }),
'cancelRequestedApiInFlight',
);
assert.strictEqual(
generation.cancellationNoticeKey({ backend: 'codex' }, { phase: 'generating' }),
'cancelRequested',
);
// ── provider-parsers.ts ──
const cardsJson = JSON.stringify({ cards: [{ title: 'T', anchor: 'A', gist: 'G', bullets: ['B'] }] });
assert.strictEqual(
providerParsers.textFromOpenAiChatResponse({ choices: [{ message: { content: [{ text: cardsJson }] } }] }),
cardsJson,
);
assert.strictEqual(
providerParsers.textFromAnthropicMessagesResponse({ content: [{ type: 'text', text: cardsJson }] }),
cardsJson,
);
assert.strictEqual(
providerParsers.textFromOpenAiResponsesResponse({
output: [{ content: [{ type: 'output_text', text: cardsJson }] }],
}),
cardsJson,
);
assert.strictEqual(
providerParsers.textFromGoogleGenerativeAiResponse({
candidates: [{ content: { parts: [{ text: cardsJson }] } }],
}),
cardsJson,
);
assert.deepStrictEqual(
providerParsers.cardsFromAnthropicToolUse({
content: [{ type: 'tool_use', name: 'record_parallel_reader_cards', input: JSON.parse(cardsJson) }],
}),
[{ title: 'T', anchor: 'A', gist: 'G', bullets: ['B'] }],
);
// ── Provider parser edge cases ──
assert.strictEqual(providerParsers.textFromProviderContent('hello'), 'hello');
assert.strictEqual(providerParsers.textFromProviderContent({ output_text: 'ot' }), 'ot');
assert.strictEqual(providerParsers.textFromProviderContent(['a', { text: 'b' }, { output_text: 'c' }, 42]), 'abc');
assert.strictEqual(providerParsers.textFromProviderContent(null), '');
assert.strictEqual(providerParsers.textFromProviderContent(undefined), '');
assert.strictEqual(providerParsers.textFromProviderContent({ foo: 'bar' }), '');
assert.strictEqual(providerParsers.textFromOpenAiChatResponse({}), '');
assert.strictEqual(providerParsers.textFromOpenAiChatResponse({ choices: [] }), '');
assert.strictEqual(providerParsers.textFromOpenAiChatResponse({ choices: [{ text: 'legacy' }] }), 'legacy');
assert.strictEqual(providerParsers.textFromAnthropicMessagesResponse({}), '');
assert.strictEqual(providerParsers.textFromAnthropicMessagesResponse({ content: [] }), '');
assert.strictEqual(
providerParsers.textFromAnthropicMessagesResponse({
content: [
{ type: 'text', text: 'a' },
{ type: 'text', text: 'b' },
],
}),
'ab',
);
assert.strictEqual(providerParsers.textFromGoogleGenerativeAiResponse({}), '');
assert.strictEqual(providerParsers.textFromGoogleGenerativeAiResponse({ candidates: [] }), '');
assert.strictEqual(providerParsers.textFromGoogleGenerativeAiResponse({ candidates: [{ content: {} }] }), '');
assert.strictEqual(providerParsers.textFromOpenAiResponsesResponse({ output_text: 'direct' }), 'direct');
assert.strictEqual(
providerParsers.textFromOpenAiResponsesResponse({
output: [{ content: [{ type: 'output_text', content: 'nested' }] }],
}),
'nested',
);
assert.strictEqual(providerParsers.textFromOpenAiResponsesResponse({}), '');
assert.strictEqual(providerParsers.cardsFromAnthropicToolUse({ content: [{ type: 'text', text: 'hello' }] }), null);
assert.strictEqual(
providerParsers.cardsFromAnthropicToolUse({ content: [{ type: 'tool_use', name: 'other_tool', input: {} }] }),
null,
);
assert.strictEqual(providerParsers.cardsFromAnthropicToolUse({}), null);
console.log('direct providers tests passed');
} finally {
cleanup();
}
})().catch((e) => {
console.error(e);
process.exit(1);
});