diff --git a/tests/test_all.nim b/tests/test_all.nim index 833b4f6..750dccd 100644 --- a/tests/test_all.nim +++ b/tests/test_all.nim @@ -55,90 +55,6 @@ import barabadb/protocol/scram import barabadb/protocol/ratelimit 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": test "Parse CREATE USER": let ast = parse("CREATE USER admin WITH PASSWORD 'secret' SUPERUSER")