53 lines
1.6 KiB
Dart
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));
|
|
});
|
|
});
|
|
}
|