aboutsummaryrefslogtreecommitdiff
path: root/t/release/Test/IRC/Server.pm6
blob: fed3d668430c0c787b594f05a442f0062ab0c75a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
unit class Test::IRC::Server;

use JSON::Fast;

has $!port;
has $!proc;
has Promise $.promise;
has @.out;

submethod BUILD (:$!port = 5000, :$server = 't/release/servers/01-basic.pl') {
    $!proc = Proc::Async.new: 'perl', $server, $!port;
    $!proc.stdout.tap: {
        %*ENV<IRC_CLIENT_DEBUG> and dd .lines;
        @!out.append: |.linesĀ».&from-json
    };
    $!proc.stderr.tap: { warn $_                         };
    $!promise = $!proc.start;
}

method kill { $!proc.kill; }