mirror of
https://github.com/fancive/obsidian-parallel-reader.git
synced 2026-07-22 06:53:43 +00:00
Add tests/**/*.js and scripts/**/*.mjs to biome.json includes and update npm lint scripts to cover these directories. Auto-fixed all formatting issues in 26 files. Change-Id: I8c2763cb9683616a8abc1484d91bf8af79bb590e
98 lines
4.1 KiB
JavaScript
98 lines
4.1 KiB
JavaScript
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);
|
|
});
|