Skip to content

Commit d5606b2

Browse files
committed
test(fix): Show current project/package behavior
1 parent 1ec1455 commit d5606b2

File tree

1 file changed

+104
-0
lines changed

1 file changed

+104
-0
lines changed

tests/testsuite/fix.rs

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1942,3 +1942,107 @@ fn fix_only_once_for_duplicates() {
19421942
1 from newly-applied unsafe blocks"
19431943
);
19441944
}
1945+
1946+
#[cargo_test]
1947+
fn migrate_project_to_package() {
1948+
let p = project()
1949+
.file(
1950+
"Cargo.toml",
1951+
r#"
1952+
cargo-features = ["edition2024"]
1953+
1954+
# Before project
1955+
[ project ] # After project header
1956+
# After project header line
1957+
name = "foo"
1958+
edition = "2021"
1959+
# After project table
1960+
"#,
1961+
)
1962+
.file("src/lib.rs", "")
1963+
.build();
1964+
1965+
p.cargo("fix --edition --allow-no-vcs")
1966+
.masquerade_as_nightly_cargo(&["edition2024"])
1967+
.with_stderr(
1968+
"\
1969+
[WARNING] `[project]` is deprecated in favor of `[package]`
1970+
[CHECKING] foo v0.0.0 ([CWD])
1971+
[MIGRATING] src/lib.rs from 2021 edition to 2024
1972+
[FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [..]s
1973+
",
1974+
)
1975+
.run();
1976+
assert_eq!(
1977+
p.read_file("Cargo.toml"),
1978+
r#"
1979+
cargo-features = ["edition2024"]
1980+
1981+
# Before project
1982+
[ project ] # After project header
1983+
# After project header line
1984+
name = "foo"
1985+
edition = "2021"
1986+
# After project table
1987+
"#
1988+
);
1989+
}
1990+
1991+
#[cargo_test]
1992+
fn migrate_removes_project() {
1993+
let p = project()
1994+
.file(
1995+
"Cargo.toml",
1996+
r#"
1997+
cargo-features = ["edition2024"]
1998+
1999+
# Before package
2000+
[ package ] # After package header
2001+
# After package header line
2002+
name = "foo"
2003+
edition = "2021"
2004+
# After package table
2005+
2006+
# Before project
2007+
[ project ] # After project header
2008+
# After project header line
2009+
name = "foo"
2010+
edition = "2021"
2011+
# After project table
2012+
"#,
2013+
)
2014+
.file("src/lib.rs", "")
2015+
.build();
2016+
2017+
p.cargo("fix --edition --allow-no-vcs")
2018+
.masquerade_as_nightly_cargo(&["edition2024"])
2019+
.with_stderr(
2020+
"\
2021+
[WARNING] `[project]` is deprecated in favor of `[package]`
2022+
[CHECKING] foo v0.0.0 ([CWD])
2023+
[MIGRATING] src/lib.rs from 2021 edition to 2024
2024+
[FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [..]s
2025+
",
2026+
)
2027+
.run();
2028+
assert_eq!(
2029+
p.read_file("Cargo.toml"),
2030+
r#"
2031+
cargo-features = ["edition2024"]
2032+
2033+
# Before package
2034+
[ package ] # After package header
2035+
# After package header line
2036+
name = "foo"
2037+
edition = "2021"
2038+
# After package table
2039+
2040+
# Before project
2041+
[ project ] # After project header
2042+
# After project header line
2043+
name = "foo"
2044+
edition = "2021"
2045+
# After project table
2046+
"#
2047+
);
2048+
}

0 commit comments

Comments
 (0)