File: metadata.t

package info (click to toggle)
libdist-zilla-plugins-cjm-perl 6.000-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 324 kB
  • sloc: perl: 1,439; makefile: 11
file content (106 lines) | stat: -rw-r--r-- 2,628 bytes parent folder | download | duplicates (5)
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#! /usr/bin/perl
#---------------------------------------------------------------------

use strict;
use warnings;
use Test::More 0.88 tests => 5; # done_testing

use Test::DZil 'Builder';

#---------------------------------------------------------------------
sub make_ini
{
  my $ini = <<'END START';
name     = DZT-Sample
author   = E. Xavier Ample <example@example.org>
license  = Perl_5
copyright_holder = E. Xavier Ample
version          = 0.04

[GatherDir]
[Metadata]
END START

  $ini . join('', map { "$_\n" } @_);
} # end make_ini

#---------------------------------------------------------------------
sub build_tzil
{
  my $tzil = Builder->from_config(
    { dist_root => 'corpus/DZT' },
    {
      add_files => {
        'source/dist.ini' => make_ini(@_),
      },
    },
  );

  $tzil->build;

  return $tzil;
} # end build_tzil

#---------------------------------------------------------------------
# Collect the standard metadata generated by Dist::Zilla:

my %base = %{ build_tzil->distmeta };

#---------------------------------------------------------------------
{
  my $tzil = build_tzil('dynamic_config = 1');

  is_deeply($tzil->distmeta, { %base, dynamic_config => 1 }, 'dynamic_config');
}

#---------------------------------------------------------------------
{
  my $tzil = build_tzil('no_index.directory = tools');

  is_deeply($tzil->distmeta,
            { %base, no_index => { directory => ['tools'] } },
            'no_index 1 directory');
}

#---------------------------------------------------------------------
{
  my $tzil = build_tzil(
    'no_index.directory = tools',
    'no_index.directory = inc',
    'no_index.package   = Foo::Bar',
  );

  is_deeply($tzil->distmeta,
            { %base, no_index => { directory => [qw(tools inc)],
                                   package   => ['Foo::Bar'] } },
            'no_index 2 directories and package');
}

#---------------------------------------------------------------------
{
  my $tzil = build_tzil(
    'resources.bugtracker.mailto = bugs@example.com',
  );

  is_deeply(
    $tzil->distmeta,
    { %base, resources => { bugtracker => { mailto => 'bugs@example.com' } } },
    'bugtracker mailto');
}

#---------------------------------------------------------------------
{
  my $tzil = build_tzil(
    'resources.bugtracker.mailto = bugs@example.com',
    'resources.bugtracker.web    = http://example.com',
  );

  is_deeply(
    $tzil->distmeta,
    { %base, resources => { bugtracker => {
        mailto => 'bugs@example.com',
        web    => 'http://example.com' } } },
    'bugtracker mailto and web');
}

done_testing;