The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use Test::Clustericious::Command;
use Test::More;

requires undef, 18;
extract_data;
mirror 'example/etc' => 'etc';
mirror 'bin' => 'bin';

run_ok('hello', 'configdebug')
  ->exit_is(0)
  ->out_like(qr{etc/Clustericious-HelloWorld\.conf :: template\]})
  ->out_like(qr{etc/Clustericious-HelloWorld\.conf :: interpreted\]})
  ->out_like(qr{http://127\.0\.0\.1:5000})
  ->out_like(qr{\[merged\]})
  ->note;

run_ok('clustericious', 'configdebug', 'Clustericious-HelloWorld')
  ->exit_is(0)
  ->out_like(qr{etc/Clustericious-HelloWorld\.conf :: template\]})
  ->out_like(qr{etc/Clustericious-HelloWorld\.conf :: interpreted\]})
  ->out_like(qr{http://127\.0\.0\.1:5000})
  ->out_like(qr{\[merged\]})
  ->note;

run_ok('clustericious', 'configdebug', 'Bogus')
  ->exit_is(2)
  ->err_like(qr{ERROR: unable to find Bogus})
  ->note;

run_ok('clustericious', 'configdebug', 'SyntaxError')
  ->exit_is(2)
  ->err_like(qr{ERROR: in syntax:})
  ->note;

__DATA__

@@ bin/hello
#!/usr/bin/perl

use strict;
use warnings;
use Clustericious::Commands;
$ENV{MOJO_APP} = 'Clustericious::HelloWorld';
Clustericious::Commands->start;


@@ etc/Clustericious-HelloWorld.conf
---
% extends_config 'hypnotoad', host => '127.0.0.1', port => 5000;


@@ etc/SyntaxError.conf
---
bogus bogus bogus
some bogus more