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
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