mirror of
https://github.com/rzuasti/oott.git
synced 2026-07-08 19:21:54 +02:00
Fix API docs link when app is served from the backend
The API docs nav entry uses the origin-relative path "/api/docs", which Uri.parse left scheme- and host-less, so canLaunchUrl/launchUrl could not open it (e.g. in Docker). Resolve external links against the current page so they carry a scheme and host; absolute URLs pass through unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
37075294e3
commit
b0222445fb
@@ -0,0 +1,28 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:frontend/navigation.dart';
|
||||
|
||||
void main() {
|
||||
final origin = Uri.parse('http://192.168.1.10:8080/web/devices');
|
||||
|
||||
test('resolves an origin-relative path against the current host', () {
|
||||
expect(
|
||||
resolveExternalUri('/api/docs', base: origin),
|
||||
Uri.parse('http://192.168.1.10:8080/api/docs'),
|
||||
);
|
||||
});
|
||||
|
||||
test('preserves the scheme and host of an https origin', () {
|
||||
final secure = Uri.parse('https://example.com/web/');
|
||||
expect(
|
||||
resolveExternalUri('/api/docs', base: secure),
|
||||
Uri.parse('https://example.com/api/docs'),
|
||||
);
|
||||
});
|
||||
|
||||
test('returns an absolute URL unchanged', () {
|
||||
expect(
|
||||
resolveExternalUri('https://docs.example.com/spec', base: origin),
|
||||
Uri.parse('https://docs.example.com/spec'),
|
||||
);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user