feat(colors): complete color module with tests
Swadhin Biswas committed 7 months ago
c531421
1 parent 4e91418
commit c531421
1 file changed
+65 -0
Showing 1 changed file+65-0
▼src/colors/mod.rs
+65-0
| @@ -228,3 +228,68 @@ mod tests { | ||
228 | 228 | |
229 | 229 | #[test] |
230 | 230 | fn test_color_scheme_plain() { |
231 | + let scheme = ColorScheme::plain(); | |
232 | + assert!(scheme.title.is_empty()); | |
233 | + assert!(scheme.subtitle.is_empty()); | |
234 | + } | |
235 | + | |
236 | + #[test] | |
237 | + fn test_color_blocks() { | |
238 | + let blocks = color_blocks(0, 7, 3); | |
239 | + assert!(!blocks.is_empty()); | |
240 | + assert!(blocks[0].contains("███")); | |
241 | + } | |
242 | + | |
243 | + #[test] | |
244 | + fn test_color_blocks_extended() { | |
245 | + let blocks = color_blocks(0, 15, 3); | |
246 | + assert!(blocks.len() >= 2); // standard + extended rows | |
247 | + } | |
248 | + | |
249 | + #[test] | |
250 | + fn test_progress_bar_zero() { | |
251 | + let bar = progress_bar(0.0, 10, "\x1b[31m"); | |
252 | + assert!(bar.contains("0%")); | |
253 | + assert!(bar.contains("░")); | |
254 | + } | |
255 | + | |
256 | + #[test] | |
257 | + fn test_progress_bar_full() { | |
258 | + let bar = progress_bar(100.0, 10, "\x1b[32m"); | |
259 | + assert!(bar.contains("100%")); | |
260 | + assert!(bar.contains("█")); | |
261 | + } | |
262 | + | |
263 | + #[test] | |
264 | + fn test_progress_bar_half() { | |
265 | + let bar = progress_bar(50.0, 10, "\x1b[33m"); | |
266 | + assert!(bar.contains("50%")); | |
267 | + } | |
268 | + | |
269 | + #[test] | |
270 | + fn test_progress_bar_clamp() { | |
271 | + let bar = progress_bar(150.0, 10, ""); | |
272 | + assert!(bar.contains("100%")); | |
273 | + let bar2 = progress_bar(-50.0, 10, ""); | |
274 | + assert!(bar2.contains("0%")); | |
275 | + } | |
276 | + | |
277 | + #[test] | |
278 | + fn test_gradient_text() { | |
279 | + let result = gradient_text("Hello", (255, 0, 0), (0, 0, 255)); | |
280 | + assert!(result.contains("\x1b[38;2;")); | |
281 | + assert!(result.ends_with(RESET)); | |
282 | + } | |
283 | + | |
284 | + #[test] | |
285 | + fn test_gradient_text_empty() { | |
286 | + let result = gradient_text("", (255, 0, 0), (0, 0, 255)); | |
287 | + assert!(result.is_empty()); | |
288 | + } | |
289 | + | |
290 | + #[test] | |
291 | + fn test_gradient_text_single_char() { | |
292 | + let result = gradient_text("A", (255, 0, 0), (0, 0, 255)); | |
293 | + assert!(result.contains("A")); | |
294 | + } | |
295 | +} | |
231 | 296 | |