frosty/test/models/user_test.dart
2026-02-07 00:51:22 -08:00

44 lines
1.3 KiB
Dart

import 'package:flutter_test/flutter_test.dart';
import 'package:frosty/models/user.dart';
import '../fixtures/api_responses.dart';
void main() {
group('UserTwitch', () {
test('fromJson deserializes snake_case fields', () {
final user = UserTwitch.fromJson(
(twitchUserResponse['data']! as List).first as Map<String, dynamic>,
);
expect(user.id, '12345');
expect(user.login, 'testuser');
expect(user.displayName, 'TestUser');
expect(user.profileImageUrl, 'https://cdn/profile.png');
});
});
group('UserBlockedTwitch', () {
test('fromJson deserializes snake_case fields', () {
final blocked = UserBlockedTwitch.fromJson(
(twitchBlockedUsersResponse['data']! as List).first
as Map<String, dynamic>,
);
expect(blocked.userId, '99999');
expect(blocked.userLogin, 'blockeduser');
expect(blocked.displayName, 'BlockedUser');
});
test('fromJson with different values', () {
final blocked = UserBlockedTwitch.fromJson(const {
'user_id': '11111',
'user_login': 'another_blocked',
'display_name': 'AnotherBlocked',
});
expect(blocked.userId, '11111');
expect(blocked.userLogin, 'another_blocked');
expect(blocked.displayName, 'AnotherBlocked');
});
});
}