From dfd3317f0542cdb8527865ab71175b7dd56048b7 Mon Sep 17 00:00:00 2001 From: Moshe Dicker <75931499+dickermoshe@users.noreply.github.com> Date: Thu, 19 Sep 2024 00:26:24 +0000 Subject: [PATCH] test: add more tests --- packages/custom_lint/lib/src/workspace.dart | 19 +++-- packages/custom_lint/test/cli_test.dart | 95 +++++++++++---------- 2 files changed, 63 insertions(+), 51 deletions(-) diff --git a/packages/custom_lint/lib/src/workspace.dart b/packages/custom_lint/lib/src/workspace.dart index b522f0e0..c3fbf719 100644 --- a/packages/custom_lint/lib/src/workspace.dart +++ b/packages/custom_lint/lib/src/workspace.dart @@ -624,6 +624,7 @@ publish_to: 'none' void _writePubspecDependencies(StringBuffer buffer) { final uniqueDependencyNames = projects.expand((e) sync* { + yield* e.pubspec.dependencies.keys; yield* e.pubspec.devDependencies.keys; yield* e.pubspec.dependencyOverrides.keys; }).toSet(); @@ -631,6 +632,14 @@ publish_to: 'none' final dependenciesByName = { for (final name in uniqueDependencyNames) name: ( + dependencies: projects + .map((project) { + final dependency = project.pubspec.dependencies[name]; + if (dependency == null) return null; + return (project: project, dependency: dependency); + }) + .nonNulls + .toList(), devDependencies: projects .map((project) { final dependency = project.pubspec.devDependencies[name]; @@ -674,7 +683,10 @@ publish_to: 'none' ? ' any' : _buildDependencyConstraint( name, - allDependencies.devDependencies, + [ + ...allDependencies.devDependencies, + ...allDependencies.dependencies + ], workingDirectory: workingDirectory, fileName: 'pubspec.yaml', ); @@ -943,11 +955,6 @@ class CustomLintProject { errorStackTrace: stack, ); }); - projectPubspec.devDependencies.entries - .followedBy(projectPubspec.dependencies.entries) - .groupListsBy((element) => element.key) - .entries - .map((e) => e.value); final dependencyMap = { ...projectPubspec.dependencies, diff --git a/packages/custom_lint/test/cli_test.dart b/packages/custom_lint/test/cli_test.dart index 9804af5c..f5550895 100644 --- a/packages/custom_lint/test/cli_test.dart +++ b/packages/custom_lint/test/cli_test.dart @@ -164,50 +164,54 @@ No issues found! expect(process.exitCode, 0); }); - test('CLI lists warnings from all plugins and set exit code', () async { - final plugin = - createPlugin(name: 'test_lint', main: helloWordPluginSource); - final plugin2 = - createPlugin(name: 'test_lint2', main: oyPluginSource); - - final app = createLintUsage( - source: { - 'lib/main.dart': 'void fn() {}', - 'lib/another.dart': 'void fail() {}', - }, - plugins: {'test_lint': plugin.uri, 'test_lint2': plugin2.uri}, - name: 'test_app', - ); + for (final installAsDevDependency in [false, true]) { + test( + 'CLI lists warnings from all plugins and set exit code installAsDevDependency: $installAsDevDependency', + () async { + final plugin = + createPlugin(name: 'test_lint', main: helloWordPluginSource); + final plugin2 = + createPlugin(name: 'test_lint2', main: oyPluginSource); + + final app = createLintUsage( + source: { + 'lib/main.dart': 'void fn() {}', + 'lib/another.dart': 'void fail() {}', + }, + plugins: {'test_lint': plugin.uri, 'test_lint2': plugin2.uri}, + name: 'test_app', + installAsDevDependency: installAsDevDependency, + ); - final process = await Process.start( - 'dart', - [ - customLintBinPath, - '--format', - format, - ], - workingDirectory: app.path, - ); + final process = await Process.start( + 'dart', + [ + customLintBinPath, + '--format', + format, + ], + workingDirectory: app.path, + ); - final out = process.stdout.map(utf8.decode); - final err = process.stderr.map(utf8.decode); + final out = process.stdout.map(utf8.decode); + final err = process.stderr.map(utf8.decode); - expect(err, emitsDone); + expect(err, emitsDone); - if (format == 'json') { - expect( - out.join(), - completion( - equals('${jsonLints(app.resolveSymbolicLinksSync())}\n'), - ), - ); - } else { - expect( - out.join(), - completion( - allOf( - startsWith('Analyzing...'), - endsWith(''' + if (format == 'json') { + expect( + out.join(), + completion( + equals('${jsonLints(app.resolveSymbolicLinksSync())}\n'), + ), + ); + } else { + expect( + out.join(), + completion( + allOf( + startsWith('Analyzing...'), + endsWith(''' lib/another.dart:1:6 • Hello world • hello_world • INFO lib/another.dart:1:6 • Oy • oy • INFO lib/main.dart:1:6 • Hello world • hello_world • INFO @@ -215,12 +219,13 @@ No issues found! 4 issues found. '''), + ), ), - ), - ); - } - expect(await process.exitCode, 1); - }); + ); + } + expect(await process.exitCode, 1); + }); + } }); } }