work on test models part 1
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
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));
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user