feat: select school terms and smooth refractive Dock motion
This commit is contained in:
@@ -3,6 +3,10 @@ import 'dart:convert';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:hepan_everyday/data/json_schedule_import.dart';
|
||||
import 'package:hepan_everyday/domain/course.dart';
|
||||
import 'package:hepan_everyday/domain/app_snapshot.dart';
|
||||
import 'package:hepan_everyday/domain/school_term.dart';
|
||||
|
||||
import '../domain/schedule_engine_test.dart' show course;
|
||||
|
||||
Map<String, dynamic> row({String id = 'a', int day = 1}) => {
|
||||
'id': id,
|
||||
@@ -17,6 +21,27 @@ Map<String, dynamic> row({String id = 'a', int day = 1}) => {
|
||||
String input(List<dynamic> courses, {int version = 1, bool demo = false}) =>
|
||||
jsonEncode({'schemaVersion': version, 'isDemo': demo, 'courses': courses});
|
||||
void main() {
|
||||
test('saved term metadata and legacy course IDs keep JSON imports in their actual term', () {
|
||||
final saved = AppSnapshot(
|
||||
schoolTerm: SchoolTerm(72),
|
||||
courses: [course()],
|
||||
).toJson();
|
||||
expect(
|
||||
JsonScheduleImport.parse(jsonEncode(saved)).schoolTerm,
|
||||
SchoolTerm(72),
|
||||
);
|
||||
saved.remove('schoolTerm');
|
||||
(saved['courses'] as List).first['id'] = 'uestc-71-101-1-1-2-example';
|
||||
expect(
|
||||
JsonScheduleImport.parse(jsonEncode(saved)).schoolTerm,
|
||||
SchoolTerm(71),
|
||||
);
|
||||
saved['schoolTerm'] = {'id': 0};
|
||||
expect(
|
||||
() => JsonScheduleImport.parse(jsonEncode(saved)),
|
||||
throwsFormatException,
|
||||
);
|
||||
});
|
||||
test('file import normalizes weeks and cannot claim school provenance', () {
|
||||
final parsed = JsonScheduleImport.parse(input([row()]));
|
||||
expect(parsed.courses, hasLength(1));
|
||||
|
||||
Reference in New Issue
Block a user