test: migrate locate_project to snapbox

This commit is contained in:
eth3lbert 2024-06-27 15:29:31 +08:00
parent c3327ed04a
commit 02c0f7ef57
No known key found for this signature in database

View File

@ -1,15 +1,22 @@
//! Tests for the `cargo locate-project` command. //! Tests for the `cargo locate-project` command.
#![allow(deprecated)] use cargo_test_support::prelude::*;
use cargo_test_support::project; use cargo_test_support::project;
use cargo_test_support::str;
#[cargo_test] #[cargo_test]
fn simple() { fn simple() {
let p = project().build(); let p = project().build();
p.cargo("locate-project") p.cargo("locate-project")
.with_json(r#"{"root": "[ROOT]/foo/Cargo.toml"}"#) .with_stdout_data(
str![[r#"
{
"root": "[ROOT]/foo/Cargo.toml"
}
"#]]
.json(),
)
.run(); .run();
} }
@ -18,15 +25,28 @@ fn message_format() {
let p = project().build(); let p = project().build();
p.cargo("locate-project --message-format plain") p.cargo("locate-project --message-format plain")
.with_stdout("[ROOT]/foo/Cargo.toml") .with_stdout_data(str![[r#"
[ROOT]/foo/Cargo.toml
"#]])
.run(); .run();
p.cargo("locate-project --message-format json") p.cargo("locate-project --message-format json")
.with_json(r#"{"root": "[ROOT]/foo/Cargo.toml"}"#) .with_stdout_data(
str![[r#"
{
"root": "[ROOT]/foo/Cargo.toml"
}
"#]]
.json(),
)
.run(); .run();
p.cargo("locate-project --message-format cryptic") p.cargo("locate-project --message-format cryptic")
.with_stderr("error: invalid message format specifier: `cryptic`") .with_stderr_data(str![[r#"
[ERROR] invalid message format specifier: `cryptic`
"#]])
.with_status(101) .with_status(101)
.run(); .run();
} }
@ -57,22 +77,49 @@ fn workspace() {
.file("inner/src/lib.rs", "") .file("inner/src/lib.rs", "")
.build(); .build();
let outer_manifest = r#"{"root": "[ROOT]/foo/Cargo.toml"}"#; p.cargo("locate-project")
let inner_manifest = r#"{"root": "[ROOT]/foo/inner/Cargo.toml"}"#; .with_stdout_data(
str![[r#"
p.cargo("locate-project").with_json(outer_manifest).run(); {
"root": "[ROOT]/foo/Cargo.toml"
}
"#]]
.json(),
)
.run();
p.cargo("locate-project") p.cargo("locate-project")
.cwd("inner") .cwd("inner")
.with_json(inner_manifest) .with_stdout_data(
str![[r#"
{
"root": "[ROOT]/foo/inner/Cargo.toml"
}
"#]]
.json(),
)
.run(); .run();
p.cargo("locate-project --workspace") p.cargo("locate-project --workspace")
.with_json(outer_manifest) .with_stdout_data(
str![[r#"
{
"root": "[ROOT]/foo/Cargo.toml"
}
"#]]
.json(),
)
.run(); .run();
p.cargo("locate-project --workspace") p.cargo("locate-project --workspace")
.cwd("inner") .cwd("inner")
.with_json(outer_manifest) .with_stdout_data(
str![[r#"
{
"root": "[ROOT]/foo/Cargo.toml"
}
"#]]
.json(),
)
.run(); .run();
} }