debug(ci): keep only Row-Level Security onwards in test_all.nim
This commit is contained in:
@@ -55,90 +55,6 @@ import barabadb/protocol/scram
|
|||||||
import barabadb/protocol/ratelimit
|
import barabadb/protocol/ratelimit
|
||||||
import barabadb/schema/schema as schema
|
import barabadb/schema/schema as schema
|
||||||
|
|
||||||
suite "TLS/SSL":
|
|
||||||
test "Create TLS config":
|
|
||||||
let config = newTLSConfig("cert.pem", "key.pem", "ca.pem", verifyPeer = true)
|
|
||||||
check config.certFile == "cert.pem"
|
|
||||||
check config.verifyPeer == true
|
|
||||||
|
|
||||||
test "Validate cert — missing file":
|
|
||||||
let errors = validateCert("nonexistent.pem")
|
|
||||||
check errors.len > 0
|
|
||||||
|
|
||||||
test "Certificate info parsing":
|
|
||||||
# Write a dummy PEM cert
|
|
||||||
let testCert = "/tmp/baradb_test_cert.pem"
|
|
||||||
writeFile(testCert, "Subject: CN=localhost\nIssuer: CN=localhost\n")
|
|
||||||
let info = parseCertInfo(testCert)
|
|
||||||
check info.subject.len > 0
|
|
||||||
check info.isSelfSigned # subject == issuer
|
|
||||||
|
|
||||||
test "TLS context creation with missing cert raises":
|
|
||||||
var raised = false
|
|
||||||
try:
|
|
||||||
discard newTLSContext(newTLSConfig("nonexistent.pem", "nonexistent.key"))
|
|
||||||
except IOError:
|
|
||||||
raised = true
|
|
||||||
check raised
|
|
||||||
|
|
||||||
test "Generate self-signed cert":
|
|
||||||
let (certPath, keyPath) = generateSelfSignedCert("/tmp/baradb_test_tls", "test.local")
|
|
||||||
# May fail if openssl not installed
|
|
||||||
if certPath.len > 0:
|
|
||||||
check fileExists(certPath)
|
|
||||||
check fileExists(keyPath)
|
|
||||||
# Should be able to create TLS context from generated cert
|
|
||||||
let ctx = newTLSContext(newTLSConfig(certPath, keyPath))
|
|
||||||
check ctx != nil
|
|
||||||
|
|
||||||
test "Server with TLS config":
|
|
||||||
var cfg = defaultConfig()
|
|
||||||
cfg.tlsEnabled = true
|
|
||||||
let (certPath, keyPath) = generateSelfSignedCert("/tmp/baradb_test_tls2", "test.local")
|
|
||||||
if certPath.len > 0:
|
|
||||||
cfg.certFile = certPath
|
|
||||||
cfg.keyFile = keyPath
|
|
||||||
var srv = newServer(cfg)
|
|
||||||
check srv != nil
|
|
||||||
check srv.tls != nil
|
|
||||||
|
|
||||||
suite "Triggers":
|
|
||||||
test "Parse CREATE TRIGGER":
|
|
||||||
let ast = parse("CREATE TRIGGER log_insert BEFORE INSERT ON users AS INSERT INTO audit_log VALUES ('insert', 'users')")
|
|
||||||
check ast.stmts.len == 1
|
|
||||||
check ast.stmts[0].kind == nkCreateTrigger
|
|
||||||
check ast.stmts[0].trigName == "log_insert"
|
|
||||||
check ast.stmts[0].trigTable == "users"
|
|
||||||
check ast.stmts[0].trigTiming == "before"
|
|
||||||
check ast.stmts[0].trigEvent == "INSERT"
|
|
||||||
check ast.stmts[0].trigAction.strVal.contains("INSERT")
|
|
||||||
check ast.stmts[0].trigAction.strVal.contains("audit_log")
|
|
||||||
|
|
||||||
test "Parse CREATE TRIGGER AFTER UPDATE":
|
|
||||||
let ast = parse("CREATE TRIGGER audit_update AFTER UPDATE ON orders AS INSERT INTO audit VALUES ('updated')")
|
|
||||||
check ast.stmts[0].kind == nkCreateTrigger
|
|
||||||
check ast.stmts[0].trigTiming == "after"
|
|
||||||
check ast.stmts[0].trigEvent == "UPDATE"
|
|
||||||
|
|
||||||
test "Parse CREATE TRIGGER INSTEAD OF DELETE":
|
|
||||||
let ast = parse("CREATE TRIGGER soft_delete INSTEAD OF DELETE ON users AS UPDATE users SET deleted = true WHERE id = OLD.id")
|
|
||||||
check ast.stmts[0].kind == nkCreateTrigger
|
|
||||||
check ast.stmts[0].trigTiming == "instead of"
|
|
||||||
check ast.stmts[0].trigEvent == "DELETE"
|
|
||||||
|
|
||||||
test "Parse DROP TRIGGER":
|
|
||||||
let ast = parse("DROP TRIGGER log_insert")
|
|
||||||
check ast.stmts.len == 1
|
|
||||||
check ast.stmts[0].kind == nkDropTrigger
|
|
||||||
check ast.stmts[0].trigDropName == "log_insert"
|
|
||||||
check ast.stmts[0].trigDropIfExists == false
|
|
||||||
|
|
||||||
test "Parse DROP TRIGGER IF EXISTS":
|
|
||||||
let ast = parse("DROP TRIGGER IF EXISTS old_trigger")
|
|
||||||
check ast.stmts[0].kind == nkDropTrigger
|
|
||||||
check ast.stmts[0].trigDropName == "old_trigger"
|
|
||||||
check ast.stmts[0].trigDropIfExists == true
|
|
||||||
|
|
||||||
suite "Row-Level Security":
|
suite "Row-Level Security":
|
||||||
test "Parse CREATE USER":
|
test "Parse CREATE USER":
|
||||||
let ast = parse("CREATE USER admin WITH PASSWORD 'secret' SUPERUSER")
|
let ast = parse("CREATE USER admin WITH PASSWORD 'secret' SUPERUSER")
|
||||||
|
|||||||
Reference in New Issue
Block a user