Skip to content

Commit 6dd588e

Browse files
committed
controllers/krate/publish: Extract missing_metadata_error_message function
This will allow us to use the message generator function in tests
1 parent 13da7a3 commit 6dd588e

File tree

1 file changed

+23
-6
lines changed

1 file changed

+23
-6
lines changed

src/controllers/krate/publish.rs

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -261,13 +261,30 @@ fn parse_new_headers(req: &mut dyn RequestExt) -> AppResult<EncodableCrateUpload
261261
missing.push("authors");
262262
}
263263
if !missing.is_empty() {
264-
return Err(cargo_err(&format_args!(
265-
"missing or empty metadata fields: {}. Please \
266-
see https://doc.rust-lang.org/cargo/reference/manifest.html for \
267-
how to upload metadata",
268-
missing.join(", ")
269-
)));
264+
let message = missing_metadata_error_message(&missing);
265+
return Err(cargo_err(&message));
270266
}
271267

272268
Ok(new)
273269
}
270+
271+
pub fn missing_metadata_error_message(missing: &[&str]) -> String {
272+
format!(
273+
"missing or empty metadata fields: {}. Please \
274+
see https://doc.rust-lang.org/cargo/reference/manifest.html for \
275+
how to upload metadata",
276+
missing.join(", ")
277+
)
278+
}
279+
280+
#[cfg(test)]
281+
mod tests {
282+
use super::missing_metadata_error_message;
283+
284+
#[test]
285+
fn missing_metadata_error_message_test() {
286+
assert_eq!(missing_metadata_error_message(&["a"]), "missing or empty metadata fields: a. Please see https://doc.rust-lang.org/cargo/reference/manifest.html for how to upload metadata");
287+
assert_eq!(missing_metadata_error_message(&["a", "b"]), "missing or empty metadata fields: a, b. Please see https://doc.rust-lang.org/cargo/reference/manifest.html for how to upload metadata");
288+
assert_eq!(missing_metadata_error_message(&["a", "b", "c"]), "missing or empty metadata fields: a, b, c. Please see https://doc.rust-lang.org/cargo/reference/manifest.html for how to upload metadata");
289+
}
290+
}

0 commit comments

Comments
 (0)