coredns/plugin/ready/setup_test.go
Gleb Kogtev 52b3172b2e
Do not interrupt querying readiness probes for plugins (#6975)
* Do not interrupt querying readiness probes for plugins

Signed-off-by: Gleb Kogtev <gleb.kogtev@gmail.com>

* Add monitor param for ready plugin

Signed-off-by: Gleb Kogtev <gleb.kogtev@gmail.com>

* Update ready docs

Signed-off-by: Gleb Kogtev <gleb.kogtev@gmail.com>

* Update ready docs

Signed-off-by: Gleb Kogtev <gleb.kogtev@gmail.com>

---------

Signed-off-by: Gleb Kogtev <gleb.kogtev@gmail.com>
2025-04-08 09:46:30 -04:00

99 lines
2.1 KiB
Go

package ready
import (
"testing"
"github.com/coredns/caddy"
)
func TestSetupReady(t *testing.T) {
tests := []struct {
input string
expectedAddr string
expectedMonitorType monitorType
shouldErr bool
}{
{
input: `ready`,
expectedAddr: ":8181",
expectedMonitorType: monitorTypeUntilReady,
shouldErr: false,
},
{
input: `ready localhost:1234`,
expectedAddr: "localhost:1234",
expectedMonitorType: monitorTypeUntilReady,
shouldErr: false,
},
{
input: `
ready {
monitor until-ready
}`,
expectedAddr: ":8181",
expectedMonitorType: monitorTypeUntilReady,
shouldErr: false,
},
{
input: `
ready {
monitor continuously
}`,
expectedAddr: ":8181",
expectedMonitorType: monitorTypeContinuously,
shouldErr: false,
},
{
input: `
ready localhost:1234 {
monitor continuously
}`,
expectedAddr: "localhost:1234",
expectedMonitorType: monitorTypeContinuously,
shouldErr: false,
},
{
input: `
ready localhost:1234 {
monitor 404
}`,
shouldErr: true,
},
{
input: `ready localhost:1234 b`,
shouldErr: true,
},
{
input: `ready bla`,
shouldErr: true,
},
{
input: `ready bla bla`,
shouldErr: true,
},
}
for i, test := range tests {
actualAddress, actualMonitorType, err := parse(caddy.NewTestController("dns", test.input))
if actualAddress != test.expectedAddr {
t.Errorf("Test %d: Expected address %s but found %s for input %s", i, test.expectedAddr, actualAddress, test.input)
}
if actualMonitorType != test.expectedMonitorType {
t.Errorf("Test %d: Expected monitor type %s but found %s for input %s", i, test.expectedMonitorType, actualMonitorType, test.input)
}
if test.shouldErr && err == nil {
t.Errorf("Test %d: Expected error but found none for input %s", i, test.input)
}
if err != nil {
if !test.shouldErr {
t.Errorf("Test %d: Expected no error but found one for input %s. Error was: %v", i, test.input, err)
}
}
}
}