Skip to content

Commit 7339901

Browse files
authored
Merge pull request #2232 from leancodepl/add-dart-define-from-file
Add dart define from file
2 parents 3401458 + d4b824c commit 7339901

File tree

17 files changed

+421
-7
lines changed

17 files changed

+421
-7
lines changed

README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,21 @@ abstract class NativeAutomator<IOSServer, AndroidServer, DartClient> {
153153

154154
3. Run `gen_from_schema` script, few files will be updated
155155

156+
## Develop patrol_cli
157+
158+
If you have previously activated patrol_cli run:
159+
160+
```bash
161+
dart pub global deactivate patrol_cli
162+
```
163+
164+
then
165+
166+
```bash
167+
cd packages/patrol_cli
168+
flutter pub global activate -s path .
169+
```
170+
156171
[patrol_badge]: https://img.shields.io/pub/v/patrol?label=patrol
157172
[patrol_finders_badge]: https://img.shields.io/pub/v/patrol_finders?label=patrol_finders
158173
[patrol_cli_badge]: https://img.shields.io/pub/v/patrol_cli?label=patrol_cli

dev/e2e_app/defines_1.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"FIRST_KEY": "First key from defines_1.json",
3+
"SECOND_KEY": "Second key from defines_1.json"
4+
}

dev/e2e_app/defines_2.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"SECOND_KEY": "Second key from defines_2.json",
3+
"THIRD_KEY": "Third key from defines_2.json",
4+
"FOURTH_KEY": "Fourth key from defines_2.json"
5+
}

dev/e2e_app/defines_3.env

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
FIFTH_KEY="Fifth key from defines_3.env"
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import 'package:e2e_app/main.dart';
2+
import 'package:flutter_test/flutter_test.dart';
3+
import 'package:patrol/patrol.dart';
4+
5+
/// Run this test with command:
6+
/// patrol test -t integration_test/define_test.dart --dart-define-from-file=defines_1.json --dart-define-from-file=defines_2.json --dart-define-from-file=defines_3.env --verbose
7+
8+
void main() {
9+
patrolTest('check dart-define-from-file', ($) async {
10+
await $.pumpWidgetAndSettle(const ExampleApp());
11+
12+
expect($('FIRST_KEY: First key from defines_1.json'), findsOneWidget);
13+
expect($('SECOND_KEY: Second key from defines_2.json'), findsOneWidget);
14+
expect($('THIRD_KEY: Third key from defines_2.json'), findsOneWidget);
15+
expect($('FIFTH_KEY: Fifth key from defines_3.env'), findsOneWidget);
16+
});
17+
}

dev/e2e_app/lib/main.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,12 @@ class _ExampleHomePageState extends State<ExampleHomePage> {
9494
padding: EdgeInsets.all(8),
9595
key: const Key('listViewKey'),
9696
children: [
97+
const Text('FIRST_KEY: ${const String.fromEnvironment('FIRST_KEY')}'),
98+
const Text(
99+
'SECOND_KEY: ${const String.fromEnvironment('SECOND_KEY')}',
100+
),
101+
const Text('THIRD_KEY: ${const String.fromEnvironment('THIRD_KEY')}'),
102+
const Text('FIFTH_KEY: ${const String.fromEnvironment('FIFTH_KEY')}'),
97103
const Text(
98104
'You have pushed the button this many times:',
99105
),

packages/patrol_cli/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## Unreleased
2+
3+
- Add support for --dart-define-from-file (#2232).
4+
15
## 2.7.0
26

37
- Add support for custom flutter commands (#2124).

packages/patrol_cli/lib/src/commands/build_android.dart

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import 'package:patrol_cli/src/analytics/analytics.dart';
44
import 'package:patrol_cli/src/android/android_test_backend.dart';
55
import 'package:patrol_cli/src/base/extensions/core.dart';
66
import 'package:patrol_cli/src/base/logger.dart';
7+
import 'package:patrol_cli/src/commands/dart_define_utils.dart';
78
import 'package:patrol_cli/src/crossplatform/app_options.dart';
89
import 'package:patrol_cli/src/dart_defines_reader.dart';
910
import 'package:patrol_cli/src/pubspec_reader.dart';
@@ -31,6 +32,7 @@ class BuildAndroidCommand extends PatrolCommand {
3132
usesBuildModeOption();
3233
usesFlavorOption();
3334
usesDartDefineOption();
35+
usesDartDefineFromFileOption();
3436
usesLabelOption();
3537
usesWaitOption();
3638
usesPortOptions();
@@ -121,12 +123,21 @@ class BuildAndroidCommand extends PatrolCommand {
121123
);
122124
}
123125

126+
final dartDefineFromFilePaths = stringsArg('dart-define-from-file');
127+
128+
final mergedDartDefines = mergeDartDefines(
129+
dartDefineFromFilePaths,
130+
dartDefines,
131+
_dartDefinesReader,
132+
);
133+
124134
final flutterOpts = FlutterAppOptions(
125135
command: flutterCommand,
126136
target: entrypoint.path,
127137
flavor: flavor,
128138
buildMode: buildMode,
129-
dartDefines: dartDefines,
139+
dartDefines: mergedDartDefines,
140+
dartDefineFromFilePaths: dartDefineFromFilePaths,
130141
);
131142
final androidOpts = AndroidAppOptions(
132143
flutter: flutterOpts,

packages/patrol_cli/lib/src/commands/build_ios.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ class BuildIOSCommand extends PatrolCommand {
3232
usesBuildModeOption();
3333
usesFlavorOption();
3434
usesDartDefineOption();
35+
usesDartDefineFromFileOption();
3536
usesLabelOption();
3637
usesWaitOption();
3738
usesPortOptions();
@@ -128,12 +129,15 @@ class BuildIOSCommand extends PatrolCommand {
128129
);
129130
}
130131

132+
final dartDefineFromFilePaths = stringsArg('dart-define-from-file');
133+
131134
final flutterOpts = FlutterAppOptions(
132135
command: flutterCommand,
133136
target: entrypoint.path,
134137
flavor: flavor,
135138
buildMode: buildMode,
136139
dartDefines: dartDefines,
140+
dartDefineFromFilePaths: dartDefineFromFilePaths,
137141
);
138142

139143
final iosOpts = IOSAppOptions(

packages/patrol_cli/lib/src/commands/build_macos.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ class BuildMacOSCommand extends PatrolCommand {
3232
usesBuildModeOption();
3333
usesFlavorOption();
3434
usesDartDefineOption();
35+
usesDartDefineFromFileOption();
3536
usesLabelOption();
3637
usesWaitOption();
3738
usesPortOptions();
@@ -124,12 +125,15 @@ class BuildMacOSCommand extends PatrolCommand {
124125
);
125126
}
126127

128+
final dartDefineFromFilePaths = stringsArg('dart-define-from-file');
129+
127130
final flutterOpts = FlutterAppOptions(
128131
command: flutterCommand,
129132
target: entrypoint.path,
130133
flavor: flavor,
131134
buildMode: buildMode,
132135
dartDefines: dartDefines,
136+
dartDefineFromFilePaths: dartDefineFromFilePaths,
133137
);
134138

135139
final macosOpts = MacOSAppOptions(

0 commit comments

Comments
 (0)