Unterschriftenerfassung dauerhaft auf Deutsch anzeigen, lokale VHS-Buildkonfiguration und Regressionstests ergänzen sowie Version auf 357.0.0+357 anheben.
52 lines
1.4 KiB
Dart
52 lines
1.4 KiB
Dart
import 'dart:convert';
|
|
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:stadtbote/model/job.dart';
|
|
|
|
void main() {
|
|
group('Job map_url', () {
|
|
test('erhält die Server-URL einschließlich Query und Fragment', () {
|
|
const mapUrl = 'https://vhs.example.invalid/map?job=21891302#courier';
|
|
final payload = _jobPayload()..['map_url'] = mapUrl;
|
|
|
|
final job = Job.fromJson(payload);
|
|
final serialized =
|
|
jsonDecode(jsonEncode(job.toJson())) as Map<String, dynamic>;
|
|
final restored = Job.fromJson(serialized);
|
|
|
|
expect(job.mapUrl, mapUrl);
|
|
expect(serialized['map_url'], mapUrl);
|
|
expect(restored.mapUrl, mapUrl);
|
|
expect(restored.externalId, 21891302);
|
|
});
|
|
|
|
test('liest ältere Aufträge ohne map_url weiterhin ein', () {
|
|
final job = Job.fromJson(_jobPayload());
|
|
final restored = Job.fromJson(job.toJson());
|
|
|
|
expect(job.mapUrl, isNull);
|
|
expect(restored.mapUrl, isNull);
|
|
expect(restored.externalId, 21891302);
|
|
});
|
|
|
|
test('akzeptiert eine explizit fehlende map_url', () {
|
|
final payload = _jobPayload()..['map_url'] = null;
|
|
|
|
expect(Job.fromJson(payload).mapUrl, isNull);
|
|
});
|
|
});
|
|
}
|
|
|
|
Map<String, dynamic> _jobPayload() => {
|
|
'id': 21891302,
|
|
'ver': '0',
|
|
'state': 0,
|
|
'ordertime': 1791285073,
|
|
'offs_warn': 0,
|
|
'global': false,
|
|
'vht_id': 2,
|
|
'rem': '',
|
|
'delayOrderTime': 0,
|
|
'tours': <Map<String, dynamic>>[],
|
|
};
|