From 6fc48dd76f461991d766902719dad2cdedd7e301 Mon Sep 17 00:00:00 2001 From: Eirik Stanghelle Morland Date: Fri, 17 Mar 2023 09:50:46 +0100 Subject: [PATCH] Make it possible to always allow direct deps (#23) --- src/Config.php | 6 +++ tests/UnitTest.php | 41 +++++++++++++++++++ .../always_allow_direct_dependencies.json | 7 ++++ .../always_allow_direct_dependencies2.json | 7 ++++ .../always_allow_direct_dependencies3.json | 7 ++++ .../always_allow_direct_dependencies4.json | 7 ++++ .../always_allow_direct_dependencies5.json | 7 ++++ 7 files changed, 82 insertions(+) create mode 100644 tests/fixtures/always_allow_direct_dependencies.json create mode 100644 tests/fixtures/always_allow_direct_dependencies2.json create mode 100644 tests/fixtures/always_allow_direct_dependencies3.json create mode 100644 tests/fixtures/always_allow_direct_dependencies4.json create mode 100644 tests/fixtures/always_allow_direct_dependencies5.json diff --git a/src/Config.php b/src/Config.php index e8c736a..474e54e 100644 --- a/src/Config.php +++ b/src/Config.php @@ -16,6 +16,7 @@ public function getDefaultConfig() { return (object) [ 'always_update_all' => 0, + 'always_allow_direct_dependencies' => 0, 'allow_list' => [], 'update_dev_dependencies' => 1, 'check_only_direct_dependencies' => 1, @@ -87,6 +88,11 @@ public function getLabelsSecurity() : array return $this->config->labels_security; } + public function shouldAlwaysAllowDirect() : bool + { + return (bool) $this->config->always_allow_direct_dependencies; + } + public function hasConfigForKey($key) { return !empty($this->configOptionsSet[$key]); diff --git a/tests/UnitTest.php b/tests/UnitTest.php index 0d2da07..ae151c7 100644 --- a/tests/UnitTest.php +++ b/tests/UnitTest.php @@ -57,6 +57,17 @@ protected function runTestExpectedResultFromFixture($filename, $expected_result, self::assertEquals($expected_result, $data->{$method}()); } + /** + * Test the different things we can set in always allow direct. + * + * @dataProvider getAlwaysAllowDirect + */ + public function testAlwaysDirect($filename, $expected_result) + { + $data = $this->createDataFromFixture($filename); + self::assertEquals($expected_result, $data->shouldAlwaysAllowDirect()); + } + /** * Test the different things we can set in run scripts, and what we expect from it. * @@ -741,6 +752,36 @@ public function emptyConfigs() ]; } + public function getAlwaysAllowDirect() + { + return [ + [ + 'empty.json', + false, + ], + [ + 'always_allow_direct_dependencies.json', + true + ], + [ + 'always_allow_direct_dependencies2.json', + true + ], + [ + 'always_allow_direct_dependencies3.json', + true + ], + [ + 'always_allow_direct_dependencies4.json', + false + ], + [ + 'always_allow_direct_dependencies5.json', + false + ], + ]; + } + public function getRunScriptData() { return [ diff --git a/tests/fixtures/always_allow_direct_dependencies.json b/tests/fixtures/always_allow_direct_dependencies.json new file mode 100644 index 0000000..e9b4358 --- /dev/null +++ b/tests/fixtures/always_allow_direct_dependencies.json @@ -0,0 +1,7 @@ +{ + "extra": { + "violinist": { + "always_allow_direct_dependencies": "yes_of_course_this_should_be_an_int_but_this_evaluates_to_true" + } + } +} diff --git a/tests/fixtures/always_allow_direct_dependencies2.json b/tests/fixtures/always_allow_direct_dependencies2.json new file mode 100644 index 0000000..0646239 --- /dev/null +++ b/tests/fixtures/always_allow_direct_dependencies2.json @@ -0,0 +1,7 @@ +{ + "extra": { + "violinist": { + "always_allow_direct_dependencies": 1 + } + } +} diff --git a/tests/fixtures/always_allow_direct_dependencies3.json b/tests/fixtures/always_allow_direct_dependencies3.json new file mode 100644 index 0000000..9162905 --- /dev/null +++ b/tests/fixtures/always_allow_direct_dependencies3.json @@ -0,0 +1,7 @@ +{ + "extra": { + "violinist": { + "always_allow_direct_dependencies": "1" + } + } +} diff --git a/tests/fixtures/always_allow_direct_dependencies4.json b/tests/fixtures/always_allow_direct_dependencies4.json new file mode 100644 index 0000000..e9903ac --- /dev/null +++ b/tests/fixtures/always_allow_direct_dependencies4.json @@ -0,0 +1,7 @@ +{ + "extra": { + "violinist": { + "always_allow_direct_dependencies": "0" + } + } +} diff --git a/tests/fixtures/always_allow_direct_dependencies5.json b/tests/fixtures/always_allow_direct_dependencies5.json new file mode 100644 index 0000000..23a057f --- /dev/null +++ b/tests/fixtures/always_allow_direct_dependencies5.json @@ -0,0 +1,7 @@ +{ + "extra": { + "violinist": { + "always_allow_direct_dependencies": 0 + } + } +}