Radish alpha
r
rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5
Radicle web interface
Radicle
Git
Fix mutation of commit listing in place
Sebastian Martinez committed 1 year ago
commit 846daf0b168e35404c0fe9cdb713ec125f7dc090
parent 2b058a1
3 files changed +31 -2
modified src/views/repos/Cob/Revision.svelte
@@ -437,7 +437,7 @@
        {/if}
        {#if response?.commits}
          <div class="commits">
-
            {#each response.commits.reverse() as commit}
+
            {#each response.commits.toReversed() as commit}
              <div class="commit" style:position="relative">
                <div class="commit-dot" />
                <CobCommitTeaser {commit} {baseUrl} {repoId} />
modified tests/e2e/repo/patch.spec.ts
@@ -117,3 +117,32 @@ test("view file navigation from changes tab", async ({ page }) => {
    `${cobUrl}/tree/8c900d6cb38811e099efb3cbbdbfaba817bcf970/README.md`,
  );
});
+

+
test("commit listing ordering keeping stable on browser navigation", async ({
+
  page,
+
}) => {
+
  await page.goto(`${cobUrl}/patches`);
+
  await page
+
    .getByRole("link", { name: "Taking another stab at the README" })
+
    .click();
+
  await page
+
    .getByRole("heading", { name: "Taking another stab at the README" })
+
    .waitFor();
+

+
  async function expectCorrectCommitListing() {
+
    const commits = await page.locator(".commit").all();
+
    expect(commits).toHaveLength(2);
+
    await expect(
+
      commits[0].getByText("Rewrite subtitle to README"),
+
    ).toBeVisible();
+
    await expect(commits[1].getByText("Add more text")).toBeVisible();
+
  }
+

+
  await expectCorrectCommitListing();
+
  await page.getByRole("link", { name: "Rewrite subtitle to README" }).click();
+
  await page.goBack();
+
  await page
+
    .getByRole("heading", { name: "Taking another stab at the README" })
+
    .waitFor();
+
  await expectCorrectCommitListing();
+
});
modified tsconfig.json
@@ -4,7 +4,7 @@
  "exclude": ["node_modules/*", "radicle-httpd/*"],
  "compilerOptions": {
    "noEmit": true,
-
    "target": "es2021",
+
    "target": "es2023",
    "module": "es2022",
    "types": ["vite/client"],
    "sourceMap": true,