Skip to content

Commit e0a1918

Browse files
stupendoussuperpowersepage
authored andcommitted
test(publish): Show publishing existing version
1 parent be1bbda commit e0a1918

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

tests/testsuite/publish.rs

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,58 @@ You may press ctrl-c to skip waiting; the crate should be available shortly.
130130
validate_upload_foo();
131131
}
132132

133+
#[cargo_test]
134+
fn duplicate_version() {
135+
let registry_dupl = RegistryBuilder::new()
136+
.http_api()
137+
.http_index()
138+
// test registry doesn't error on duplicate versions, we need to
139+
.add_responder("/api/v1/crates/new", move |_req, _server| Response {
140+
code: 200,
141+
headers: vec![],
142+
body: br#"{"errors": [{"detail": "crate version `0.0.1` is already uploaded"}]}"#
143+
.to_vec(),
144+
})
145+
.build();
146+
147+
let p = project()
148+
.file(
149+
"Cargo.toml",
150+
r#"
151+
[package]
152+
name = "foo"
153+
version = "0.0.1"
154+
authors = []
155+
license = "MIT"
156+
description = "foo"
157+
"#,
158+
)
159+
.file("src/main.rs", "fn main() {}")
160+
.build();
161+
162+
p.cargo("publish")
163+
.replace_crates_io(registry_dupl.index_url())
164+
.with_status(101)
165+
.with_stderr_data(str![[r#"
166+
[UPDATING] crates.io index
167+
[WARNING] manifest has no documentation, homepage or repository.
168+
See https://doc.rust-lang.org/cargo/reference/manifest.html#package-metadata for more info.
169+
[PACKAGING] foo v0.0.1 ([ROOT]/foo)
170+
[PACKAGED] 4 files, [FILE_SIZE]B ([FILE_SIZE]B compressed)
171+
[VERIFYING] foo v0.0.1 ([ROOT]/foo)
172+
[WARNING] no edition set: defaulting to the 2015 edition while the latest is 2021
173+
[COMPILING] foo v0.0.1 ([ROOT]/foo/target/package/foo-0.0.1)
174+
[FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s
175+
[UPLOADING] foo v0.0.1 ([ROOT]/foo)
176+
[ERROR] failed to publish to registry at http://127.0.0.1:41463/
177+
178+
Caused by:
179+
the remote server responded with an [ERROR] crate version `0.0.1` is already uploaded
180+
181+
"#]])
182+
.run();
183+
}
184+
133185
// Check that the `token` key works at the root instead of under a
134186
// `[registry]` table.
135187
#[cargo_test]

0 commit comments

Comments
 (0)