Something went wrong. Try again.
Plugin for managing terminal in neovim
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131local terminal_manager = require("term.utils.terminal")
local M = {}
function M.test_create_session() terminal_manager.clear_all() local session = terminal_manager.create("echo test") assert(session ~= nil, "Session should not be nil") assert(session.id ~= nil, "Session ID should not be nil") assert(session.cmd == "echo test", "Session cmd should match")end
function M.test_create_empty_command() terminal_manager.clear_all() local session = terminal_manager.create("") assert(session == nil, "Empty command should return nil")end
function M.test_create_nil_command() terminal_manager.clear_all() local session = terminal_manager.create(nil) assert(session == nil, "Nil command should return nil")end
function M.test_list_sessions() terminal_manager.clear_all() terminal_manager.create("cmd1") terminal_manager.create("cmd2") terminal_manager.create("cmd3") local sessions = terminal_manager.list() assert(#sessions == 3, "Should have 3 sessions")end
function M.test_list_empty() terminal_manager.clear_all() local sessions = terminal_manager.list() assert(#sessions == 0, "Should have 0 sessions")end
function M.test_get_active() terminal_manager.clear_all() local session = terminal_manager.create("test") local active = terminal_manager.get_active() assert(active ~= nil, "Active session should not be nil") assert(active.id == session.id, "Active session ID should match")end
function M.test_get_active_empty() terminal_manager.clear_all() local active = terminal_manager.get_active() assert(active == nil, "Active session should be nil when empty")end
function M.test_switch_session() terminal_manager.clear_all() local s1 = terminal_manager.create("cmd1") terminal_manager.create("cmd2") terminal_manager.switch(s1.id) local active = terminal_manager.get_active() assert(active.id == s1.id, "Active session should be s1")end
function M.test_switch_invalid() terminal_manager.clear_all() local result = terminal_manager.switch("invalid-id") assert(result == false, "Switch should return false for invalid ID")end
function M.test_close_session() terminal_manager.clear_all() local session = terminal_manager.create("echo test") terminal_manager.close(session.id) local sessions = terminal_manager.list() assert(#sessions == 0, "Session should be removed")end
function M.test_close_active_switches_to_other() terminal_manager.clear_all() local s1 = terminal_manager.create("cmd1") local s2 = terminal_manager.create("cmd2") terminal_manager.close(s2.id) local active = terminal_manager.get_active() assert(active.id == s1.id, "Active should switch to s1")end
function M.test_close_last_clears_active() terminal_manager.clear_all() local session = terminal_manager.create("cmd") terminal_manager.close(session.id) local active = terminal_manager.get_active() assert(active == nil, "Active should be nil")end
function M.test_close_invalid() terminal_manager.clear_all() local result = terminal_manager.close("invalid-id") assert(result == false, "Close should return false for invalid ID")end
function M.test_get_by_id() terminal_manager.clear_all() local created = terminal_manager.create("echo test") local session = terminal_manager.get_by_id(created.id) assert(session ~= nil, "Session should be found") assert(session.id == created.id, "Session ID should match")end
function M.test_get_by_id_invalid() terminal_manager.clear_all() local session = terminal_manager.get_by_id("invalid-id") assert(session == nil, "Invalid ID should return nil")end
function M.test_clear_all() terminal_manager.clear_all() terminal_manager.create("cmd1") terminal_manager.create("cmd2") terminal_manager.clear_all() local sessions = terminal_manager.list() assert(#sessions == 0, "All sessions should be cleared")end
function M.test_unique_ids() terminal_manager.clear_all() local s1 = terminal_manager.create("cmd1") local s2 = terminal_manager.create("cmd2") assert(s1.id ~= s2.id, "Session IDs should be unique")end
return M