1module cli23import os4import src.history5import src.snapshot6import src.storage78910fn test_restore_now_refuses_to_overwrite_unsaved_work() {11 dir := os.join_path(os.temp_dir(), 'koh3_cli_restore_now_${os.getpid()}')12 os.rmdir_all(dir) or {}13 os.mkdir_all(dir)!14 defer {15 os.rmdir_all(dir) or {}16 }17 store := storage.create(dir)!18 defer {19 store.close()20 }21 path := os.join_path(dir, 'a.txt')22 os.write_file(path, 'one\n')!23 first := history.commit_worktree(store, dir, snapshot.load(dir), history.SaveInput{24 message: 'one'25 })!26 os.write_file(path, 'two\n')!27 history.commit_worktree(store, dir, snapshot.load(dir), history.SaveInput{28 message: 'two'29 })!30 os.write_file(path, 'unsaved\n')!31 if _ := restore_now(store, first, 'load') {32 assert false, 'restore_now overwrote unsaved work'33 } else {34 assert err.msg() == unsaved_changes35 }36 assert os.read_file(path)! == 'unsaved\n'37}