File: group-by-sla.t

package info (click to toggle)
request-tracker5 5.0.3%2Bdfsg-3~deb12u3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 77,648 kB
  • sloc: javascript: 187,930; perl: 79,061; sh: 1,302; makefile: 471; python: 37; php: 15
file content (92 lines) | stat: -rw-r--r-- 2,610 bytes parent folder | download | duplicates (9)
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
use strict;
use warnings;

use RT::Test
    tests => undef,
    config =>  <<THERE;
Set(%ServiceAgreements, (
    Default => '2',
    Levels => {
        '2' => {
            StartImmediately => 1,
            Response => { RealMinutes => 60 * 2 },
        },
        '4' => {
            StartImmediately => 1,
            Response => { RealMinutes => 60 * 4 },
        },
    },
));
THERE
use RT::Ticket;

my $q = RT::Test->load_or_create_queue( Name => 'test', SLADisabled => 0 );
ok $q && $q->id, 'loaded or created queue';
my $queue = $q->Name;

my $t1 = RT::Ticket->new( $RT::SystemUser );
my $t1_id = $t1->Create( Queue => $queue, Subject => 'test 1' );
ok $t1_id, "created ticket #$t1_id";
is $t1->SLA, '2', 'default sla';

my $t2 = RT::Ticket->new( $RT::SystemUser );
my $t2_id = $t2->Create( Queue => $queue, Subject => 'test 2' );
ok $t2_id, "created ticket #$t2_id";
is $t2->SLA, '2', 'default sla';
$t2->SetSLA('4');
is $t2->SLA, '4', 'new sla';

my $t3 = RT::Ticket->new($RT::SystemUser);
my $t3_id = $t3->Create( Queue => $queue, Subject => 'test 3' );
ok $t3_id, "created ticket #$t3_id";
is $t3->SLA, '2', 'default sla';

use_ok 'RT::Report::Tickets';

{
    my $report = RT::Report::Tickets->new( RT->SystemUser );
    my %columns = $report->SetupGroupings(
        Query    => 'Queue = '. $q->id,
        GroupBy  => ["SLA"],
        Function => ['COUNT'],
    );
    $report->SortEntries;

    my @colors = RT->Config->Get("ChartColors");
    my $expected = {
        'thead' => [ {
                'cells' => [
                    { 'value' => 'SLA', 'type' => 'head' },
                    { 'rowspan' => 1, 'value' => 'Ticket count', 'type' => 'head', 'color' => $colors[0] },
                ],
        } ],
       'tfoot' => [ {
            'cells' => [
                { 'colspan' => 1, 'value' => 'Total', 'type' => 'label' },
                { 'value' => 3, 'type' => 'value' },
            ],
            'even' => 1
        } ],
       'tbody' => [
            {
                'cells' => [
                    { 'value' => '2', 'type' => 'label' },
                    { 'query' => "(SLA = 2)", 'value' => '2', 'type' => 'value' },
                ],
                'even' => 1
            },
            {
                'cells' => [
                    { 'value' => '4', 'type' => 'label' },
                    { 'query' => "(SLA = 4)", 'value' => '1', 'type' => 'value' },
                ],
                'even' => 0
            },
        ]
    };

    my %table = $report->FormatTable( %columns );
    is_deeply( \%table, $expected, "basic table" );
}

done_testing;