79 lines
3.5 KiB
Dart
79 lines
3.5 KiB
Dart
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));
|
|
});
|
|
});
|
|
} |