improve error message when --base-href argument does not start with / (#142667)

Resolves https://github.com/flutter/flutter/issues/137700.

In particular, see [this comment from the thread](https://github.com/flutter/flutter/issues/137700#issuecomment-1920241979) to see exactly what this PR is addressing.
This commit is contained in:
Andrew Kolos 2024-01-31 19:23:05 -08:00 committed by GitHub
parent bdf2a748b3
commit 31116770ed
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 26 additions and 1 deletions

View file

@ -166,7 +166,10 @@ class BuildWebCommand extends BuildSubCommand {
}
final String? baseHref = stringArg('base-href');
if (baseHref != null && !(baseHref.startsWith('/') && baseHref.endsWith('/'))) {
throwToolExit('base-href should start and end with /');
throwToolExit(
'Received a --base-href value of "$baseHref"\n'
'--base-href should start and end with /',
);
}
if (!flutterProject.web.existsSync()) {
throwToolExit('Missing index.html.');

View file

@ -355,6 +355,28 @@ void main() {
ProcessManager: () => processManager,
BuildSystem: () => TestBuildSystem.all(BuildResult(success: true)),
});
testUsingContext('Rejects --base-href value that does not start with /', () async {
final TestWebBuildCommand buildCommand = TestWebBuildCommand(fileSystem: fileSystem);
final CommandRunner<void> runner = createTestCommandRunner(buildCommand);
await expectLater(
runner.run(<String>[
'build',
'web',
'--no-pub',
'--base-href=i_dont_start_with_a_forward_slash',
]),
throwsToolExit(
message: 'Received a --base-href value of "i_dont_start_with_a_forward_slash"\n'
'--base-href should start and end with /',
),
);
}, overrides: <Type, Generator>{
Platform: () => fakePlatform,
FileSystem: () => fileSystem,
ProcessManager: () => processManager,
});
}
void setupFileSystemForEndToEndTest(FileSystem fileSystem) {