Skip to content

Commit 6a67076

Browse files
committed
admin::render_readmes: Support Cargo.toml without readme field
1 parent 1e06b83 commit 6a67076

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

src/admin/render_readmes.rs

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,12 +210,16 @@ fn render_pkg_readme<R: Read>(mut archive: Archive<R>, pkg_name: &str) -> Option
210210
};
211211

212212
let rendered = {
213-
let readme_path = manifest.package.readme.as_ref()?;
213+
let readme_path = manifest
214+
.package
215+
.readme
216+
.clone()
217+
.unwrap_or("README.md".into());
214218
let path = format!("{}/{}", pkg_name, readme_path);
215219
let contents = find_file_by_path(&mut entries, Path::new(&path), pkg_name)?;
216220
text_to_html(
217221
&contents,
218-
readme_path,
222+
&readme_path,
219223
manifest.package.repository.as_deref(),
220224
)
221225
};
@@ -304,6 +308,23 @@ readme = "README.md"
304308
assert!(render_pkg_readme(tar::Archive::new(&*serialized_archive), "foo-0.0.1").is_none());
305309
}
306310

311+
#[test]
312+
fn test_render_pkg_implicit_readme() {
313+
let mut pkg = tar::Builder::new(vec![]);
314+
add_file(
315+
&mut pkg,
316+
"foo-0.0.1/Cargo.toml",
317+
br#"
318+
[package]
319+
"#,
320+
);
321+
add_file(&mut pkg, "foo-0.0.1/README.md", b"readme");
322+
let serialized_archive = pkg.into_inner().unwrap();
323+
let result =
324+
render_pkg_readme(tar::Archive::new(&*serialized_archive), "foo-0.0.1").unwrap();
325+
assert!(result.contains("readme"))
326+
}
327+
307328
#[test]
308329
fn test_render_pkg_readme_w_link() {
309330
let mut pkg = tar::Builder::new(vec![]);

0 commit comments

Comments
 (0)