From 35ef462d7e9621bfd05bd3a7825a20acee91a289 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20K=C3=B6nig?= <33655937+jkoenig134@users.noreply.github.com> Date: Fri, 26 Apr 2024 10:51:05 +0200 Subject: [PATCH] fix: tryParse line-length to int when it's not already an integer (#708) * fix: tryParse line-length to int when it's not already an integer * test: add format with line-length test --- .../melos/lib/src/command_runner/format.dart | 1 + packages/melos/test/commands/format_test.dart | 34 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/packages/melos/lib/src/command_runner/format.dart b/packages/melos/lib/src/command_runner/format.dart index 796c3ec2f..98ed47aea 100644 --- a/packages/melos/lib/src/command_runner/format.dart +++ b/packages/melos/lib/src/command_runner/format.dart @@ -38,6 +38,7 @@ class FormatCommand extends MelosCommand { final concurrency = int.parse(argResults!['concurrency'] as String); final lineLength = switch (argResults?['line-length']) { final int length => length, + final String length => int.tryParse(length), _ => null, }; diff --git a/packages/melos/test/commands/format_test.dart b/packages/melos/test/commands/format_test.dart index 749b7f1d9..99314d258 100644 --- a/packages/melos/test/commands/format_test.dart +++ b/packages/melos/test/commands/format_test.dart @@ -263,5 +263,39 @@ $ melos format skip: 'Differ at offset 1261', ); }); + + test('should run format with --line-length flag', () async { + const code = ''' +void main() { + print('a very long line that should be wrapped with default dart settings but we use a longer line length'); +} +'''; + + writeTextFile( + p.join(aDir.path, 'main.dart'), + code, + ); + + final result = await Process.run( + 'melos', + ['format', '--set-exit-if-changed', '--line-length', '150'], + workingDirectory: workspaceDir.path, + runInShell: Platform.isWindows, + stdoutEncoding: utf8, + stderrEncoding: utf8, + ); + + expect(result.exitCode, equals(0)); + + expect( + result.stdout, + contains( + r''' +$ melos format + └> dart format --set-exit-if-changed --line-length 150 . + └> SUCCESS''', + ), + ); + }); }); }