From e0a17ace8f3d2bd593d7d8f8eb3f8545212844e8 Mon Sep 17 00:00:00 2001 From: Boshen Date: Sun, 16 Jul 2023 17:13:32 +0800 Subject: [PATCH] feat(resolver): port incorrect description file test (#557) --- crates/oxc_resolver/README.md | 2 +- .../enhanced_resolve/test/extension_alias.rs | 2 +- .../test/incorrect_description_file.rs | 47 +++++++++++++++++++ .../tests/enhanced_resolve/test/mod.rs | 1 + .../broken_package_json/package.json | 1 - .../oxc_resolver/tests/error_handling/mod.rs | 17 ------- crates/oxc_resolver/tests/mod.rs | 1 - 7 files changed, 50 insertions(+), 21 deletions(-) create mode 100644 crates/oxc_resolver/tests/enhanced_resolve/test/incorrect_description_file.rs delete mode 100644 crates/oxc_resolver/tests/error_handling/broken_package_json/package.json delete mode 100644 crates/oxc_resolver/tests/error_handling/mod.rs diff --git a/crates/oxc_resolver/README.md b/crates/oxc_resolver/README.md index dac90e7fb..e4e4233fe 100644 --- a/crates/oxc_resolver/README.md +++ b/crates/oxc_resolver/README.md @@ -48,7 +48,7 @@ Tests ported from [enhanced-resolve](https://github.com/webpack/enhanced-resolve - [ ] getPaths.test.js - [ ] identifier.test.js - [ ] importsField.test.js -- [ ] incorrect-description-file.test.js +- [x] incorrect-description-file.test.js (need to add ctx.fileDependencies) - [ ] missing.test.js - [ ] path.test.js - [ ] plugins.test.js diff --git a/crates/oxc_resolver/tests/enhanced_resolve/test/extension_alias.rs b/crates/oxc_resolver/tests/enhanced_resolve/test/extension_alias.rs index 0de786e2b..e0bcb35ff 100644 --- a/crates/oxc_resolver/tests/enhanced_resolve/test/extension_alias.rs +++ b/crates/oxc_resolver/tests/enhanced_resolve/test/extension_alias.rs @@ -50,8 +50,8 @@ fn extension_alias() -> Result<(), ResolveError> { } #[test] -// should not apply extension alias to extensions or mainFiles field fn not_apply_to_extension_nor_main_files() -> Result<(), ResolveError> { + // should not apply extension alias to extensions or mainFiles field let options = ResolveOptions { extensions: vec![".js".into()], main_files: vec!["index.js".into()], diff --git a/crates/oxc_resolver/tests/enhanced_resolve/test/incorrect_description_file.rs b/crates/oxc_resolver/tests/enhanced_resolve/test/incorrect_description_file.rs new file mode 100644 index 000000000..62ecd65bd --- /dev/null +++ b/crates/oxc_resolver/tests/enhanced_resolve/test/incorrect_description_file.rs @@ -0,0 +1,47 @@ +//! + +use std::path::PathBuf; + +use oxc_resolver::{JSONError, ResolveError, Resolver}; + +fn fixture() -> PathBuf { + super::fixture().join("incorrect-package") +} + +// TODO: add `ctx with fileDependencies and then check file dependencies + +#[test] +fn incorrect_description_file_1() { + // should not resolve main in incorrect description file #1 + let f = fixture(); + let resolution = Resolver::default().resolve(f.join("pack1"), "."); + let error = ResolveError::JSON(JSONError { + path: f.join("pack1/package.json"), + message: String::from("EOF while parsing a value at line 3 column 0"), + line: 3, + column: 0, + }); + assert_eq!(resolution, Err(error)); +} + +#[test] +fn incorrect_description_file_2() { + // should not resolve main in incorrect description file #2 + let f = fixture(); + let resolution = Resolver::default().resolve(f.join("pack2"), "."); + let error = ResolveError::JSON(JSONError { + path: f.join("pack2/package.json"), + message: String::from("EOF while parsing a value at line 1 column 0"), + line: 1, + column: 0, + }); + assert_eq!(resolution, Err(error)); +} + +#[test] +fn incorrect_description_file_3() { + // should not resolve main in incorrect description file #3 + let f = fixture(); + let resolution = Resolver::default().resolve(f.join("pack2"), "."); + assert!(resolution.is_err()); +} diff --git a/crates/oxc_resolver/tests/enhanced_resolve/test/mod.rs b/crates/oxc_resolver/tests/enhanced_resolve/test/mod.rs index c96ac3db3..b6dbefd10 100644 --- a/crates/oxc_resolver/tests/enhanced_resolve/test/mod.rs +++ b/crates/oxc_resolver/tests/enhanced_resolve/test/mod.rs @@ -1,5 +1,6 @@ mod extension_alias; mod extensions; +mod incorrect_description_file; mod resolve; mod simple; diff --git a/crates/oxc_resolver/tests/error_handling/broken_package_json/package.json b/crates/oxc_resolver/tests/error_handling/broken_package_json/package.json deleted file mode 100644 index 609bdea41..000000000 --- a/crates/oxc_resolver/tests/error_handling/broken_package_json/package.json +++ /dev/null @@ -1 +0,0 @@ -broken json diff --git a/crates/oxc_resolver/tests/error_handling/mod.rs b/crates/oxc_resolver/tests/error_handling/mod.rs deleted file mode 100644 index f3aba5c4a..000000000 --- a/crates/oxc_resolver/tests/error_handling/mod.rs +++ /dev/null @@ -1,17 +0,0 @@ -use std::env; - -use oxc_resolver::{JSONError, ResolveError, Resolver}; - -#[test] -fn broken_json() { - let dir = env::current_dir().unwrap().join("tests/error_handling/"); - let resolver = Resolver::default(); - let resolution = resolver.resolve(&dir, "./broken_package_json"); - let error = ResolveError::JSON(JSONError { - path: dir.join("broken_package_json").join("package.json"), - message: String::from("expected value at line 1 column 1"), - line: 1, - column: 1, - }); - assert_eq!(resolution, Err(error)); -} diff --git a/crates/oxc_resolver/tests/mod.rs b/crates/oxc_resolver/tests/mod.rs index cf4b3761d..3f2f0c7a1 100644 --- a/crates/oxc_resolver/tests/mod.rs +++ b/crates/oxc_resolver/tests/mod.rs @@ -1,5 +1,4 @@ mod enhanced_resolve; -mod error_handling; use std::{env, sync::Arc, thread};