Skip to content

Commit 3a51bee

Browse files
authored
Fixes implicit folder detection (#50)
* Fixes implicit folder detection * Fixes fmt
1 parent 785327c commit 3a51bee

File tree

3 files changed

+34
-1
lines changed

3 files changed

+34
-1
lines changed

fixtures/left-pad-1.zip

11.3 KB
Binary file not shown.

fixtures/left-pad-2.zip

10.9 KB
Binary file not shown.

src/zip.rs

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ where
4343
let name = util::normalize_path(name);
4444
let segments: Vec<&str> = name.split('/').collect();
4545

46-
for t in 1..segments.len() - 1 {
46+
for t in 1..segments.len() {
4747
let dir = segments[0..t].to_vec().join("/");
4848
zip.dirs.insert(dir + "/");
4949
}
@@ -201,3 +201,36 @@ fn read_central_file_header(
201201

202202
Ok(Some((file_name, Some(entry))))
203203
}
204+
205+
#[cfg(test)]
206+
mod tests {
207+
use super::*;
208+
209+
#[test]
210+
fn test_read_zip_entry() {
211+
let zip = Zip::new(include_bytes!("../fixtures/left-pad-1.zip")).unwrap();
212+
213+
let mut dirs = zip.dirs.iter().map(|d| d.as_str()).collect::<Vec<&str>>();
214+
215+
dirs.sort();
216+
217+
assert_eq!(
218+
dirs,
219+
vec!["node_modules/", "node_modules/left-pad/", "node_modules/left-pad/perf/",]
220+
);
221+
}
222+
223+
#[test]
224+
fn test_read_zip_entry_2() {
225+
let zip = Zip::new(include_bytes!("../fixtures/left-pad-2.zip")).unwrap();
226+
227+
let mut dirs = zip.dirs.iter().map(|d| d.as_str()).collect::<Vec<&str>>();
228+
229+
dirs.sort();
230+
231+
assert_eq!(
232+
dirs,
233+
vec!["node_modules/", "node_modules/left-pad/", "node_modules/left-pad/perf/",]
234+
);
235+
}
236+
}

0 commit comments

Comments
 (0)