The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use FindBin;
use lib "$FindBin::Bin/lib";
use Test::More;
use Log::Dump::Functions;

BEGIN {
  eval { require IO::Capture::Stderr; 1 }
    or plan skip_all => 'requires IO::Capture::Stderr';
}

my $capture = IO::Capture::Stderr->new;

subtest 'plain_usage' => sub {
  $capture->start;
  log( debug => 'message' );
  $capture->stop;
  my $captured = join "\n", $capture->read;

  like $captured => qr/\[debug\] message/, 'captured';
  unlike $captured => qr{Log.Dump.Functions}, 'not from Log::Dump::Functions';
};

subtest 'error' => sub {
  $capture->start;
  log( error => 'message' );
  $capture->stop;
  my $captured = join "\n", $capture->read;

  like $captured => qr/\[error\] message/, 'captured';
  unlike $captured => qr{Log.Dump.Functions}, 'not from Log::Dump::Functions';
};

subtest 'fatal' => sub {
  eval { log( fatal => 'message' ) };

  like $@ => qr/\[fatal\] message/, 'captured';
  unlike $@ => qr{Log.Dump.Functions}, 'not from Log::Dump::Functions';
};

done_testing;