fix(teilen): Basis-Adresse per Lebendprobe prüfen, sonst fragen (D81-Nachtrag)

Auf einer Instanz ohne eigenes Backend (GitHub Pages) endete Teilen mit
HTTP 405: Die Vorgabe "eigene Herkunft" (D76-Nachtrag 8) stimmt nur auf der
produktiven Installation. serverBaseOrAsk() prüft die Vorgabe jetzt mit
GET /api/v1/info (D77), bevor gePOSTet wird, und fragt sonst nach der
Server-Adresse; gemerkt wird nur eine Adresse, die die Probe besteht.
Von Pages aus trägt man werkbaum.javagil.de ein — CORS erlaubt es.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
mhoennig
2026-08-27 05:23:19 +02:00
co-authored by Claude Fable 5
parent 4be6ecb984
commit 67d0ef421b
5 changed files with 79 additions and 6 deletions
+7 -1
View File
@@ -1,7 +1,7 @@
import {describe, it, expect} from 'vitest';
import {
liveUrls, normalize, lines, text, computeOps, applyOps,
mapLine, caretToLineCol, lineColToCaret, feedAction, serverBase, documentsUrl,
mapLine, caretToLineCol, lineColToCaret, feedAction, serverBase, documentsUrl, infoUrl,
} from '../src/live.js';
describe('Adressen', () => {
@@ -195,6 +195,12 @@ describe('Basis-Adresse des Backends', () => {
.toBe('https://werkbaum.example/api/v1/documents');
});
it('die Lebendprobe fragt /api/v1/info an der Basis (D81-Nachtrag)', () => {
expect(infoUrl('https://werkbaum.example')).toBe('https://werkbaum.example/api/v1/info');
expect(infoUrl('https://werkbaum.example/unterverzeichnis/'))
.toBe('https://werkbaum.example/unterverzeichnis/api/v1/info');
});
it('der ?server=-Parameter hat Vorrang', () => {
expect(serverBase('http://localhost:8080', 'https://fremd.example/api/v1/documents/x', seite))
.toBe('http://localhost:8080');