06f5db3480
Change-Id: I593497edfbb05f0b524de4d18dc87ef7d1efdd2d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/425583 Reviewed-by: Devon Carew <devoncarew@google.com> Commit-Queue: Samuel Rawlins <srawlins@google.com> Reviewed-by: Ben Konyi <bkonyi@google.com>
71 lines
2.3 KiB
Dart
71 lines
2.3 KiB
Dart
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
import 'package:args/command_runner.dart';
|
|
import 'package:dartdev/dartdev.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
import '../utils.dart';
|
|
|
|
void main() {
|
|
group('help', help, timeout: longTimeout);
|
|
}
|
|
|
|
void help() {
|
|
late TestProject p;
|
|
|
|
/// Commands not tested by the following loop.
|
|
List<String> commandsNotTested = <String>[
|
|
'help', // `dart help help` is redundant
|
|
'test', // `dart help test` does not call `test:test --help`.
|
|
];
|
|
DartdevRunner(['--suppress-analytics'])
|
|
.commands
|
|
.forEach((String commandKey, Command<int> command) {
|
|
if (!commandsNotTested.contains(commandKey)) {
|
|
test('(help $commandKey == $commandKey --help)', () async {
|
|
p = project();
|
|
var result = await p.run(['help', commandKey]);
|
|
var verbHelpResult = await p.run([commandKey, '--help']);
|
|
|
|
expect(result.stdout, contains(verbHelpResult.stdout));
|
|
expect(result.stderr, contains(verbHelpResult.stderr));
|
|
});
|
|
}
|
|
});
|
|
|
|
test('(help test ~= test --help) outside project', () async {
|
|
p = project();
|
|
p.deleteFile('pubspec.yaml');
|
|
var result = await p.run(['help', 'test']);
|
|
var testHelpResult = await p.run(['test', '--help']);
|
|
|
|
expect(testHelpResult.stdout, contains(result.stdout));
|
|
expect(testHelpResult.stderr, contains(result.stderr));
|
|
});
|
|
|
|
test('(help pub == pub --help)', () async {
|
|
p = project();
|
|
var result = await p.run(['help', 'pub']);
|
|
var pubHelpResult = await p.run(['pub', '--help']);
|
|
|
|
expect(result.stdout, contains(pubHelpResult.stdout));
|
|
expect(result.stderr, contains(pubHelpResult.stderr));
|
|
});
|
|
|
|
test('(--help flags also have -h abbr)', () {
|
|
DartdevRunner(['--suppress-analytics'])
|
|
.commands
|
|
.forEach((String commandKey, Command<int> command) {
|
|
var helpOption = command.argParser.options['help'];
|
|
// Some commands (like pub which use
|
|
// "argParser = ArgParser.allowAnything()") may not have the help Option
|
|
// accessible with the API used above:
|
|
if (helpOption != null) {
|
|
expect(helpOption.abbr, 'h', reason: '');
|
|
}
|
|
});
|
|
});
|
|
}
|