libertaria-stack/core/l2_session/test_session.zig

49 lines
1.7 KiB
Zig

//! Tests for session establishment
const std = @import("std");
const testing = std.testing;
const Session = @import("session.zig").Session;
const State = @import("state.zig").State;
const SessionConfig = @import("config.zig").SessionConfig;
const Handshake = @import("handshake.zig").Handshake;
/// Scenario-001.1: Successful session establishment
test "Scenario-001.1: Session establishment creates valid session" do
// Validates: SPEC-018 2.1
const config = SessionConfig{};
const ctx = .{}; // Mock context
// In real implementation, this would perform PQxdh handshake
// For now, we test the structure
const session = Session.new("did:morpheus:test123", config);
try testing.expectEqualStrings("did:morpheus:test123", session.peer_did);
try testing.expectEqual(State.idle, session.state);
try testing.expect(session.created_at > 0);
end
/// Scenario-001.4: Invalid signature handling
test "Scenario-001.4: Invalid signature quarantines peer" do
// Validates: SPEC-018 2.1
// TODO: Implement with mock crypto
const config = SessionConfig{};
var session = Session.new("did:morpheus:badactor", config);
// Simulate failed authentication
session.state = State.failed;
// TODO: Verify quarantine is set
try testing.expectEqual(State.failed, session.state);
end
/// Test session configuration defaults
test "Default configuration is valid" do
const config = SessionConfig{};
try testing.expectEqual(@as(u64, 24), config.ttl.hrs);
try testing.expectEqual(@as(u64, 30), config.heartbeat_interval.secs);
try testing.expectEqual(@as(u8, 3), config.heartbeat_tolerance);
try testing.expectEqual(@as(u64, 5), config.handshake_timeout.secs);
end