Fixed Tests
parent
b7d5f1d51f
commit
999aa8fc42
|
@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
import 'package:smoke_cess_app/providers/input_provider.dart';
|
import 'package:smoke_cess_app/providers/input_provider.dart';
|
||||||
|
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
group('InputProvider', () {
|
group('InputProvider', () {
|
||||||
test('Initial values are correct', () {
|
test('Initial values are correct', () {
|
||||||
|
@ -11,12 +10,14 @@ void main() {
|
||||||
expect(inputProvider.sliderValue, equals(50));
|
expect(inputProvider.sliderValue, equals(50));
|
||||||
expect(inputProvider.textController.text, equals(''));
|
expect(inputProvider.textController.text, equals(''));
|
||||||
expect(inputProvider.relapseCategory, equals(''));
|
expect(inputProvider.relapseCategory, equals(''));
|
||||||
expect(inputProvider.getTimeEntry('wokeUpAt'),equals(const TimeOfDay(hour: 8, minute: 0)));
|
expect(inputProvider.getTimeEntry(SleepTimes.wokeUpAt),
|
||||||
expect(inputProvider.getTimeEntry('sleptAt'),equals(const TimeOfDay(hour: 22, minute: 0)));
|
equals(const TimeOfDay(hour: 8, minute: 0)));
|
||||||
|
expect(inputProvider.getTimeEntry(SleepTimes.sleptAt),
|
||||||
|
equals(const TimeOfDay(hour: 22, minute: 0)));
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Setters work right way', () {
|
test('Setters work right way', () {
|
||||||
late final inputProvider = InputProvider();
|
late final inputProvider = InputProvider();
|
||||||
|
|
||||||
inputProvider.sliderValue = 75;
|
inputProvider.sliderValue = 75;
|
||||||
expect(inputProvider.sliderValue, equals(75));
|
expect(inputProvider.sliderValue, equals(75));
|
||||||
|
@ -27,33 +28,39 @@ void main() {
|
||||||
inputProvider.relapseCategory = 'Test';
|
inputProvider.relapseCategory = 'Test';
|
||||||
expect(inputProvider.relapseCategory, equals('Test'));
|
expect(inputProvider.relapseCategory, equals('Test'));
|
||||||
|
|
||||||
inputProvider.setTime('wokeUpAt', const TimeOfDay(hour: 7, minute: 0));
|
inputProvider.setTime(
|
||||||
expect(inputProvider.getTimeEntry('wokeUpAt'),equals(const TimeOfDay(hour: 7, minute: 0)));
|
SleepTimes.wokeUpAt, const TimeOfDay(hour: 7, minute: 0));
|
||||||
|
expect(inputProvider.getTimeEntry(SleepTimes.wokeUpAt),
|
||||||
|
equals(const TimeOfDay(hour: 7, minute: 0)));
|
||||||
|
|
||||||
inputProvider.setTime('sleptAt', const TimeOfDay(hour: 23, minute: 0));
|
inputProvider.setTime(
|
||||||
expect(inputProvider.getTimeEntry('sleptAt'), equals(const TimeOfDay(hour: 23, minute: 0)));
|
SleepTimes.sleptAt, const TimeOfDay(hour: 23, minute: 0));
|
||||||
|
expect(inputProvider.getTimeEntry(SleepTimes.sleptAt),
|
||||||
|
equals(const TimeOfDay(hour: 23, minute: 0)));
|
||||||
});
|
});
|
||||||
test('Reset Fields should reset all fields correctly', () async{
|
test('Reset Fields should reset all fields correctly', () async {
|
||||||
final inputProvider = InputProvider();
|
final inputProvider = InputProvider();
|
||||||
|
|
||||||
inputProvider.sliderValue = 44;
|
inputProvider.sliderValue = 44;
|
||||||
inputProvider.textController.text = 'Test';
|
inputProvider.textController.text = 'Test';
|
||||||
inputProvider.setTime('wokeUpAt', const TimeOfDay(hour: 7, minute: 0));
|
inputProvider.setTime(
|
||||||
inputProvider.setTime('sleptAt', const TimeOfDay(hour: 23, minute: 0));
|
SleepTimes.wokeUpAt, const TimeOfDay(hour: 7, minute: 0));
|
||||||
|
inputProvider.setTime(
|
||||||
final result = await inputProvider.saveMood(); // calls private function ResetFields
|
SleepTimes.sleptAt, const TimeOfDay(hour: 23, minute: 0));
|
||||||
|
|
||||||
expect(result, equals(1));
|
|
||||||
expect(inputProvider.sliderValue, equals(50));
|
|
||||||
expect(inputProvider.textController.text, equals(''));
|
|
||||||
expect(inputProvider.getTimeEntry('wokeUpAt'),equals(const TimeOfDay(hour: 8, minute: 0)));
|
|
||||||
expect(inputProvider.getTimeEntry('sleptAt'), equals(const TimeOfDay(hour: 22, minute: 0)));
|
|
||||||
|
|
||||||
|
|
||||||
|
final result =
|
||||||
|
await inputProvider.saveMood(); // calls private function ResetFields
|
||||||
|
|
||||||
|
expect(result, equals(1));
|
||||||
|
expect(inputProvider.sliderValue, equals(50));
|
||||||
|
expect(inputProvider.textController.text, equals(''));
|
||||||
|
expect(inputProvider.getTimeEntry(SleepTimes.wokeUpAt),
|
||||||
|
equals(const TimeOfDay(hour: 8, minute: 0)));
|
||||||
|
expect(inputProvider.getTimeEntry(SleepTimes.sleptAt),
|
||||||
|
equals(const TimeOfDay(hour: 22, minute: 0)));
|
||||||
});
|
});
|
||||||
test('Save Mood ', () async {
|
test('Save Mood ', () async {
|
||||||
late final inputProvider = InputProvider();
|
late final inputProvider = InputProvider();
|
||||||
|
|
||||||
final result = await inputProvider.saveMood();
|
final result = await inputProvider.saveMood();
|
||||||
|
|
||||||
|
@ -63,7 +70,7 @@ void main() {
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Save Relapse', () async {
|
test('Save Relapse', () async {
|
||||||
late final inputProvider = InputProvider();
|
late final inputProvider = InputProvider();
|
||||||
|
|
||||||
final result = await inputProvider.saveRelapse();
|
final result = await inputProvider.saveRelapse();
|
||||||
|
|
||||||
|
@ -75,13 +82,16 @@ void main() {
|
||||||
test('Save Sleep', () async {
|
test('Save Sleep', () async {
|
||||||
late final inputProvider = InputProvider();
|
late final inputProvider = InputProvider();
|
||||||
|
|
||||||
final result = await inputProvider.saveSleep('wokeUpAt', 'sleptAt');
|
final result = await inputProvider.saveSleep(
|
||||||
|
SleepTimes.wokeUpAt, SleepTimes.sleptAt);
|
||||||
|
|
||||||
expect(result, equals(1));
|
expect(result, equals(1));
|
||||||
expect(inputProvider.sliderValue, equals(50));
|
expect(inputProvider.sliderValue, equals(50));
|
||||||
expect(inputProvider.textController.text, equals(''));
|
expect(inputProvider.textController.text, equals(''));
|
||||||
expect(inputProvider.getTimeEntry('wokeUpAt'),equals(const TimeOfDay(hour: 8, minute: 0)));
|
expect(inputProvider.getTimeEntry(SleepTimes.wokeUpAt),
|
||||||
expect(inputProvider.getTimeEntry('sleptAt'),equals(const TimeOfDay(hour: 22, minute: 0)));
|
equals(const TimeOfDay(hour: 8, minute: 0)));
|
||||||
|
expect(inputProvider.getTimeEntry(SleepTimes.sleptAt),
|
||||||
|
equals(const TimeOfDay(hour: 22, minute: 0)));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,43 +1,40 @@
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
import 'package:smoke_cess_app/providers/timer_provider.dart';
|
import 'package:smoke_cess_app/providers/timer_provider.dart';
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
test('Timer should start and set started to true', () {
|
test('Timer should start and set started to true', () {
|
||||||
final timerProvider = TimerProvider();
|
final timerProvider = TimerProvider();
|
||||||
timerProvider.startTimer(Duration(seconds: 10));
|
timerProvider.startTimer(const Duration(seconds: 10));
|
||||||
expect(timerProvider.started, true);
|
expect(timerProvider.started, true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Elapsed time should increase and be less than or equal to the duration', () {
|
test('Elapsed time should increase and be less than or equal to the duration',
|
||||||
final timerProvider = TimerProvider();
|
() {
|
||||||
timerProvider.startTimer(Duration(seconds: 10));
|
final timerProvider = TimerProvider();
|
||||||
final initialElapsedSeconds = timerProvider.elapsedSeconds;
|
timerProvider.startTimer(const Duration(seconds: 10));
|
||||||
// Wait for the timer to tick at least once.
|
final initialElapsedSeconds = timerProvider.elapsedSeconds;
|
||||||
Future.delayed(Duration(seconds: 2), () {
|
// Wait for the timer to tick at least once.
|
||||||
expect(timerProvider.elapsedSeconds, greaterThan(initialElapsedSeconds));
|
Future.delayed(const Duration(seconds: 2), () {
|
||||||
expect(timerProvider.elapsedSeconds, lessThanOrEqualTo(10));
|
expect(timerProvider.elapsedSeconds, greaterThan(initialElapsedSeconds));
|
||||||
|
expect(timerProvider.elapsedSeconds, lessThanOrEqualTo(10));
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
test('Timer should stop and set started to false', () {
|
test('Timer should stop and set started to false', () {
|
||||||
final timerProvider = TimerProvider();
|
final timerProvider = TimerProvider();
|
||||||
timerProvider.startTimer(Duration(seconds: 10));
|
timerProvider.startTimer(const Duration(seconds: 10));
|
||||||
timerProvider.stopTimer();
|
timerProvider.stopTimer();
|
||||||
expect(timerProvider.started, false);
|
expect(timerProvider.started, false);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Elapsed seconds should be 0 when timer is not running', () {
|
|
||||||
final timerProvider = TimerProvider();
|
|
||||||
expect(timerProvider.elapsedSeconds, 0);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('Timer should stop and set started to false when duration is 0', () {
|
|
||||||
final timerProvider = TimerProvider();
|
|
||||||
timerProvider.startTimer(Duration(seconds: 0));
|
|
||||||
expect(timerProvider.started, false);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
test('Elapsed seconds should be 0 when timer is not running', () {
|
||||||
|
final timerProvider = TimerProvider();
|
||||||
|
expect(timerProvider.elapsedSeconds, 0);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('Timer should stop and set started to false when duration is 0', () {
|
||||||
|
final timerProvider = TimerProvider();
|
||||||
|
timerProvider.startTimer(const Duration(seconds: 0));
|
||||||
|
expect(timerProvider.started, false);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,18 +2,17 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
import 'package:smoke_cess_app/widgets/elevated_card.dart';
|
import 'package:smoke_cess_app/widgets/elevated_card.dart';
|
||||||
|
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
group('ElevatedCard', () {
|
group('ElevatedCard', () {
|
||||||
testWidgets('Renders the title and child', (WidgetTester tester) async {
|
testWidgets('Renders the title and child', (WidgetTester tester) async {
|
||||||
// Arrange
|
// Arrange
|
||||||
const title = 'My Card Title';
|
const title = 'My Card Title';
|
||||||
const childText = 'My Card Content';
|
const childText = 'My Card Content';
|
||||||
final child = Text(childText);
|
const child = Text(childText);
|
||||||
final card = ElevatedCard (title: title, child: child);
|
const card = ElevatedCard(title: title, child: child);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
await tester.pumpWidget(MaterialApp(home: Scaffold(body: card)));
|
await tester.pumpWidget(const MaterialApp(home: Scaffold(body: card)));
|
||||||
final titleFinder = find.text(title);
|
final titleFinder = find.text(title);
|
||||||
final childFinder = find.text(childText);
|
final childFinder = find.text(childText);
|
||||||
|
|
||||||
|
@ -63,8 +62,10 @@ void main() {
|
||||||
final cardWidget = tester.widget<Card>(cardFinder);
|
final cardWidget = tester.widget<Card>(cardFinder);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
expect(cardWidget.shape,
|
expect(
|
||||||
const RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(16.0))));
|
cardWidget.shape,
|
||||||
|
const RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.all(Radius.circular(16.0))));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
|
||||||
import 'package:smoke_cess_app/widgets/missing_config_popup.dart';
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
testWidgets('MissingConfigPopup displays title and text', (WidgetTester tester) async {
|
|
||||||
final String title = 'Missing Configuration';
|
|
||||||
final String text = 'Please configure the app before using it.';
|
|
||||||
|
|
||||||
await tester.pumpWidget(MaterialApp(
|
|
||||||
home: MissingConfigPopup(title: title, text: text),
|
|
||||||
));
|
|
||||||
|
|
||||||
expect(find.text(title), findsOneWidget);
|
|
||||||
expect(find.text(text), findsOneWidget);
|
|
||||||
});
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
|
||||||
import 'package:smoke_cess_app/widgets/timer_button.dart';
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
testWidgets('TimerButton should display icon & color and react to click', (WidgetTester tester) async {
|
|
||||||
// Define the icon and color
|
|
||||||
final Icon icon = Icon(Icons.play_arrow);
|
|
||||||
final Color color = Colors.green;
|
|
||||||
|
|
||||||
// Build the TimerButton
|
|
||||||
var clicked = false;
|
|
||||||
await tester.pumpWidget(
|
|
||||||
MaterialApp(
|
|
||||||
home: TimerButton(
|
|
||||||
onClicked: () => clicked = true,
|
|
||||||
icon: icon,
|
|
||||||
color: color,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
// Verify that the icon and color are displayed
|
|
||||||
expect(find.byWidgetPredicate((widget) => widget is CircleAvatar && widget.child == icon ), findsOneWidget);
|
|
||||||
|
|
||||||
expect(find.byWidgetPredicate((widget) => widget is CircleAvatar && widget.backgroundColor == color ), findsOneWidget);
|
|
||||||
|
|
||||||
// Tap the button
|
|
||||||
await tester.tap(find.byType(InkWell));
|
|
||||||
await tester.pump();
|
|
||||||
|
|
||||||
// Verify that the onClicked callback was called
|
|
||||||
expect(clicked, true);
|
|
||||||
});
|
|
||||||
}
|
|
|
@ -2,16 +2,13 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
import 'package:smoke_cess_app/widgets/todo_icon.dart';
|
import 'package:smoke_cess_app/widgets/todo_icon.dart';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
testWidgets('MyToDoIcon has a red dot', (WidgetTester tester) async {
|
testWidgets('MyToDoIcon has a red dot', (WidgetTester tester) async {
|
||||||
// Build the widget tree
|
// Build the widget tree
|
||||||
await tester.pumpWidget(
|
await tester.pumpWidget(
|
||||||
MaterialApp(
|
const MaterialApp(
|
||||||
home: Scaffold(
|
home: Scaffold(
|
||||||
|
body: MyToDoIcon(
|
||||||
body: MyToDoIcon (
|
|
||||||
Icon(Icons.check),
|
Icon(Icons.check),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -20,7 +17,5 @@ void main() {
|
||||||
|
|
||||||
// Verify that the red dot is present
|
// Verify that the red dot is present
|
||||||
expect(find.byIcon(Icons.brightness_1), findsOneWidget);
|
expect(find.byIcon(Icons.brightness_1), findsOneWidget);
|
||||||
// paints => verifys that a widget paints a certain shape or color v^1.15.30
|
|
||||||
expect(find.byIcon(Icons.brightness_1).first, paints..circle(color: Colors.redAccent));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue