Files
tm_app/test/model/feedback_stats_test.dart
2025-10-06 16:26:53 +03:30

53 lines
1.6 KiB
Dart

import 'package:flutter_test/flutter_test.dart';
import 'package:tm_app/data/services/model/feedback_stats/feedback_stats.dart';
void main() {
group('FeedbackStats Model Tests', () {
final mockJson = {
'company_id': 'cmp123',
'last_updated': 1710000000,
'total_dislikes': 3,
'total_feedback': 25,
'total_likes': 22,
};
test('fromJson creates valid FeedbackStats instance', () {
final stats = FeedbackStats.fromJson(mockJson);
expect(stats.companyId, equals('cmp123'));
expect(stats.lastUpdated, equals(1710000000));
expect(stats.totalDislikes, equals(3));
expect(stats.totalFeedback, equals(25));
expect(stats.totalLikes, equals(22));
});
test('toJson converts model back to JSON correctly', () {
final stats = FeedbackStats.fromJson(mockJson);
final json = stats.toJson();
expect(json['company_id'], 'cmp123');
expect(json['last_updated'], 1710000000);
expect(json['total_dislikes'], 3);
expect(json['total_feedback'], 25);
expect(json['total_likes'], 22);
});
test('copyWith correctly updates fields', () {
final stats = FeedbackStats.fromJson(mockJson);
final updated = stats.copyWith(totalLikes: 30, totalDislikes: 10);
expect(updated.totalLikes, 30);
expect(updated.totalDislikes, 10);
expect(updated.companyId, 'cmp123');
});
test('equality operator works correctly', () {
final s1 = FeedbackStats.fromJson(mockJson);
final s2 = FeedbackStats.fromJson(mockJson);
expect(s1, equals(s2));
expect(s1.hashCode, equals(s2.hashCode));
});
});
}