Skip to content

Commit b0f84d0

Browse files
committed
refactor
prepare for making version-deletions clearer
1 parent dd27cae commit b0f84d0

File tree

3 files changed

+25
-5
lines changed

3 files changed

+25
-5
lines changed

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ ahash = "0.8.0"
4646
hashbrown = { version = "0.14.0", features = ["raw"] }
4747

4848
[dev-dependencies]
49+
gix = { version = "0.48.0", default-features = false, features = ["regex"] }
4950
gix-testtools = "0.12.0"
5051
crates-index = "0.19.10"
5152
tempdir = "0.3.5"
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:efca9de35ae159baebe515c0493d779a4847cdad81f6c10bfe10ba29f489cf51
3-
size 622600
2+
oid sha256:0fb4eff8580681c0ba6251b18ec7b78503881bd38b185b0209745d24b7fffedd
3+
size 593240

tests/index/changes_between_commits.rs

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,16 +85,35 @@ fn addition() -> crate::Result {
8585
}
8686

8787
#[test]
88-
fn deletion() -> crate::Result {
88+
fn crate_deletion_with_single_version() -> crate::Result {
8989
let changes = changes(index_ro()?, "@^{/Delete crates}")?;
9090
assert_eq!(changes.len(), 1);
91+
let (name, versions) = changes
92+
.first()
93+
.and_then(|c| c.crate_deleted())
94+
.expect("CrateDeleted event");
95+
assert_eq!(name, "girl");
9196
assert_eq!(
92-
changes.first().and_then(|c| c.crate_deleted().map(|t| t.0)),
93-
Some("girl")
97+
versions.len(),
98+
1,
99+
"there was only one version, it's still detected as crate deletion though"
94100
);
95101
Ok(())
96102
}
97103

104+
#[test]
105+
fn crate_deletion_with_multiple_versions() -> crate::Result {
106+
let changes = changes(index_ro()?, "@^{/Delete crate\n}")?;
107+
assert_eq!(changes.len(), 1);
108+
let (name, versions) = changes
109+
.first()
110+
.and_then(|c| c.crate_deleted())
111+
.expect("CrateDeleted event");
112+
assert_eq!(name, "git-fuse");
113+
assert_eq!(versions.len(), 4, "there were 4 versions in the file");
114+
Ok(())
115+
}
116+
98117
#[test]
99118
fn new_version() -> crate::Result {
100119
let changes = changes(index_ro()?, ":/Updating crate `git-repository#0.22.1`")?;

0 commit comments

Comments
 (0)