module cli import os import src.history import src.snapshot import src.storage // The history view's `l` key goes through restore_now, which a CLI test cannot // reach without a terminal, so it is checked here directly. fn test_restore_now_refuses_to_overwrite_unsaved_work() { dir := os.join_path(os.temp_dir(), 'koh3_cli_restore_now_${os.getpid()}') os.rmdir_all(dir) or {} os.mkdir_all(dir)! defer { os.rmdir_all(dir) or {} } store := storage.create(dir)! defer { store.close() } path := os.join_path(dir, 'a.txt') os.write_file(path, 'one\n')! first := history.commit_worktree(store, dir, snapshot.load(dir), history.SaveInput{ message: 'one' })! os.write_file(path, 'two\n')! history.commit_worktree(store, dir, snapshot.load(dir), history.SaveInput{ message: 'two' })! os.write_file(path, 'unsaved\n')! if _ := restore_now(store, first, 'load') { assert false, 'restore_now overwrote unsaved work' } else { assert err.msg() == unsaved_changes } assert os.read_file(path)! == 'unsaved\n' } fn test_a_peek_is_old_only_after_more_than_a_day() { now := i64(1_000_000) assert !peek_is_old(now, now) assert !peek_is_old(now - peek_age, now) assert peek_is_old(now - peek_age - 1, now) }