33 lines
1.1 KiB
Dart
33 lines
1.1 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:marianum_mobile/api/marianumconnect/queries/timetable_get_rooms/timetable_get_rooms_response.dart';
|
|
import 'package:marianum_mobile/state/app/modules/timetable/bloc/timetable_state.dart';
|
|
|
|
TimetableGetRoomsResponse _rooms(String name) => TimetableGetRoomsResponse(
|
|
result: [McRoom(id: 1, shortName: name, longName: name)],
|
|
);
|
|
|
|
void main() {
|
|
final base = TimetableState(
|
|
startDate: DateTime(2026, 9, 21),
|
|
endDate: DateTime(2026, 9, 25),
|
|
rooms: _rooms('A101'),
|
|
dataVersion: 3,
|
|
);
|
|
|
|
test('returns the same state when the content is unchanged', () {
|
|
expect(base.withReferenceData(rooms: _rooms('A101')), same(base));
|
|
});
|
|
|
|
test('bumps dataVersion and takes the new value when content changed', () {
|
|
final next = _rooms('B202');
|
|
final result = base.withReferenceData(rooms: next);
|
|
expect(result.rooms, same(next));
|
|
expect(result.dataVersion, 4);
|
|
});
|
|
|
|
test('keeps unchanged instances when only another field changed', () {
|
|
final result = base.withReferenceData(rooms: _rooms('A101'));
|
|
expect(result.rooms, same(base.rooms));
|
|
});
|
|
}
|