╭ changed ────────╮ │src/test/undo.zig│ ╰─────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────╮ │ 95 var session = try ui.Session.init(&arena, &admin, .{ .user_id = user }); │ │ 96 session.io = io; │ │ 97 session.users_dir = users_dir; │ │ 98 - const files = ui.RoutablePage.repoFilesRoute("alice/demo", null, "", "", 0).?;│ │ 98 + const files = ui.RoutablePage.repoFilesRoute("alice:demo", null, "", "", 0).?;│ │ 99 session.data.current_page = files; │ │100 const page = try ui.Repo.init(&arena, &session, files); │ │101 try std.testing.expectEqual(allowed, page.undo != null); │ ╰───────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │105 try root.build(allocator, constraint, root.getFocus()); │ │106 const html = try @import("../web.zig").generateHtml(allocator, &root, &session); │ │107 defer allocator.free(html); │ │108 - try std.testing.expectEqual(allowed, std.mem.indexOf(u8, html, "/repo/alice/demo/undo") != null);│ │109 - const route = ui.RoutablePage.repoUndoRoute("alice/demo", null).?; │ │108 + try std.testing.expectEqual(allowed, std.mem.indexOf(u8, html, "/alice:demo/undo") != null); │ │109 + const route = ui.RoutablePage.repoUndoRoute("alice:demo", null).?; │ │110 if (allowed) { │ │111 _ = try ui.Repo.init(&arena, &session, route); │ │112 } else { │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │113 try std.testing.expectError(error.NotFound, ui.Repo.init(&arena, &session, route)); │ │114 } │ │115 if (user == null or !std.mem.eql(u8, user.?, &owner)) { │ │116 - try std.testing.expectError(error.Forbidden, Undo.perform(allocator, &session, ui.RoutablePage.repoUndoRoute("alice/demo", 2).?.repo_undo));│ │116 + try std.testing.expectError(error.Forbidden, Undo.perform(allocator, &session, ui.RoutablePage.repoUndoRoute("alice:demo", 2).?.repo_undo));│ │117 } │ │118 } │ │119 var session = try ui.Session.init(&arena, &admin, .{ .user_id = &owner }); │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │120 session.io = io; │ │121 session.users_dir = users_dir; │ │122 - try Undo.perform(allocator, &session, ui.RoutablePage.repoUndoRoute("alice/demo", 2).?.repo_undo);│ │122 + try Undo.perform(allocator, &session, ui.RoutablePage.repoUndoRoute("alice:demo", 2).?.repo_undo);│ │123 try std.testing.expectEqual(null, session.next_page.?.repo_undo.index); │ │124 { │ │125 var repo = try xit.repo.Repo(.xit, .{}).open(io, allocator, .{ .path = path }); │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │126 defer repo.deinit(io, allocator); │ │127 try expectConfig(&repo, "first"); │ │128 - const data = try Undo.init(.{}, &arena, &repo, null, "alice/demo", null, .{ .location = .{ .repo = "" } });│ │128 + const data = try Undo.init(.{}, &arena, &repo, null, "alice:demo", null, .{ .location = .{ .repo = "" } });│ │129 try std.testing.expectEqualStrings("undo", data.items[0].action); │ │130 } │ │131 // keep the old session/page moment, but transfer ownership to the writer. │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │132 repo_event.user_id = &writer; │ │133 try evt.consume(.{ .server = .{ .users_dir = users_dir } }, .user, .xit, evt.user_repo_opts, io, allocator, &user_repo, evt.events_ref, &.{.{ .id = std.fmt.bytesToHex(repo_id, .lower), .author = author, .event = .{ .repo = repo_event } }});│ │134 session.next_page = null; │ │135 - Undo.handleRequest(allocator, &session, ui.RoutablePage.repoUndoRoute("alice/demo", 1).?.repo_undo); │ │135 + Undo.handleRequest(allocator, &session, ui.RoutablePage.repoUndoRoute("alice:demo", 1).?.repo_undo); │ │136 try std.testing.expectEqualStrings("Forbidden", session.data.undo_failure.?); │ │137 try std.testing.expectEqual(null, session.next_page); │ │138 │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │143 var anonymous = try ui.Session.init(&arena, &admin, .{}); │ │144 anonymous.io = io; │ │145 anonymous.users_dir = users_dir; │ │146 - try std.testing.expectError(error.NotFound, ui.Repo.init(&arena, &anonymous, ui.RoutablePage.repoUndoRoute("alice/demo", null).?));│ │146 + try std.testing.expectError(error.NotFound, ui.Repo.init(&arena, &anonymous, ui.RoutablePage.repoUndoRoute("alice:demo", null).?));│ │147 } │ │148 │ │149 test "local git has no undo and local xit can undo and refresh" { │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯