From 1e596c455a9542c016448af7eb0cae3ab798eec1 Mon Sep 17 00:00:00 2001 From: Alejandro Santiago Date: Mon, 13 Nov 2023 09:51:23 +0000 Subject: [PATCH 1/4] test: add e2e test for licenses check (#882) --- .github/workflows/e2e.yaml | 4 ++ .../check/licenses/licenses_allowed_test.dart | 60 ++++++++++++++++++ .../licenses/licenses_forbidden_test.dart | 62 +++++++++++++++++++ 3 files changed, 126 insertions(+) create mode 100644 e2e/test/commands/packages/check/licenses/licenses_allowed_test.dart create mode 100644 e2e/test/commands/packages/check/licenses/licenses_forbidden_test.dart diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index 9cd6203d..eec6cd8a 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -47,6 +47,10 @@ jobs: - test/commands/create/flutter_package/flutter_pkg_test.dart - test/commands/create/flutter_plugin/flutter_plugin_test.dart + # E2E tests for the `packages check licenses` command + - test/commands/packages/check/licenses/licenses_allowed_test.dart + - test/commands/packages/check/licenses/licenses_forbidden_test.dart + steps: - name: 📚 Git Checkout uses: actions/checkout@v4 diff --git a/e2e/test/commands/packages/check/licenses/licenses_allowed_test.dart b/e2e/test/commands/packages/check/licenses/licenses_allowed_test.dart new file mode 100644 index 00000000..ad8e13ab --- /dev/null +++ b/e2e/test/commands/packages/check/licenses/licenses_allowed_test.dart @@ -0,0 +1,60 @@ +import 'dart:io'; + +import 'package:mason/mason.dart'; +import 'package:path/path.dart' as path; +import 'package:test/test.dart'; + +import '../../../../../helpers/helpers.dart'; + +/// Objectives: +/// +/// * Generate a new Dart project using (`dart create`) +/// * Add dependencies to `pubspec.yaml` with an MIT license +/// * Run `very_good packages check licenses --allowed="MIT"` and expect success +void main() { + test( + 'packages check licenses --allowed="MIT"', + timeout: const Timeout(Duration(minutes: 2)), + withRunner((commandRunner, logger, updater, logs) async { + final tempDirectory = Directory.systemTemp.createTempSync(); + addTearDown(() => tempDirectory.deleteSync(recursive: true)); + + const projectName = 'my_dart_project'; + await expectSuccessfulProcessResult( + 'dart', + ['create', 'my_dart_project', '--no-pub'], + workingDirectory: tempDirectory.path, + ); + final projectPath = path.join(tempDirectory.path, projectName); + await expectSuccessfulProcessResult( + 'dart', + ['pub', 'add', 'formz'], + workingDirectory: projectPath, + ); + await expectSuccessfulProcessResult( + 'dart', + ['pub', 'get'], + workingDirectory: projectPath, + ); + + final relativeProjectPath = path.relative( + projectPath, + from: Directory.current.path, + ); + final resultAllowed = await commandRunner.run( + [ + 'packages', + 'check', + 'licenses', + '--allowed=MIT', + relativeProjectPath, + ], + ); + expect( + resultAllowed, + equals(ExitCode.success.code), + reason: 'Should succeed when allowed licenses are used', + ); + }), + ); +} diff --git a/e2e/test/commands/packages/check/licenses/licenses_forbidden_test.dart b/e2e/test/commands/packages/check/licenses/licenses_forbidden_test.dart new file mode 100644 index 00000000..2f4c7900 --- /dev/null +++ b/e2e/test/commands/packages/check/licenses/licenses_forbidden_test.dart @@ -0,0 +1,62 @@ +import 'dart:io'; + +import 'package:mason/mason.dart'; +import 'package:path/path.dart' as path; +import 'package:test/test.dart'; + +import '../../../../../helpers/helpers.dart'; + +/// Objectives: +/// +/// * Generate a new Dart project using (`dart create`) +/// * Add dependencies to `pubspec.yaml` with an MIT license +/// * Run `very_good packages check licenses --forbidden="MIT"` and expect +/// failure +void main() { + test( + 'packages check licenses --forbidden="MIT"', + timeout: const Timeout(Duration(minutes: 2)), + withRunner((commandRunner, logger, updater, logs) async { + final tempDirectory = Directory.systemTemp.createTempSync(); + addTearDown(() => tempDirectory.deleteSync(recursive: true)); + + const projectName = 'my_dart_project'; + await expectSuccessfulProcessResult( + 'dart', + ['create', 'my_dart_project', '--no-pub'], + workingDirectory: tempDirectory.path, + ); + final projectPath = path.join(tempDirectory.path, projectName); + await expectSuccessfulProcessResult( + 'dart', + ['pub', 'add', 'formz'], + workingDirectory: projectPath, + ); + await expectSuccessfulProcessResult( + 'dart', + ['pub', 'get'], + workingDirectory: projectPath, + ); + + final relativeProjectPath = path.relative( + projectPath, + from: Directory.current.path, + ); + + final resultForbidden = await commandRunner.run( + [ + 'packages', + 'check', + 'licenses', + '--forbidden=MIT', + relativeProjectPath, + ], + ); + expect( + resultForbidden, + equals(ExitCode.config.code), + reason: 'Should fail when forbidden licenses are used', + ); + }), + ); +} From cae7790f793a0964a9b0ad6699550eaaffdc88b4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Nov 2023 10:07:14 +0000 Subject: [PATCH 2/4] chore(deps-dev): bump @babel/eslint-parser in /site (#885) --- site/package-lock.json | 14 +++++++------- site/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/site/package-lock.json b/site/package-lock.json index 87c6a456..ba515c4b 100644 --- a/site/package-lock.json +++ b/site/package-lock.json @@ -17,7 +17,7 @@ "react-dom": "^17.0.2" }, "devDependencies": { - "@babel/eslint-parser": "^7.22.15", + "@babel/eslint-parser": "^7.23.3", "@docusaurus/eslint-plugin": "^2.4.3", "@docusaurus/module-type-aliases": "^2.4.3", "@tsconfig/docusaurus": "^2.0.2", @@ -260,9 +260,9 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz", - "integrity": "sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.23.3.tgz", + "integrity": "sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==", "dev": true, "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", @@ -14109,9 +14109,9 @@ } }, "@babel/eslint-parser": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz", - "integrity": "sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.23.3.tgz", + "integrity": "sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==", "dev": true, "requires": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", diff --git a/site/package.json b/site/package.json index 2d4df714..dcbe1265 100644 --- a/site/package.json +++ b/site/package.json @@ -27,7 +27,7 @@ "react-dom": "^17.0.2" }, "devDependencies": { - "@babel/eslint-parser": "^7.22.15", + "@babel/eslint-parser": "^7.23.3", "@docusaurus/eslint-plugin": "^2.4.3", "@docusaurus/module-type-aliases": "^2.4.3", "@tsconfig/docusaurus": "^2.0.2", From f72ab466f69c03679bdd4ad4f80a290a9214f29e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Nov 2023 10:30:36 +0000 Subject: [PATCH 3/4] chore(deps-dev): bump prettier from 3.0.3 to 3.1.0 in /site (#887) --- site/package-lock.json | 14 +++++++------- site/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/site/package-lock.json b/site/package-lock.json index ba515c4b..d9619d99 100644 --- a/site/package-lock.json +++ b/site/package-lock.json @@ -22,7 +22,7 @@ "@docusaurus/module-type-aliases": "^2.4.3", "@tsconfig/docusaurus": "^2.0.2", "eslint": "^8.53.0", - "prettier": "^3.0.3", + "prettier": "^3.1.0", "typescript": "^5.2.2" }, "engines": { @@ -10305,9 +10305,9 @@ } }, "node_modules/prettier": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", + "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -21244,9 +21244,9 @@ "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==" }, "prettier": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", + "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", "dev": true }, "pretty-error": { diff --git a/site/package.json b/site/package.json index dcbe1265..b6cc8132 100644 --- a/site/package.json +++ b/site/package.json @@ -32,7 +32,7 @@ "@docusaurus/module-type-aliases": "^2.4.3", "@tsconfig/docusaurus": "^2.0.2", "eslint": "^8.53.0", - "prettier": "^3.0.3", + "prettier": "^3.1.0", "typescript": "^5.2.2" }, "browserslist": { From d991437c494bb96e3860fb3dec07f324cdd64a00 Mon Sep 17 00:00:00 2001 From: Alejandro Santiago Date: Mon, 13 Nov 2023 12:46:04 +0000 Subject: [PATCH 4/4] ci(e2e): re-enable flame_game e2e test (#881) * ci: reenable flame_game e2e test * fix: update flame_game_test coverage expectation to "97.9%" from "97.9%" --- .github/workflows/e2e.yaml | 4 +--- e2e/test/commands/create/flame_game/flame_game_test.dart | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index eec6cd8a..cab8beae 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -41,9 +41,7 @@ jobs: - test/commands/create/dart_cli/dart_cli_test.dart - test/commands/create/dart_package/dart_pkg_test.dart - test/commands/create/docs_site/docs_site_test.dart - # FIXME(alestiago): Re-enable once the issue is fixed: - # https://github.com/VeryGoodOpenSource/very_good_flame_game/issues/103 - # - test/commands/create/flame_game/flame_game_test.dart + - test/commands/create/flame_game/flame_game_test.dart - test/commands/create/flutter_package/flutter_pkg_test.dart - test/commands/create/flutter_plugin/flutter_plugin_test.dart diff --git a/e2e/test/commands/create/flame_game/flame_game_test.dart b/e2e/test/commands/create/flame_game/flame_game_test.dart index f5aa4533..aa101432 100644 --- a/e2e/test/commands/create/flame_game/flame_game_test.dart +++ b/e2e/test/commands/create/flame_game/flame_game_test.dart @@ -54,7 +54,7 @@ void main() { ['coverage/lcov.info', '-o', 'coverage'], workingDirectory: workingDirectory, ); - expect(testCoverageResult.stdout, contains('lines......: 97.8%')); + expect(testCoverageResult.stdout, contains('lines......: 97.9%')); }), ); }