Skip to content

Commit 954bb50

Browse files
committed
feat: add integration tests
1 parent e1f281b commit 954bb50

14 files changed

+218
-8
lines changed

lib/constants.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
import 'dart:core';
22

3+
const instrumentsScreenTitleKey = 'instruments_screen_title';
4+
const accelerometerScreenTitleKey = 'accelerometer_screen_title';
5+
const powerSourceScreenTitleKey = 'power_source_screen_title';
6+
const multimeterScreenTitleKey = 'multimeter_screen_title';
7+
const waveGeneratorScreenTitleKey = 'wave_generator_screen_title';
8+
const oscilloscopeScreenTitleKey = 'oscilloscope_screen_title';
9+
310
List<String> instrumentHeadings = [
411
'OSCILLOSCOPE',
512
'MULTIMETER',

lib/providers/accelerometer_state_provider.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ class AccelerometerStateProvider extends ChangeNotifier {
1515
final List<double> _yData = [];
1616
final List<double> _zData = [];
1717

18-
final List<FlSpot> xData = [];
19-
final List<FlSpot> yData = [];
20-
final List<FlSpot> zData = [];
18+
final List<FlSpot> xData = [const FlSpot(0, 0)];
19+
final List<FlSpot> yData = [const FlSpot(0, 0)];
20+
final List<FlSpot> zData = [const FlSpot(0, 0)];
2121

2222
final int _maxLength = 50;
2323
double _xMin = 0, _xMax = 0;

lib/view/accelerometer_screen.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'package:flutter/material.dart';
22
import 'package:provider/provider.dart';
3+
import 'package:pslab/constants.dart';
34
import 'package:pslab/l10n/app_localizations.dart';
45
import 'package:pslab/providers/locator.dart';
56
import 'package:pslab/view/widgets/guide_widget.dart';
@@ -11,7 +12,6 @@ import 'package:pslab/view/logged_data_screen.dart';
1112

1213
import '../providers/accelerometer_config_provider.dart';
1314
import '../theme/colors.dart';
14-
import '../constants.dart';
1515
import 'accelerometer_config_screen.dart';
1616

1717
class AccelerometerScreen extends StatefulWidget {
@@ -229,6 +229,7 @@ class _AccelerometerScreenState extends State<AccelerometerScreen> {
229229
builder: (context, provider, child) {
230230
return CommonScaffold(
231231
title: appLocalizations.accelerometerTitle,
232+
key: const Key(accelerometerScreenTitleKey),
232233
onGuidePressed: _showInstrumentGuide,
233234
onOptionsPressed: _showOptionsMenu,
234235
onRecordPressed: _toggleRecording,

lib/view/instruments_screen.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import 'package:flutter/material.dart';
22
import 'package:flutter/services.dart';
3-
import 'package:permission_handler/permission_handler.dart';
43
import 'package:pslab/constants.dart';
54
import 'package:pslab/l10n/app_localizations.dart';
65
import 'package:pslab/providers/locator.dart';
@@ -253,7 +252,6 @@ class _InstrumentsScreenState extends State<InstrumentsScreen> {
253252
_setOrientation();
254253
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
255254
});
256-
Permission.microphone.request();
257255
}
258256

259257
void _setOrientation() {
@@ -267,6 +265,7 @@ class _InstrumentsScreenState extends State<InstrumentsScreen> {
267265
Widget build(BuildContext context) {
268266
return MainScaffold(
269267
index: 0,
268+
scaffoldKey: const Key(instrumentsScreenTitleKey),
270269
title: appLocalizations.instrumentsTitle,
271270
showSearch: true,
272271
onSearchChanged: _filterInstruments,

lib/view/multimeter_screen.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'package:flutter/material.dart';
22
import 'package:provider/provider.dart';
3+
import 'package:pslab/constants.dart';
34
import 'package:pslab/l10n/app_localizations.dart';
45
import 'package:pslab/providers/locator.dart';
56
import 'package:pslab/providers/multimeter_state_provider.dart';
@@ -47,6 +48,7 @@ class _MultimeterScreenState extends State<MultimeterScreen> {
4748
children: [
4849
CommonScaffold(
4950
title: appLocalizations.multimeterTitle,
51+
key: const Key(multimeterScreenTitleKey),
5052
body: SafeArea(
5153
child: Column(
5254
children: [

lib/view/oscilloscope_screen.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
22
import 'package:flutter/services.dart';
33
import 'package:provider/provider.dart';
44
import 'package:pslab/communication/science_lab.dart';
5+
import 'package:pslab/constants.dart';
56
import 'package:pslab/l10n/app_localizations.dart';
67
import 'package:pslab/providers/locator.dart';
78
import 'package:pslab/view/widgets/channel_parameters_widget.dart';
@@ -117,6 +118,7 @@ class _OscilloscopeScreenState extends State<OscilloscopeScreen> {
117118
children: [
118119
CommonScaffold(
119120
title: appLocalizations.oscilloscope,
121+
key: const Key(oscilloscopeScreenTitleKey),
120122
body: SafeArea(
121123
minimum: const EdgeInsets.only(right: 0, bottom: 0),
122124
child: Container(

lib/view/power_source_screen.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'package:flutter/material.dart';
22
import 'package:provider/provider.dart';
3+
import 'package:pslab/constants.dart';
34
import 'package:pslab/l10n/app_localizations.dart';
45
import 'package:pslab/providers/locator.dart';
56
import 'package:pslab/providers/power_source_state_provider.dart';
@@ -50,6 +51,7 @@ class _PowerSourceScreenState extends State<PowerSourceScreen> {
5051
children: [
5152
CommonScaffold(
5253
title: appLocalizations.powerSourceTitle,
54+
key: const Key(powerSourceScreenTitleKey),
5355
body: ScrollConfiguration(
5456
behavior: ScrollBehavior(),
5557
child: ListView(

lib/view/wave_generator_screen.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'package:flutter/material.dart';
22
import 'package:provider/provider.dart';
33
import 'package:pslab/communication/science_lab.dart';
4+
import 'package:pslab/constants.dart';
45
import 'package:pslab/l10n/app_localizations.dart';
56
import 'package:pslab/providers/locator.dart';
67
import 'package:pslab/providers/wave_generator_state_provider.dart';
@@ -81,6 +82,7 @@ class _WaveGeneratorScreenState extends State<WaveGeneratorScreen> {
8182
children: [
8283
CommonScaffold(
8384
title: appLocalizations.waveGenerator,
85+
key: const Key(waveGeneratorScreenTitleKey),
8486
body: SafeArea(
8587
child: Container(
8688
margin:

lib/view/widgets/channel_parameters_widget.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'package:flutter/material.dart';
2+
import 'package:permission_handler/permission_handler.dart';
23
import 'package:provider/provider.dart';
34
import 'package:pslab/l10n/app_localizations.dart';
45
import 'package:pslab/providers/locator.dart';
@@ -246,7 +247,8 @@ class _ChannelParametersState extends State<ChannelParametersWidget> {
246247
RadioGroup(
247248
groupValue:
248249
oscilloscopeStateProvider.isInBuiltMICSelected,
249-
onChanged: (bool? value) {
250+
onChanged: (bool? value) async {
251+
await Permission.microphone.request();
250252
setState(
251253
() {
252254
if (value == null) {

lib/view/widgets/main_scaffold_widget.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ class _MainScaffoldState extends State<MainScaffold>
130130
cursorColor: appBarContentColor,
131131
)
132132
: Text(
133-
key: ValueKey('title_${widget.title}'),
133+
key: widget.scaffoldKey,
134134
widget.title,
135135
style: TextStyle(
136136
color: appBarContentColor,

0 commit comments

Comments
 (0)