CI / changes (push) Successful in 8s
CI / commitlint (push) Has been skipped
CI / openapi (push) Has been skipped
CI / web (push) Successful in 30s
CI / go (push) Failing after 24s
CI / bird2 (push) Has been skipped
CI / release (push) Has been skipped
Updated the PostgreSQL monitoring service to improve handling of `pg_stat_statements` availability. Introduced a new method to check if the extension is queryable and updated the response structure to include availability status and hints. Enhanced the documentation to clarify the requirements for enabling `pg_stat_statements`. Adjusted related components to reflect these changes, ensuring better user feedback in the monitoring interface.
49 lines
944 B
Go
49 lines
944 B
Go
package pgmonitor
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
|
|
"github.com/jackc/pgx/v5/pgconn"
|
|
)
|
|
|
|
func TestClampLimit(t *testing.T) {
|
|
if clampLimit(0, 20, 100) != 20 {
|
|
t.Fatal("default")
|
|
}
|
|
if clampLimit(200, 20, 100) != 100 {
|
|
t.Fatal("max")
|
|
}
|
|
if clampLimit(5, 20, 100) != 5 {
|
|
t.Fatal("value")
|
|
}
|
|
}
|
|
|
|
func TestIsSafeIdent(t *testing.T) {
|
|
if !isSafeIdent("revision_materialized_prefix") {
|
|
t.Fatal("valid")
|
|
}
|
|
if isSafeIdent("bad-name") {
|
|
t.Fatal("invalid")
|
|
}
|
|
if !isSafeIdent("") {
|
|
t.Fatal("empty ok")
|
|
}
|
|
}
|
|
|
|
func TestNewServiceNilPool(t *testing.T) {
|
|
if NewService(nil) != nil {
|
|
t.Fatal("expected nil service")
|
|
}
|
|
}
|
|
|
|
func TestIsPgStatStatementsUnavailable(t *testing.T) {
|
|
err := &pgconn.PgError{Code: "55000", Message: "pg_stat_statements must be loaded via shared_preload_libraries"}
|
|
if !isPgStatStatementsUnavailable(err) {
|
|
t.Fatal("55000")
|
|
}
|
|
if isPgStatStatementsUnavailable(errors.New("other")) {
|
|
t.Fatal("unrelated")
|
|
}
|
|
}
|