diff --git a/.gitignore b/.gitignore index e3e404997..160702ca8 100644 --- a/.gitignore +++ b/.gitignore @@ -28,7 +28,7 @@ build ############ node_modules/ -vendor/ +/vendor/ ############ ## OSes diff --git a/includes/Checker/Checks/Plugin_Repo/File_Type_Check.php b/includes/Checker/Checks/Plugin_Repo/File_Type_Check.php index 9ac98e88f..bf90778c5 100644 --- a/includes/Checker/Checks/Plugin_Repo/File_Type_Check.php +++ b/includes/Checker/Checks/Plugin_Repo/File_Type_Check.php @@ -76,6 +76,8 @@ public function get_categories() { * * @throws Exception Thrown when the check fails with a critical error (unrelated to any errors detected as part of * the check). + * + * @SuppressWarnings(PHPMD.NPathComplexity) */ protected function check_files( Check_Result $result, array $files ) { if ( $this->flags & self::TYPE_COMPRESSED ) { @@ -400,7 +402,7 @@ protected function look_for_composer_files( Check_Result $result, array $files ) $result, sprintf( /* translators: 1: directory, 2: filename */ - esc_html__( 'The "%1$s" directory exists, but "%2$s" is missing.', 'plugin-check' ), + esc_html__( 'The "%1$s" directory using composer exists, but "%2$s" file is missing.', 'plugin-check' ), '/vendor', 'composer.json' ), diff --git a/tests/phpunit/testdata/plugins/test-plugin-file-type-composer-errors/load.php b/tests/phpunit/testdata/plugins/test-plugin-file-type-composer-errors/load.php new file mode 100644 index 000000000..bd9830168 --- /dev/null +++ b/tests/phpunit/testdata/plugins/test-plugin-file-type-composer-errors/load.php @@ -0,0 +1,17 @@ +assertArrayHasKey( 0, $errors['jquery.js'][0] ); $this->assertCount( 1, wp_list_filter( $errors['jquery.js'][0][0], array( 'code' => 'library_core_files' ) ) ); } + + public function test_run_with_composer_errors() { + $check_context = new Check_Context( UNIT_TESTS_PLUGIN_DIR . 'test-plugin-file-type-composer-errors/load.php' ); + $check_result = new Check_Result( $check_context ); + + $check = new File_Type_Check( File_Type_Check::TYPE_COMPOSER ); + $check->run( $check_result ); + + $warnings = $check_result->get_warnings(); + + $this->assertNotEmpty( $warnings ); + + $this->assertCount( 1, wp_list_filter( $warnings['composer.json'][0][0], array( 'code' => 'missing_composer_json_file' ) ) ); + } }