/
01-basic.t
42 lines (30 loc) · 1020 Bytes
/
01-basic.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
use v6;
use Test;
use lib 'lib';
use Term::ProgressBar;
use IO::Capture::Simple;
subtest {
my $bar = Term::ProgressBar.new(count => 100);
my $r;
$r = capture_stdout { $bar.update(50) }
like($r, rx/ '[' '='+ ' '+ ']' /, 'update(50)');
$r = capture_stdout { $bar.update(100) }
like($r, rx/ '[' '='+ ']' /, 'update(100)');
}, 'default bar style';
subtest {
my $bar = Term::ProgressBar.new(count => 100, :p);
my $r;
$r = capture_stdout { $bar.update(50) }
like($r, rx/ '[' '='+ ' '+ '] 50%' /, 'update(50)');
$r = capture_stdout { $bar.update(100) }
like($r, rx/ '[' '='+ '] 100%' /, 'update(100)');
}, 'with percent at end';
subtest {
my $bar = Term::ProgressBar.new(count => 100, :t);
my $r;
$r = capture_stdout { $bar.update(50) }
like($r, rx/ '[' '='+ ' '+ '] eta ' <[ 0..9 \. ]>+ 's' /, 'update(50)');
$r = capture_stdout { $bar.update(100) }
like($r, rx/ '[' '='+ '] eta 0s' /, 'update(100)');
}, 'with eta at end';
done-testing;