embedding-ollama-url.test.mjs
48 lines 1.7 KB
Raw
sha256:b5f647cb9c409f563d4671fe3fc05ddea01fabfed9b41fc11cb923588e1c1baf mirror: GitHub Phase A durable MCP OAuth (#270) Human minor ⚠ breaking 10 days ago
1 /**
2 * Ollama embed base URL validation (no network): prevents Undici "Invalid URL" from malformed OLLAMA_URL.
3 */
4 import { describe, it } from 'node:test';
5 import assert from 'node:assert';
6 import { normalizeOllamaEmbedBaseUrl } from '../lib/embedding.mjs';
7
8 describe('normalizeOllamaEmbedBaseUrl', () => {
9 it('accepts http localhost with port', () => {
10 assert.strictEqual(normalizeOllamaEmbedBaseUrl('http://localhost:11434'), 'http://localhost:11434');
11 assert.strictEqual(normalizeOllamaEmbedBaseUrl('http://localhost:11434/'), 'http://localhost:11434');
12 });
13
14 it('accepts https host', () => {
15 assert.strictEqual(normalizeOllamaEmbedBaseUrl('https://ollama.example.com'), 'https://ollama.example.com');
16 assert.strictEqual(normalizeOllamaEmbedBaseUrl(' https://ollama.example.com/ '), 'https://ollama.example.com');
17 });
18
19 it('uses default when null or empty string', () => {
20 assert.strictEqual(normalizeOllamaEmbedBaseUrl(null), 'http://localhost:11434');
21 assert.strictEqual(normalizeOllamaEmbedBaseUrl(''), 'http://localhost:11434');
22 });
23
24 it('rejects host without scheme', () => {
25 assert.throws(
26 () => normalizeOllamaEmbedBaseUrl('localhost:11434'),
27 /absolute http\(s\) URL/i,
28 );
29 assert.throws(
30 () => normalizeOllamaEmbedBaseUrl('api.ollama.com'),
31 /absolute http\(s\) URL/i,
32 );
33 });
34
35 it('rejects whitespace-only', () => {
36 assert.throws(
37 () => normalizeOllamaEmbedBaseUrl(' '),
38 /empty after trim/i,
39 );
40 });
41
42 it('rejects non-http protocols', () => {
43 assert.throws(
44 () => normalizeOllamaEmbedBaseUrl('ftp://example.com'),
45 /starting with http:\/\/ or https:\/\//,
46 );
47 });
48 });
File History 4 commits
sha256:b5f647cb9c409f563d4671fe3fc05ddea01fabfed9b41fc11cb923588e1c1baf mirror: GitHub Phase A durable MCP OAuth (#270) Human minor 10 days ago
sha256:d8c648b20a4d53b2673c5c082ee7edfa7b2fc9b11080832da1f38807b6bf940b fix(7C-L1b): route hosted delegation proposals through cani… Human minor 30 days ago
sha256:2827ba9e7632a4b141c50caf1e8f7d77abbc3515be20e7465f2bccb0ac4edf91 fix: repair endpoint now sets has_active_subscription when … Human minor 49 days ago