Skip to content

Commit 5e7de92

Browse files
authored
Develop (#17)
Propagate flutter version correctly to GetFlutterTask when running ProjectCreate.
1 parent cac90eb commit 5e7de92

File tree

3 files changed

+30
-3
lines changed

3 files changed

+30
-3
lines changed

lib/src/cli/task.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ abstract class Task<T> {
5050
/// Execute the task and return instance of [T] or throw
5151
/// [KlutterException] if unsuccessful.
5252
Future<T> executeOrThrow(Context context) async {
53-
return await toBeExecuted(context, _getOptions(context));
53+
return toBeExecuted(context, _getOptions(context));
5454
}
5555

5656
/// The validated options.

lib/src/cli/task_project_create.dart

+11-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,11 @@ class CreateProject extends Task {
6969
final dist = toFlutterDistributionOrThrow(
7070
version: flutterVersion, pathToRoot: pathToRoot);
7171

72-
final result = await _getFlutterSDK.executeOrThrow(context);
72+
final result =
73+
await _getFlutterSDK.executeOrThrow(context.copyWith(taskOptions: {
74+
TaskOption.flutter: dist.folderNameString.toString(),
75+
}));
76+
7377
final flutter =
7478
result.resolveFile("flutter/bin/flutter".normalize).absolutePath;
7579
final root = await createFlutterProjectOrThrow(
@@ -136,6 +140,12 @@ class CreateProject extends Task {
136140
TaskOption.lib: name,
137141
}));
138142

143+
_executor
144+
..workingDirectory = root
145+
..arguments = ["klutterGetKradle", "-p", "platform"]
146+
..executable = root.resolveFile("gradlew").absolutePath
147+
..run();
148+
139149
exampleFolder
140150
..deleteTestFolder
141151
..deleteIntegrationTestFolder;

test/src/cli/task_project_create_test.dart

+18-1
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,28 @@ void main() {
6161
expect(result.isOk, false);
6262
expect(result.message, "BOOM!");
6363
});
64+
65+
test("Verify flutter option is used correctly", () async {
66+
const version = "3.0.5.macos.arm64";
67+
final getFlutterTask = FlutterFixedVersion();
68+
final task = CreateProject(getFlutterSDK: getFlutterTask);
69+
final result = await task
70+
.execute(Context(Directory.systemTemp, {TaskOption.flutter: version}));
71+
expect(result.isOk, false);
72+
expect(result.message, version);
73+
});
6474
}
6575

6676
class NoFlutterSDK extends GetFlutterSDK {
6777
@override
6878
Future<Directory> executeOrThrow(Context context) async {
69-
throw KlutterException("BOOM!");
79+
throw const KlutterException("BOOM!");
80+
}
81+
}
82+
83+
class FlutterFixedVersion extends GetFlutterSDK {
84+
@override
85+
Future<Directory> executeOrThrow(Context context) async {
86+
throw KlutterException(context.taskOptions[TaskOption.flutter] ?? "--");
7087
}
7188
}

0 commit comments

Comments
 (0)