This commit is contained in:
ytc1012
2025-11-26 16:32:47 +08:00
parent 96658339e1
commit 0195cdf54b
18 changed files with 1052 additions and 240 deletions

View File

@@ -0,0 +1,79 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:focus_buddy/services/encouragement_service.dart';
void main() {
group('EncouragementService', () {
late EncouragementService encouragementService;
setUp(() {
encouragementService = EncouragementService();
});
test('should initialize with default messages when load fails', () async {
// Act: Try to load messages (will fail since we're in test environment)
await encouragementService.loadMessages();
// Assert: Should have default messages for all types
expect(encouragementService.getAllMessages(), isNotEmpty);
expect(encouragementService.getAllMessages(EncouragementType.start), isNotEmpty);
expect(encouragementService.getAllMessages(EncouragementType.distraction), isNotEmpty);
expect(encouragementService.getAllMessages(EncouragementType.complete), isNotEmpty);
expect(encouragementService.getAllMessages(EncouragementType.earlyStop), isNotEmpty);
});
test('should return a random message for each type', () async {
// Arrange: Load messages
await encouragementService.loadMessages();
// Act: Get random messages for each type
final generalMessage = encouragementService.getRandomMessage();
final startMessage = encouragementService.getRandomMessage(EncouragementType.start);
final distractionMessage = encouragementService.getRandomMessage(EncouragementType.distraction);
final completeMessage = encouragementService.getRandomMessage(EncouragementType.complete);
final earlyStopMessage = encouragementService.getRandomMessage(EncouragementType.earlyStop);
// Assert: All messages should be non-empty strings
expect(generalMessage, isNotEmpty);
expect(startMessage, isNotEmpty);
expect(distractionMessage, isNotEmpty);
expect(completeMessage, isNotEmpty);
expect(earlyStopMessage, isNotEmpty);
});
test('should return general messages when using default type', () async {
// Arrange: Load messages
await encouragementService.loadMessages();
final generalMessages = encouragementService.getAllMessages();
// Act: Get a random message with default type
final message = encouragementService.getRandomMessage();
// Assert: Message should be in the general messages list
expect(generalMessages, contains(message));
});
test('should return distraction-specific messages when requested', () async {
// Arrange: Load messages
await encouragementService.loadMessages();
final distractionMessages = encouragementService.getAllMessages(EncouragementType.distraction);
// Act: Get a random distraction message
final message = encouragementService.getRandomMessage(EncouragementType.distraction);
// Assert: Message should be in the distraction messages list
expect(distractionMessages, contains(message));
});
test('should return complete-specific messages when requested', () async {
// Arrange: Load messages
await encouragementService.loadMessages();
final completeMessages = encouragementService.getAllMessages(EncouragementType.complete);
// Act: Get a random complete message
final message = encouragementService.getRandomMessage(EncouragementType.complete);
// Assert: Message should be in the complete messages list
expect(completeMessages, contains(message));
});
});
}