Add a way to opt a file out of Dart formatting (#4292)

This commit is contained in:
Ian Hickson
2021-09-01 13:11:03 -07:00
committed by GitHub
parent 0c3fb71cc7
commit e8d657cf96
4 changed files with 61 additions and 2 deletions

View File

@ -8,6 +8,7 @@ import 'package:args/command_runner.dart';
import 'package:file/file.dart';
import 'package:file/memory.dart';
import 'package:flutter_plugin_tools/src/common/core.dart';
import 'package:flutter_plugin_tools/src/common/file_utils.dart';
import 'package:flutter_plugin_tools/src/format_command.dart';
import 'package:path/path.dart' as p;
import 'package:test/test.dart';
@ -106,6 +107,42 @@ void main() {
]));
});
test('does not format .dart files with pragma', () async {
const List<String> formattedFiles = <String>[
'lib/a.dart',
'lib/src/b.dart',
'lib/src/c.dart',
];
const String unformattedFile = 'lib/src/d.dart';
final Directory pluginDir = createFakePlugin(
'a_plugin',
packagesDir,
extraFiles: <String>[
...formattedFiles,
unformattedFile,
],
);
final p.Context posixContext = p.posix;
childFileWithSubcomponents(pluginDir, posixContext.split(unformattedFile))
.writeAsStringSync(
'// copyright bla bla\n// This file is hand-formatted.\ncode...');
await runCapturingPrint(runner, <String>['format']);
expect(
processRunner.recordedCalls,
orderedEquals(<ProcessCall>[
ProcessCall(
getFlutterCommand(mockPlatform),
<String>[
'format',
..._getPackagesDirRelativePaths(pluginDir, formattedFiles)
],
packagesDir.path),
]));
});
test('fails if flutter format fails', () async {
const List<String> files = <String>[
'lib/a.dart',