Skip to content

Commit

Permalink
fix: If not find license file
Browse files Browse the repository at this point in the history
  • Loading branch information
lsaudon committed Jul 7, 2023
1 parent 7f0e4a2 commit e67925d
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 34 deletions.
8 changes: 3 additions & 5 deletions example/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
name: example
description: A sample command-line application.
version: 1.0.0
# repository: https://github.com/my_org/my_repo

environment:
sdk: ^3.0.5

# Add regular dependencies here.
dependencies:
# path: ^1.8.0
path: ^1.8.3

dev_dependencies:
lints: ^2.0.0
test: ^1.21.0
lints: ^2.1.1
test: ^1.24.4
15 changes: 8 additions & 7 deletions lib/src/commands/report_command.dart
Original file line number Diff line number Diff line change
Expand Up @@ -72,16 +72,17 @@ class ReportCommand extends Command<int> {
.map(
(final MapEntry<String, Uri> e) =>
MapEntry<String, File>(e.key, _fileSystem.file(e.value)),
);
)
.where((final MapEntry<String, File> e) => e.value.existsSync());
for (final MapEntry<String, File> element in collection) {
final List<License> list = await detectLicenseInFile(
final String licenses = (await detectLicenseInFile(
element.value.absolute,
relativePath: element.value.path,
);
final String licenses =
list.map((final License e) => e.spdxIdentifier).reduce(
(final String value, final String element) => '$value,$element',
);
))
.map((final License e) => e.spdxIdentifier)
.reduce(
(final String value, final String element) => '$value,$element',
);
_logger.info(
'${element.key};$licenses;https://pub.dev/packages/${element.key}/license',
);
Expand Down
15 changes: 12 additions & 3 deletions test/src/commands/input.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
const String feAnalyzerSharedRootUri =
import 'dart:io';

const String feAnalyzerSharedRootUriWindows =
'file:///C:/Users/name/AppData/Local/Pub/Cache/hosted/pub.dev/_fe_analyzer_shared-62.0.0';
const String feAnalyzerSharedRootUriMacOs =
'file:///Users/name/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-62.0.0';

String feAnalyzerSharedRootUri = Platform.isWindows
? feAnalyzerSharedRootUriWindows
: feAnalyzerSharedRootUriMacOs;

const String feAnalyzerSharedLicense = '''
Copyright 2019, the Dart project authors.
Expand Down Expand Up @@ -29,13 +38,13 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.''';

const String packageConfigJsonContent = '''
String packageConfigJsonContent = '''
{
"configVersion": 2,
"packages": [
{
"name": "_fe_analyzer_shared",
"rootUri": "$feAnalyzerSharedRootUri",
"rootUri": "${Platform.isWindows ? feAnalyzerSharedRootUriWindows : feAnalyzerSharedRootUriMacOs}",
"packageUri": "lib/",
"languageVersion": "3.0"
},
Expand Down
59 changes: 40 additions & 19 deletions test/src/commands/report_command_test.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import 'dart:io';

import 'package:file/file.dart';
import 'package:file/memory.dart';
import 'package:license_harvest_cli/src/command_runner.dart';
import 'package:mason_logger/mason_logger.dart';
Expand All @@ -14,44 +13,66 @@ class _MockLogger extends Mock implements Logger {}

void main() {
group('report', () {
late FileSystem fileSystem;
late Logger logger;
late LicenseHarvestCliCommandRunner commandRunner;

setUp(() {
fileSystem = MemoryFileSystem.test(
test('with a license file', () async {
final MemoryFileSystem fileSystem = MemoryFileSystem.test(
style: Platform.isWindows
? FileSystemStyle.windows
: FileSystemStyle.posix,
);
logger = _MockLogger();
commandRunner = LicenseHarvestCliCommandRunner(

fileSystem.file(Uri.parse(p.join(feAnalyzerSharedRootUri, 'LICENSE')))
..createSync(recursive: true)
..writeAsStringSync(feAnalyzerSharedLicense);

fileSystem.file(p.join('.dart_tool', 'package_config.json'))
..createSync(recursive: true)
..writeAsStringSync(packageConfigJsonContent);

final _MockLogger logger = _MockLogger();
final int exitCode = await LicenseHarvestCliCommandRunner(
logger: logger,
fileSystem: fileSystem,
).run(<String>['report']);

expect(exitCode, ExitCode.success.code);

verify(() => logger.info('name;licenses;url_license'));
verify(
() => logger.info(
'_fe_analyzer_shared;BSD-3-Clause;https://pub.dev/packages/_fe_analyzer_shared/license',
),
);
});

test('tells a joke', () async {
fileSystem.file(
Uri.parse(p.join(feAnalyzerSharedRootUri, 'LICENSE')),
)
..createSync(recursive: true)
..writeAsStringSync(feAnalyzerSharedLicense);
test('without a license file', () async {
final MemoryFileSystem fileSystem = MemoryFileSystem.test(
style: Platform.isWindows
? FileSystemStyle.windows
: FileSystemStyle.posix,
);

fileSystem
.file(Uri.parse(p.join(feAnalyzerSharedRootUri)))
.createSync(recursive: true);

fileSystem.file(p.join('.dart_tool', 'package_config.json'))
..createSync(recursive: true)
..writeAsStringSync(packageConfigJsonContent);

final int exitCode = await commandRunner.run(<String>['report']);
final _MockLogger logger = _MockLogger();
final int exitCode = await LicenseHarvestCliCommandRunner(
logger: logger,
fileSystem: fileSystem,
).run(<String>['report']);

expect(exitCode, ExitCode.success.code);

verify(() => logger.info('name;licenses;url_license')).called(1);
verify(
verify(() => logger.info('name;licenses;url_license'));
verifyNever(
() => logger.info(
'_fe_analyzer_shared;BSD-3-Clause;https://pub.dev/packages/_fe_analyzer_shared/license',
),
).called(1);
);
});
});
}

0 comments on commit e67925d

Please sign in to comment.