Files
.github
datadog
doc
examples
foreman
nixos-modules
src
t
Helper
Hydra
Config
hydra-notify.t
include.t
ldap_role_map.t
statsd.t
Controller
Event
Helper
Plugin
Schema
View
Event.t
Math.t
PostgresListener.t
TaskDispatcher.t
content-addressed
evaluator
input-types
jobs
lib
queue-runner
scripts
Makefile.am
api-test.t
build-products.t
perlcritic.pl
s3-backup-test.config
s3-backup-test.pl
setup-notifications-jobset.pl
test.pl
.editorconfig
.gitignore
.perlcriticrc
.yath.rc
COPYING
INSTALL
Makefile.am
Procfile
README.md
configure.ac
default.nix
flake.lock
flake.nix
hydra-api.yaml
nixos-tests.nix
package.nix
shell.nix
version.txt
hydra/t/Hydra/Config/hydra-notify.t
Graham Christensen f07fb7d279 LDAP support: include BC support for the YAML based loading
Includes a refactoring of the configuration loader.
2022-02-11 10:49:38 -05:00

90 lines
2.5 KiB
Perl

use strict;
use warnings;
use Setup;
use Hydra::Config;
my %ctx = test_init(hydra_config => q|
<hydra_notify>
<prometheus>
listen_address = 127.0.0.1
port = 9199
</prometheus>
</hydra_notify>
|);
require Hydra::Helper::Nix;
use Test2::V0;
is(Hydra::Helper::Nix::getHydraNotifyPrometheusConfig(getHydraConfig()), {
'listen_address' => "127.0.0.1",
'port' => 9199
}, "Reading specific configuration from the hydra.conf works");
is(Hydra::Helper::Nix::getHydraNotifyPrometheusConfig({
"hydra_notify" => ":)"
}), undef, "Invalid (hydra_notify is a string) configuration options are undef");
is(Hydra::Helper::Nix::getHydraNotifyPrometheusConfig({
"hydra_notify" => []
}), undef, "Invalid (hydra_notify is a list) configuration options are undef");
is(Hydra::Helper::Nix::getHydraNotifyPrometheusConfig({
"hydra_notify" => {}
}), undef, "Invalid (hydra_notify is an empty hash) configuration options are undef");
is(Hydra::Helper::Nix::getHydraNotifyPrometheusConfig({
"hydra_notify" => {
"prometheus" => ":)"
}
}), undef, "Invalid (hydra_notify.prometheus is a string) configuration options are undef");
is(Hydra::Helper::Nix::getHydraNotifyPrometheusConfig({
"hydra_notify" => {
"prometheus" => {}
}
}), undef, "Invalid (hydra_notify.prometheus is an empty hash) configuration options are undef");
is(Hydra::Helper::Nix::getHydraNotifyPrometheusConfig({
"hydra_notify" => {
"prometheus" => {
"listen_address" => "0.0.0.0"
}
}
}), undef, "Invalid (hydra_notify.prometheus.port is missing) configuration options are undef");
is(Hydra::Helper::Nix::getHydraNotifyPrometheusConfig({
"hydra_notify" => {
"prometheus" => {
"port" => 1234
}
}
}), undef, "Invalid (hydra_notify.prometheus.listen_address is missing) configuration options are undef");
is(Hydra::Helper::Nix::getHydraNotifyPrometheusConfig({
"hydra_notify" => {
"prometheus" => {
"listen_address" => "127.0.0.1",
"port" => 1234
}
}
}), {
"listen_address" => "127.0.0.1",
"port" => 1234
}, "Fully specified hydra_notify.prometheus config is valid and returned");
is(Hydra::Helper::Nix::getHydraNotifyPrometheusConfig({
"hydra_notify" => {
"prometheus" => {
"listen_address" => "127.0.0.1",
"port" => 1234,
"extra_keys" => "meh",
}
}
}), {
"listen_address" => "127.0.0.1",
"port" => 1234
}, "extra configuration in hydra_notify.prometheus is not returned");
done_testing;