File: util.t

package info (click to toggle)
libmojolicious-plugin-assetpack-perl 2.15-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,888 kB
  • sloc: perl: 1,503; javascript: 52; makefile: 8; sh: 2
file content (47 lines) | stat: -rw-r--r-- 1,211 bytes parent folder | download | duplicates (4)
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
43
44
45
46
47
use Mojo::Base -strict;
use Test::Mojo;
use Test::More;
use Mojolicious::Plugin::AssetPack::Util qw($CWD diag has_ro);
use Mojolicious::Plugin::AssetPack::Pipe::Sass;

has_ro 'no_builder';
has_ro with_builder => sub {42};

my $obj = bless {}, __PACKAGE__;

eval { $obj->no_builder(1) };
like $@, qr{read-only}, 'no_builder read-only';
eval { $obj->no_builder };
like $@, qr{required in constructor}, 'no_builder';
$obj->{no_builder} = 'yay!';
is $obj->no_builder, 'yay!', 'no_builder with value';

eval { $obj->with_builder(1) };
like $@, qr{read-only}, 'with_builder read-only';
is $obj->with_builder, 42, 'with_builder';

{
  my $diag = '';
  local $SIG{__WARN__} = sub { $diag = $_[0] };
  diag 'foo';
  like $diag, qr{\[AssetPack\] foo\n}, 'diag foo';
  diag 'foo %s', 'bar';
  like $diag, qr{\[AssetPack\] foo bar\n}, 'diag foo bar';
}

my $dir = $CWD;

{
  local $CWD = File::Spec->tmpdir;
  isnt $CWD, $dir, 'chdir';
}

is $dir, Cwd::getcwd, 'back on track';

for my $name (qw(gem node ruby)) {
  my $method = "_install_$name";
  eval { Mojolicious::Plugin::AssetPack::Pipe::Sass->new->$method };
  like $@, qr{Mojolicious::Plugin::AssetPack::Pipe::Sass requires.*$name.*http}, $method;
}

done_testing;