forked from lix-project/hydra
Pierre Bourdon
6189ba9c5e
This is implement in an extremely hacky way due to poor DBIx feature support. Ideally, what we'd need is a way to tell DBIx to ignore the errormsg column unless explicitly requested, and to automatically add a computed 'errormsg IS NULL' column in others. Since it does not support that, this commit instead hacks some support via method overrides while taking care to not break anything obvious.
36 lines
1.2 KiB
Perl
36 lines
1.2 KiB
Perl
use strict;
|
|
use warnings;
|
|
use Setup;
|
|
use Test2::V0;
|
|
|
|
my $ctx = test_context();
|
|
|
|
my $builds = $ctx->makeAndEvaluateJobset(
|
|
expression => 'constituents.nix',
|
|
);
|
|
|
|
my $constituentBuildA = $builds->{"constituentA"};
|
|
my $constituentBuildB = $builds->{"constituentB"};
|
|
|
|
my $eval = $constituentBuildA->jobsetevals->first();
|
|
is($eval->evaluationerror->has_error, 0);
|
|
|
|
subtest "Verifying the direct aggregate" => sub {
|
|
my $aggBuild = $builds->{"direct_aggregate"};
|
|
is($aggBuild->constituents->first()->id, $constituentBuildA->id, "The ID of the constituent is correct");
|
|
};
|
|
|
|
subtest "Verifying the indirect aggregate" => sub {
|
|
my $indirectBuild = $builds->{"indirect_aggregate"};
|
|
is($indirectBuild->constituents->first()->id, $constituentBuildA->id, "The ID of the constituent is correct");
|
|
};
|
|
|
|
subtest "Verifying a mix of direct and indirect aggregate references" => sub {
|
|
my $mixedBuild = $builds->{"mixed_aggregate"};
|
|
my ($constituentA, $constituentB) = $mixedBuild->constituents()->search({}, {order_by => { -asc => "job"} });
|
|
is($constituentA->id, $constituentBuildA->id, "The ID of the constituent is correct");
|
|
is($constituentB->id, $constituentBuildB->id, "The ID of the constituent is correct");
|
|
};
|
|
|
|
done_testing;
|