地圖 (Jido) is a lightweight Unix TUI file explorer designed for speed and simplicity.
at main 84 lines 2.6 kB view raw
1const std = @import("std"); 2const testing = std.testing; 3const TestEnv = @import("test_helpers.zig").TestEnv; 4const Directories = @import("directories.zig"); 5const environment = @import("environment.zig"); 6 7test "FileOps: create new directory" { 8 var env = try TestEnv.init(testing.allocator); 9 defer env.deinit(); 10 11 var dirs = try Directories.init(testing.allocator, env.tmp_path); 12 defer dirs.deinit(); 13 14 try dirs.dir.makeDir("testdir"); 15 16 var test_dir = dirs.dir.openDir("testdir", .{}) catch |err| { 17 std.debug.print("Failed to open created directory: {}\n", .{err}); 18 return err; 19 }; 20 test_dir.close(); 21 22 try dirs.populateEntries(""); 23 var found = false; 24 for (dirs.entries.all()) |entry| { 25 if (std.mem.eql(u8, entry.name, "testdir")) { 26 found = true; 27 try testing.expectEqual(std.fs.Dir.Entry.Kind.directory, entry.kind); 28 } 29 } 30 try testing.expect(found); 31} 32 33test "FileOps: create new file" { 34 var env = try TestEnv.init(testing.allocator); 35 defer env.deinit(); 36 37 var dirs = try Directories.init(testing.allocator, env.tmp_path); 38 defer dirs.deinit(); 39 40 const file = try dirs.dir.createFile("testfile.txt", .{}); 41 file.close(); 42 43 try testing.expect(environment.fileExists(dirs.dir, "testfile.txt")); 44 45 try dirs.populateEntries(""); 46 var found = false; 47 for (dirs.entries.all()) |entry| { 48 if (std.mem.eql(u8, entry.name, "testfile.txt")) { 49 found = true; 50 try testing.expectEqual(std.fs.Dir.Entry.Kind.file, entry.kind); 51 } 52 } 53 try testing.expect(found); 54} 55 56test "FileOps: rename file" { 57 var env = try TestEnv.init(testing.allocator); 58 defer env.deinit(); 59 60 try env.createFiles(&.{"oldname.txt"}); 61 62 var dirs = try Directories.init(testing.allocator, env.tmp_path); 63 defer dirs.deinit(); 64 65 try dirs.populateEntries(""); 66 67 try testing.expect(environment.fileExists(dirs.dir, "oldname.txt")); 68 try dirs.dir.rename("oldname.txt", "newname.txt"); 69 try testing.expect(!environment.fileExists(dirs.dir, "oldname.txt")); 70 try testing.expect(environment.fileExists(dirs.dir, "newname.txt")); 71 72 dirs.clearEntries(); 73 try dirs.populateEntries(""); 74 75 var found_old = false; 76 var found_new = false; 77 for (dirs.entries.all()) |entry| { 78 if (std.mem.eql(u8, entry.name, "oldname.txt")) found_old = true; 79 if (std.mem.eql(u8, entry.name, "newname.txt")) found_new = true; 80 } 81 82 try testing.expect(!found_old); 83 try testing.expect(found_new); 84}