Skip to content

Commit 4dd47f1

Browse files
oli-obkchris-laplante
authored andcommitted
Demonstrate issues when multi has more entries than the terminal is high
1 parent 8c27d55 commit 4dd47f1

File tree

1 file changed

+120
-0
lines changed

1 file changed

+120
-0
lines changed

tests/render.rs

+120
Original file line numberDiff line numberDiff line change
@@ -1102,3 +1102,123 @@ hello
11021102
██████████████████████████████████████████████████████████████████████████ 10/10"
11031103
);
11041104
}
1105+
1106+
#[test]
1107+
fn multi_progress_many_bars() {
1108+
let in_mem = InMemoryTerm::new(4, 80);
1109+
let mp =
1110+
MultiProgress::with_draw_target(ProgressDrawTarget::term_like(Box::new(in_mem.clone())));
1111+
1112+
let pb1 = mp.add(ProgressBar::new(10).with_finish(ProgressFinish::AndLeave));
1113+
let mut spinners = vec![];
1114+
for i in 0..7 {
1115+
let spinner = ProgressBar::new_spinner().with_message(i.to_string());
1116+
mp.add(spinner.clone());
1117+
spinners.push(spinner);
1118+
}
1119+
1120+
assert_eq!(in_mem.contents(), String::new());
1121+
1122+
pb1.tick();
1123+
assert_eq!(
1124+
in_mem.contents(),
1125+
r#"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 0/10"#
1126+
);
1127+
1128+
for spinner in &spinners {
1129+
spinner.tick()
1130+
}
1131+
1132+
assert_eq!(
1133+
in_mem.contents(),
1134+
r#"
1135+
⠁ 3
1136+
⠁ 4
1137+
⠁ 5
1138+
⠁ 6"#
1139+
.trim_start()
1140+
);
1141+
1142+
drop(pb1);
1143+
assert_eq!(
1144+
in_mem.contents(),
1145+
r#"
1146+
⠁ 3
1147+
⠁ 4
1148+
⠁ 5
1149+
⠁ 6"#
1150+
.trim_start()
1151+
);
1152+
1153+
drop(spinners);
1154+
1155+
assert_eq!(in_mem.contents(), r#""#);
1156+
}
1157+
1158+
#[test]
1159+
fn multi_progress_many_spinners() {
1160+
let in_mem = InMemoryTerm::new(4, 80);
1161+
let mp =
1162+
MultiProgress::with_draw_target(ProgressDrawTarget::term_like(Box::new(in_mem.clone())));
1163+
1164+
let pb1 = mp.add(ProgressBar::new(10).with_finish(ProgressFinish::AndLeave));
1165+
let mut spinners = vec![];
1166+
for i in 0..7 {
1167+
let spinner = ProgressBar::new_spinner().with_message(i.to_string());
1168+
mp.add(spinner.clone());
1169+
spinners.push(spinner);
1170+
}
1171+
1172+
assert_eq!(in_mem.contents(), String::new());
1173+
1174+
pb1.tick();
1175+
assert_eq!(
1176+
in_mem.contents(),
1177+
r#"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 0/10"#
1178+
);
1179+
1180+
for spinner in &spinners {
1181+
spinner.tick()
1182+
}
1183+
1184+
assert_eq!(
1185+
in_mem.contents(),
1186+
r#"
1187+
⠁ 3
1188+
⠁ 4
1189+
⠁ 5
1190+
⠁ 6"#
1191+
.trim_start()
1192+
);
1193+
1194+
spinners.remove(3);
1195+
1196+
assert_eq!(
1197+
in_mem.contents(),
1198+
r#"
1199+
⠁ 2
1200+
⠁ 4
1201+
⠁ 5
1202+
⠁ 6"#
1203+
.trim_start()
1204+
);
1205+
1206+
spinners.remove(4);
1207+
1208+
assert_eq!(
1209+
in_mem.contents(),
1210+
r#"
1211+
⠁ 1
1212+
⠁ 2
1213+
⠁ 4
1214+
⠁ 6"#
1215+
.trim_start()
1216+
);
1217+
1218+
drop(spinners);
1219+
1220+
assert_eq!(
1221+
in_mem.contents(),
1222+
r#"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 0/10"#
1223+
);
1224+
}

0 commit comments

Comments
 (0)