mirror of
https://seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git
synced 2026-11-01 01:30:46 +08:00
We don’t replace the path when we navigate internally. This means we keep the hash part of the URL even if it is not part of the route and we can remove the workaround for that. This also means that we keep the original URL if the parsed route would result in a different URL. This change is visible through a slight adjustments in the tests. Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
112 lines
3.5 KiB
TypeScript
112 lines
3.5 KiB
TypeScript
import {
|
|
aliceMainHead,
|
|
aliceRemote,
|
|
appConfigWithFixture,
|
|
expect,
|
|
sourceBrowsingUrl,
|
|
test,
|
|
} from "@tests/support/fixtures.js";
|
|
import {
|
|
expectBackAndForwardNavigationWorks,
|
|
expectUrlPersistsReload,
|
|
} from "@tests/support/router.js";
|
|
|
|
test("navigate between landing and project page", async ({ page }) => {
|
|
await page.addInitScript(appConfigWithFixture);
|
|
|
|
await page.goto("/#/");
|
|
await expect(page).toHaveURL("/#/");
|
|
|
|
await page.locator("text=source-browsing").click();
|
|
await expect(page).toHaveURL(`/#${sourceBrowsingUrl}`);
|
|
|
|
await expectBackAndForwardNavigationWorks("/#/", page);
|
|
await expectUrlPersistsReload(page);
|
|
});
|
|
|
|
test("navigation between seed and project pages", async ({ page }) => {
|
|
await page.goto("/#/seeds/radicle.local");
|
|
|
|
const project = page.locator(".project", { hasText: "source-browsing" });
|
|
await project.click();
|
|
await expect(page).toHaveURL(`/#${sourceBrowsingUrl}`);
|
|
|
|
await expectBackAndForwardNavigationWorks("/#/seeds/radicle.local", page);
|
|
await expectUrlPersistsReload(page);
|
|
|
|
await page.locator('role=link[name="radicle.local"]').click();
|
|
await expect(page).toHaveURL("/#/seeds/127.0.0.1");
|
|
});
|
|
|
|
test.describe("project page navigation", () => {
|
|
test("navigation between commit history and single commit", async ({
|
|
page,
|
|
}) => {
|
|
const projectHistoryURL = `/#${sourceBrowsingUrl}/history/${aliceMainHead}`;
|
|
await page.goto(projectHistoryURL);
|
|
|
|
await page.locator("text=Add README.md").click();
|
|
await expect(page).toHaveURL(
|
|
`/#${sourceBrowsingUrl}/commits/${aliceMainHead}`,
|
|
);
|
|
|
|
await expectBackAndForwardNavigationWorks(projectHistoryURL, page);
|
|
await expectUrlPersistsReload(page);
|
|
});
|
|
|
|
test("navigate between tree and commit history", async ({ page }) => {
|
|
const projectTreeURL = `/#${sourceBrowsingUrl}`;
|
|
|
|
await page.goto(projectTreeURL);
|
|
await expect(page).toHaveURL(projectTreeURL);
|
|
|
|
await page.locator('role=link[name="6 commits"]').click();
|
|
await expect(page).toHaveURL(`/#${sourceBrowsingUrl}/history`);
|
|
|
|
await expectBackAndForwardNavigationWorks(projectTreeURL, page);
|
|
await expectUrlPersistsReload(page);
|
|
});
|
|
|
|
test("navigate project paths", async ({ page }) => {
|
|
const projectTreeURL = `/#${sourceBrowsingUrl}`;
|
|
|
|
await page.goto(projectTreeURL);
|
|
await expect(page).toHaveURL(projectTreeURL);
|
|
|
|
await page.locator("text=.hidden").click();
|
|
await expect(page).toHaveURL(`${projectTreeURL}/tree/main/.hidden`);
|
|
|
|
await page.locator("text=bin/").click();
|
|
await page.locator("text=true").click();
|
|
await expect(page).toHaveURL(`${projectTreeURL}/tree/main/bin/true`);
|
|
|
|
await expectBackAndForwardNavigationWorks(
|
|
`${projectTreeURL}/tree/main/.hidden`,
|
|
page,
|
|
);
|
|
await expectUrlPersistsReload(page);
|
|
});
|
|
|
|
test("navigate project paths with a selected peer", async ({ page }) => {
|
|
const projectTreeURL = `/#${sourceBrowsingUrl}/remotes/${aliceRemote.substring(
|
|
8,
|
|
)}`;
|
|
|
|
await page.goto(projectTreeURL);
|
|
await expect(page).toHaveURL(projectTreeURL);
|
|
|
|
await page.locator("text=.hidden").click();
|
|
await expect(page).toHaveURL(`${projectTreeURL}/tree/main/.hidden`);
|
|
|
|
await page.locator("text=bin/").click();
|
|
await page.locator("text=true").click();
|
|
await expect(page).toHaveURL(`${projectTreeURL}/tree/main/bin/true`);
|
|
|
|
await expectBackAndForwardNavigationWorks(
|
|
`${projectTreeURL}/tree/main/.hidden`,
|
|
page,
|
|
);
|
|
await expectUrlPersistsReload(page);
|
|
});
|
|
});
|