diff --git a/client/src/features/projectsV2/list/ProjectV2ListDisplay.tsx b/client/src/features/projectsV2/list/ProjectV2ListDisplay.tsx
index 131ce82c3..aa7a4d58b 100644
--- a/client/src/features/projectsV2/list/ProjectV2ListDisplay.tsx
+++ b/client/src/features/projectsV2/list/ProjectV2ListDisplay.tsx
@@ -30,6 +30,7 @@ import PermissionsGuard from "../../permissionsV2/PermissionsGuard";
import { useGetUserQuery } from "../../usersV2/api/users.api";
import { NamespaceKind } from "../api/namespace.api";
import { useGetProjectsQuery } from "../api/projectV2.enhanced-api";
+import { PROJECT_CREATION_HASH } from "../new/createProjectV2.constants";
import ProjectShortHandDisplay from "../show/ProjectShortHandDisplay";
const DEFAULT_PER_PAGE = 5;
@@ -221,7 +222,10 @@ function AddButtonForGroupNamespace({ namespace }: { namespace: string }) {
"ms-auto",
"my-auto"
)}
- to="/v2/projects/new"
+ to={{
+ pathname: "/v2",
+ hash: PROJECT_CREATION_HASH,
+ }}
>
@@ -245,7 +249,10 @@ function AddButtonForUserNamespace({ namespace }: { namespace: string }) {
"ms-auto",
"my-auto"
)}
- to="/v2/projects/new"
+ to={{
+ pathname: "/v2",
+ hash: PROJECT_CREATION_HASH,
+ }}
>
diff --git a/client/src/features/projectsV2/new/ProjectV2New.tsx b/client/src/features/projectsV2/new/ProjectV2New.tsx
index 3b487ebcc..761846072 100644
--- a/client/src/features/projectsV2/new/ProjectV2New.tsx
+++ b/client/src/features/projectsV2/new/ProjectV2New.tsx
@@ -170,7 +170,7 @@ function ProjectV2CreationDetails() {
});
}, [setValue, currentName]);
- const url = `renkulab.io/v2/projects/${currentNamespace ?? ""}/`;
+ const url = `renkulab.io/v2/p/${currentNamespace ?? ""}/`;
return (
<>
diff --git a/client/src/features/rootV2/RootV2.tsx b/client/src/features/rootV2/RootV2.tsx
index 33e87397d..c00d9e312 100644
--- a/client/src/features/rootV2/RootV2.tsx
+++ b/client/src/features/rootV2/RootV2.tsx
@@ -18,19 +18,11 @@
import cx from "classnames";
import { useEffect, useState } from "react";
-import {
- Navigate,
- Route,
- Routes,
- useNavigate,
-} from "react-router-dom-v5-compat";
+import { Route, Routes, useNavigate } from "react-router-dom-v5-compat";
import ContainerWrap from "../../components/container/ContainerWrap";
import LazyNotFound from "../../not-found/LazyNotFound";
-import {
- ABSOLUTE_ROUTES,
- RELATIVE_ROUTES,
-} from "../../routing/routes.constants";
+import { RELATIVE_ROUTES } from "../../routing/routes.constants";
import useAppDispatch from "../../utils/customHooks/useAppDispatch.hook";
import useAppSelector from "../../utils/customHooks/useAppSelector.hook";
import { setFlag } from "../../utils/feature-flags/featureFlags.slice";
@@ -40,13 +32,11 @@ import LazyHelpV2 from "../dashboardV2/LazyHelpV2";
import LazyGroupContainer from "../groupsV2/LazyGroupContainer";
import LazyGroupV2Overview from "../groupsV2/LazyGroupV2Overview";
import LazyGroupV2Settings from "../groupsV2/LazyGroupV2Settings";
-import { GROUP_CREATION_HASH } from "../groupsV2/new/createGroup.constants";
import GroupNew from "../groupsV2/new/GroupNew";
import LazyProjectPageV2Show from "../ProjectPageV2/LazyProjectPageV2Show";
import LazyProjectPageOverview from "../ProjectPageV2/ProjectPageContent/LazyProjectPageOverview";
import LazyProjectPageSettings from "../ProjectPageV2/ProjectPageContent/LazyProjectPageSettings";
import LazyProjectV2ShowByProjectId from "../projectsV2/LazyProjectV2ShowByProjectId";
-import { PROJECT_CREATION_HASH } from "../projectsV2/new/createProjectV2.constants";
import ProjectV2New from "../projectsV2/new/ProjectV2New";
import LazySearchV2 from "../searchV2/LazySearchV2";
import LazySecretsV2 from "../secretsV2/LazySecretsV2";
@@ -191,18 +181,6 @@ function HelpV2Routes() {
function ProjectsV2Routes() {
return (
-
- }
- />
}>
} />
diff --git a/client/src/landing/NavBar.jsx b/client/src/landing/NavBar.jsx
index 5f357ef0e..ecec3d70e 100644
--- a/client/src/landing/NavBar.jsx
+++ b/client/src/landing/NavBar.jsx
@@ -201,7 +201,7 @@ function FooterNavbarInner({ location }) {
return (
-
+
{footer}
);
diff --git a/client/src/routing/routes.constants.ts b/client/src/routing/routes.constants.ts
index 2071ec22a..7c61cc5d8 100644
--- a/client/src/routing/routes.constants.ts
+++ b/client/src/routing/routes.constants.ts
@@ -31,17 +31,16 @@ export const ABSOLUTE_ROUTES = {
},
},
projects: {
- new: "/v2/projects/new",
show: {
- root: "/v2/projects/:namespace/:slug",
- settings: "/v2/projects/:namespace/:slug/settings",
+ root: "/v2/p/:namespace/:slug",
+ settings: "/v2/p/:namespace/:slug/settings",
sessions: {
- root: "/v2/projects/:namespace/:slug/sessions",
- show: "/v2/projects/:namespace/:slug/sessions/show/:session",
- start: "/v2/projects/:namespace/:slug/sessions/:launcherId/start",
+ root: "/v2/p/:namespace/:slug/sessions",
+ show: "/v2/p/:namespace/:slug/sessions/show/:session",
+ start: "/v2/p/:namespace/:slug/sessions/:launcherId/start",
},
},
- showById: "/v2/projects/:id",
+ showById: "/v2/p/:id",
},
help: {
root: "/v2/help",
@@ -102,7 +101,7 @@ export const RELATIVE_ROUTES = {
},
},
projects: {
- root: "projects/*",
+ root: "p/*",
new: "new",
show: {
root: ":namespace/:slug/*",
diff --git a/tests/cypress/e2e/dashboardV2.spec.ts b/tests/cypress/e2e/dashboardV2.spec.ts
index 08cc00b85..078330007 100644
--- a/tests/cypress/e2e/dashboardV2.spec.ts
+++ b/tests/cypress/e2e/dashboardV2.spec.ts
@@ -54,7 +54,7 @@ describe("View v2 landing page", () => {
.click();
cy.location("pathname").should(
"contain",
- "/v2/projects/user1-uuid/test-2-v2-project/sessions/show/renku-2-86688c93091df68dffdc594bfd022ce3"
+ "/v2/p/user1-uuid/test-2-v2-project/sessions/show/renku-2-86688c93091df68dffdc594bfd022ce3"
);
});
@@ -64,7 +64,7 @@ describe("View v2 landing page", () => {
cy.getDataCy("dashboard-project-list").children().first().click();
cy.location("pathname").should(
"contain",
- "/v2/projects/user1-uuid/test-0-v2-project"
+ "/v2/p/user1-uuid/test-0-v2-project"
);
});
diff --git a/tests/cypress/e2e/projectV2.spec.ts b/tests/cypress/e2e/projectV2.spec.ts
index e23c4db68..ef6c44677 100644
--- a/tests/cypress/e2e/projectV2.spec.ts
+++ b/tests/cypress/e2e/projectV2.spec.ts
@@ -32,7 +32,7 @@ describe("Add new v2 project", () => {
})
.listNamespaceV2()
.readProjectV2();
- cy.visit("/v2/projects/new");
+ cy.visit("/v2#create-project");
});
it("create a new project", () => {
@@ -48,7 +48,7 @@ describe("Add new v2 project", () => {
cy.contains("button", "Create").click();
cy.wait("@createProjectV2");
- cy.location("pathname").should("eq", `/v2/projects/user1-uuid/${slug}`);
+ cy.location("pathname").should("eq", `/v2/p/user1-uuid/${slug}`);
});
it("prevents invalid input", () => {
@@ -74,14 +74,14 @@ describe("Add new v2 project", () => {
cy.contains("button", "Create").click();
cy.wait("@createProjectV2");
- cy.location("pathname").should("eq", `/v2/projects/user1-uuid/${slug}`);
+ cy.location("pathname").should("eq", `/v2/p/user1-uuid/${slug}`);
});
});
describe("Add new v2 project -- not logged in", () => {
beforeEach(() => {
fixtures.config().versions().userNone();
- cy.visit("/v2/projects/new");
+ cy.visit("/v2#create-project");
});
it("create a new project", () => {
@@ -98,13 +98,13 @@ describe("Navigate to project", () => {
});
it("shows projects by namespace/slug", () => {
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.contains("test 2 v2-project").should("be.visible");
});
it("shows projects by project id", () => {
fixtures.readProjectV2ById();
- cy.visit("/v2/projects/THEPROJECTULID26CHARACTERS");
+ cy.visit("/v2/p/THEPROJECTULID26CHARACTERS");
cy.wait("@readProjectV2ById");
cy.contains("test 2 v2-project").should("be.visible");
cy.location("pathname").should("contain", "/user1-uuid/test-2-v2-project");
@@ -112,7 +112,7 @@ describe("Navigate to project", () => {
it("shows project members", () => {
fixtures.listProjectV2Members().readProjectV2();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.contains("user 1").should("be.visible");
cy.contains("user 3").should("be.visible");
@@ -120,7 +120,7 @@ describe("Navigate to project", () => {
it("show project information", () => {
fixtures.readProjectV2();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
// check project data
cy.getDataCy("project-name").should("contain.text", "test 2 v2-project");
@@ -138,7 +138,7 @@ describe("Navigate to project", () => {
fixture: "projectV2/list-projectV2-members-many.json",
})
.readProjectV2();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.contains("User One").should("be.visible");
cy.contains("User Two").should("be.visible");
@@ -265,7 +265,7 @@ describe("Edit v2 project", () => {
it("remove project members", () => {
const projectMemberToRemove = "user3-uuid";
fixtures.listProjectV2Members().readProjectV2();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project/settings#members");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project/settings#members");
cy.contains("Project Members").should("be.visible");
cy.wait("@readProjectV2");
cy.contains("@user3").should("be.visible");
@@ -286,7 +286,7 @@ describe("Edit v2 project", () => {
.listProjectV2Members()
.searchV2ListProjects({ numberOfProjects: 0, numberOfUsers: 5 })
.readProjectV2();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project/settings#members");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project/settings#members");
cy.contains("Project Members").should("be.visible");
cy.wait("@readProjectV2");
cy.contains("user 1").should("be.visible");
@@ -312,7 +312,7 @@ describe("Edit v2 project", () => {
.listProjectV2Members()
.searchV2ListProjects({ numberOfProjects: 0, numberOfUsers: 5 })
.readProjectV2();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project/settings#members");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project/settings#members");
cy.contains("Project Members").should("be.visible");
cy.wait("@readProjectV2");
cy.contains("user1").should("be.visible");
@@ -329,7 +329,7 @@ describe("Edit v2 project", () => {
.listProjectV2Members()
.readProjectV2()
.patchProjectV2Member({ memberId: projectMemberToEdit });
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project/settings#members");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project/settings#members");
cy.contains("Project Members").should("be.visible");
cy.wait("@readProjectV2");
cy.contains("@user3").should("be.visible");
@@ -354,7 +354,7 @@ describe("Edit v2 project", () => {
.listProjectV2Members()
.readProjectV2()
.patchProjectV2Member({ memberId: projectMemberToEdit });
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project/settings#members");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project/settings#members");
cy.contains("Project Members").should("be.visible");
cy.wait("@readProjectV2");
cy.contains("user 1").should("be.visible");
@@ -369,7 +369,7 @@ describe("Edit v2 project", () => {
})
.readProjectV2()
.patchProjectV2Member({ memberId: projectMemberToEdit });
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project/settings#members");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project/settings#members");
cy.contains("Project Members").should("be.visible");
cy.wait("@readProjectV2");
cy.getDataCy("project-member-edit-0").should("be.enabled");
@@ -392,7 +392,7 @@ describe("Edit v2 project", () => {
it("deletes project", () => {
fixtures.readProjectV2().deleteProjectV2();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project/settings");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project/settings");
cy.wait("@readProjectV2");
cy.contains("test 2 v2-project").should("be.visible");
cy.get("button")
@@ -439,7 +439,7 @@ describe("Editor cannot maintain members", () => {
.listProjectV2Members()
.listProjectDataConnectors()
.getDataConnector();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
});
@@ -490,7 +490,7 @@ describe("Viewer cannot edit project", () => {
fixture: "projectV2/projectV2-permissions-viewer.json",
})
.listProjectV2Members();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
});
@@ -528,7 +528,7 @@ describe("Project templates and copies", () => {
it("copy a regular project with edit access", () => {
fixtures.getProjectV2Permissions().listNamespaceV2().copyProjectV2();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.getDataCy("project-info-card")
@@ -552,12 +552,12 @@ describe("Project templates and copies", () => {
cy.wait("@copyProjectV2");
cy.contains("Go to new project").should("be.visible").click();
cy.wait("@readProjectCopy");
- cy.location("pathname").should("eq", "/v2/projects/e2e/copy-project-name");
+ cy.location("pathname").should("eq", "/v2/p/e2e/copy-project-name");
});
it("copy a regular project without edit access", () => {
fixtures.listNamespaceV2().copyProjectV2();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.getDataCy("project-info-card")
@@ -578,7 +578,7 @@ describe("Project templates and copies", () => {
cy.wait("@copyProjectV2");
cy.contains("Go to new project").should("be.visible").click();
cy.wait("@readProjectCopy");
- cy.location("pathname").should("eq", "/v2/projects/e2e/copy-project-name");
+ cy.location("pathname").should("eq", "/v2/p/e2e/copy-project-name");
});
it("copy a template project", () => {
@@ -587,7 +587,7 @@ describe("Project templates and copies", () => {
.listNamespaceV2()
.copyProjectV2()
.listProjectV2Copies({ count: 0, writeable: true });
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.getDataCy("copy-project-button").click();
cy.contains("Make a copy of user1-uuid/test-2-v2-project").should(
@@ -604,7 +604,7 @@ describe("Project templates and copies", () => {
cy.wait("@copyProjectV2");
cy.contains("Go to new project").should("be.visible").click();
cy.wait("@readProjectCopy");
- cy.location("pathname").should("eq", "/v2/projects/e2e/copy-project-name");
+ cy.location("pathname").should("eq", "/v2/p/e2e/copy-project-name");
});
it("navigate to a template project copy", () => {
@@ -616,7 +616,7 @@ describe("Project templates and copies", () => {
.listNamespaceV2()
.copyProjectV2()
.listProjectV2Copies({ count: 1, writeable: true });
- cy.visit("/v2/projects/user1-uuid/test-2-v2-template");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-template");
cy.wait("@readProjectV2");
cy.wait("@listProjectV2Copies");
cy.getDataCy("copy-project-button").should("not.exist");
@@ -629,10 +629,7 @@ describe("Project templates and copies", () => {
});
cy.contains("Go to my copy").should("be.visible").click();
cy.wait("@readProjectCopy");
- cy.location("pathname").should(
- "eq",
- "/v2/projects/user1-uuid/test-2-v2-project"
- );
+ cy.location("pathname").should("eq", "/v2/p/user1-uuid/test-2-v2-project");
});
it("list template project copies", () => {
@@ -644,7 +641,7 @@ describe("Project templates and copies", () => {
.listNamespaceV2()
.listProjectV2Copies({ writeable: true })
.copyProjectV2();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-template");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-template");
cy.wait("@readProjectV2");
cy.wait("@listProjectV2Copies");
cy.getDataCy("copy-project-button").should("not.exist");
@@ -659,7 +656,7 @@ describe("Project templates and copies", () => {
.listNamespaceV2()
.listProjectV2Copies({ count: 0, writeable: true })
.copyProjectV2({ dataConnectorError: true });
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.getDataCy("copy-project-button").click();
cy.contains("Make a copy of user1-uuid/test-2-v2-project").should(
@@ -691,7 +688,7 @@ describe("Project templates and copies", () => {
.listNamespaceV2()
.listProjectV2Copies({ count: 0, writeable: true })
.copyProjectV2({ dataConnectorError: true, name: "copyProjectV2Fail" });
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.getDataCy("copy-project-button").click();
cy.contains("Make a copy of user1-uuid/test-2-v2-project").should(
@@ -712,7 +709,7 @@ describe("Project templates and copies", () => {
cy.wait("@copyProjectV2");
cy.contains("Go to new project").should("be.visible").click();
cy.wait("@readProjectCopy");
- cy.location("pathname").should("eq", "/v2/projects/e2e/copy-of-test2");
+ cy.location("pathname").should("eq", "/v2/p/e2e/copy-of-test2");
});
it("show a template project as editor", () => {
@@ -721,7 +718,7 @@ describe("Project templates and copies", () => {
.getProjectV2Permissions()
.listNamespaceV2()
.listProjectV2Copies({ count: 15 });
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@getProjectV2Permissions");
cy.wait("@listProjectV2Copies");
@@ -747,7 +744,7 @@ describe("Project templates and copies", () => {
},
})
.readUserV2Namespace();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@readProjectV2ById");
cy.contains("Copied from:").should("be.visible");
@@ -764,7 +761,7 @@ describe("Project templates and copies", () => {
.listNamespaceV2()
.copyProjectV2()
.updateProjectV2();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.get("a[title='Settings']").should("be.visible").click();
@@ -790,7 +787,7 @@ describe("Anonymous project copy experience", () => {
it("copy as an anonymous user", () => {
fixtures.readProjectV2({ overrides: { is_template: true } });
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.contains("To make a copy, you must first log in.").should("be.visible");
});
diff --git a/tests/cypress/e2e/projectV2DataConnectorCredentials.spec.ts b/tests/cypress/e2e/projectV2DataConnectorCredentials.spec.ts
index e15884682..3b4040d3c 100644
--- a/tests/cypress/e2e/projectV2DataConnectorCredentials.spec.ts
+++ b/tests/cypress/e2e/projectV2DataConnectorCredentials.spec.ts
@@ -57,7 +57,7 @@ describe("Set up data connectors with credentials", () => {
// No call to postCloudStorageSecrets is expected
shouldNotBeCalled: true,
});
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@listProjectDataConnectors");
@@ -127,7 +127,7 @@ describe("Set up data connectors with credentials", () => {
.dataConnectorSecrets({
fixture: "dataConnector/data-connector-secrets.json",
});
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@listProjectDataConnectors");
diff --git a/tests/cypress/e2e/projectV2Session.spec.ts b/tests/cypress/e2e/projectV2Session.spec.ts
index 39fdd9a24..00c9ab6b1 100644
--- a/tests/cypress/e2e/projectV2Session.spec.ts
+++ b/tests/cypress/e2e/projectV2Session.spec.ts
@@ -52,7 +52,7 @@ describe("launch sessions with data connectors", () => {
.sessionSecrets({
fixture: "projectV2SessionSecrets/empty_list.json",
});
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
});
@@ -61,7 +61,7 @@ describe("launch sessions with data connectors", () => {
fixture: "dataConnector/data-connector-public.json",
});
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@sessionServersEmptyV2");
cy.wait("@sessionLaunchers");
@@ -109,10 +109,10 @@ describe("launch sessions with data connectors", () => {
cy.getDataCy("start-session-button").click();
});
cy.wait("@getResourceClass");
- cy.url().should("match", /\/projects\/.*\/sessions\/.*\/start$/);
+ cy.url().should("match", /\/p\/.*\/sessions\/.*\/start$/);
cy.wait("@getSessionImage");
cy.wait("@createSession");
- cy.url().should("match", /\/projects\/.*\/sessions\/show\/.*/);
+ cy.url().should("match", /\/p\/.*\/sessions\/show\/.*/);
});
it("launch session with data connector requiring credentials", () => {
@@ -124,7 +124,7 @@ describe("launch sessions with data connectors", () => {
fixture: "dataConnector/data-connector-secrets-empty.json",
});
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@sessionServersEmptyV2");
cy.wait("@sessionLaunchers");
@@ -177,7 +177,7 @@ describe("launch sessions with data connectors", () => {
cy.getDataCy("start-session-button").click();
});
cy.wait("@getResourceClass");
- cy.url().should("match", /\/projects\/.*\/sessions\/.*\/start$/);
+ cy.url().should("match", /\/p\/.*\/sessions\/.*\/start$/);
cy.getDataCy("session-data-connector-credentials-modal")
.should("be.visible")
.contains("Please provide")
@@ -203,7 +203,7 @@ describe("launch sessions with data connectors", () => {
.click();
cy.wait("@testCloudStorage");
cy.wait("@createSession");
- cy.url().should("match", /\/projects\/.*\/sessions\/show\/.*/);
+ cy.url().should("match", /\/p\/.*\/sessions\/show\/.*/);
});
it("launch session with data connector, saving credentials", () => {
@@ -229,7 +229,7 @@ describe("launch sessions with data connectors", () => {
],
});
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@sessionServersEmptyV2");
cy.wait("@sessionLaunchers");
@@ -296,7 +296,7 @@ describe("launch sessions with data connectors", () => {
cy.wait("@getDataConnectorSecretsAfterSaving");
cy.wait("@createSession");
- cy.url().should("match", /\/projects\/.*\/sessions\/show\/.*/);
+ cy.url().should("match", /\/p\/.*\/sessions\/show\/.*/);
});
it("launch session with data connector, saving credentials on skip", () => {
@@ -322,7 +322,7 @@ describe("launch sessions with data connectors", () => {
],
});
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@sessionServersEmptyV2");
cy.wait("@sessionLaunchers");
@@ -374,7 +374,7 @@ describe("launch sessions with data connectors", () => {
cy.wait("@patchDataConnectorSecrets");
cy.wait("@getDataConnectorSecretsAfterSaving");
cy.wait("@createSession");
- cy.url().should("match", /\/projects\/.*\/sessions\/show\/.*/);
+ cy.url().should("match", /\/p\/.*\/sessions\/show\/.*/);
});
it("launch session with saved credentials", () => {
@@ -385,7 +385,7 @@ describe("launch sessions with data connectors", () => {
.getDataConnector()
.dataConnectorSecrets();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@sessionServersEmptyV2");
cy.wait("@sessionLaunchers");
@@ -413,7 +413,7 @@ describe("launch sessions with data connectors", () => {
cy.wait("@getDataConnectorSecrets");
});
cy.wait("@createSession");
- cy.url().should("match", /\/projects\/.*\/sessions\/show\/.*/);
+ cy.url().should("match", /\/p\/.*\/sessions\/show\/.*/);
});
it("launch session with incomplete saved credentials", () => {
@@ -425,7 +425,7 @@ describe("launch sessions with data connectors", () => {
fixture: "dataConnector/data-connector-secrets-partial.json",
});
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@sessionServersEmptyV2");
cy.wait("@sessionLaunchers");
@@ -468,7 +468,7 @@ describe("launch sessions with data connectors", () => {
.click();
cy.wait("@testCloudStorage");
cy.wait("@createSession");
- cy.url().should("match", /\/projects\/.*\/sessions\/show\/.*/);
+ cy.url().should("match", /\/p\/.*\/sessions\/show\/.*/);
});
it.skip("launch session multiple data connectors requiring multiple credentials, saving all", () => {
@@ -514,7 +514,7 @@ describe("launch sessions with data connectors", () => {
],
});
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@sessionServersEmptyV2");
cy.wait("@sessionLaunchers");
@@ -574,7 +574,7 @@ describe("launch sessions with data connectors", () => {
cy.wait("@testCloudStorage");
cy.wait("@getResourceClass");
cy.wait("@createSession");
- cy.url().should("match", /\/projects\/.*\/sessions\/show\/.*/);
+ cy.url().should("match", /\/p\/.*\/sessions\/show\/.*/);
});
it.skip("launch session multiple data connectors requiring multiple credentials, skipping some", () => {
@@ -598,7 +598,7 @@ describe("launch sessions with data connectors", () => {
fixture: "dataConnector/data-connector-secrets-empty.json",
});
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@sessionServersEmptyV2");
cy.wait("@sessionLaunchers");
@@ -669,7 +669,7 @@ describe("launch sessions with data connectors", () => {
cy.wait("@testCloudStorage");
cy.wait("@getResourceClass");
cy.wait("@createSession");
- cy.url().should("match", /\/projects\/.*\/sessions\/show\/.*/);
+ cy.url().should("match", /\/p\/.*\/sessions\/show\/.*/);
});
it.skip("launch session with multiple data connectors requiring credentials, skipping all", () => {
@@ -693,7 +693,7 @@ describe("launch sessions with data connectors", () => {
fixture: "dataConnector/data-connector-secrets-empty.json",
});
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@sessionServersEmptyV2");
cy.wait("@sessionLaunchers");
@@ -758,7 +758,7 @@ describe("launch sessions with data connectors", () => {
cy.wait("@testCloudStorage");
cy.wait("@getResourceClass");
cy.wait("@createSession");
- cy.url().should("match", /\/projects\/.*\/sessions\/show\/.*/);
+ cy.url().should("match", /\/p\/.*\/sessions\/show\/.*/);
});
});
@@ -793,7 +793,7 @@ describe("launch sessions with secrets", () => {
.listProjectDataConnectors({
fixture: "dataConnector/empty-list.json",
});
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
});
@@ -806,7 +806,7 @@ describe("launch sessions with secrets", () => {
fixture: "projectV2SessionSecrets/empty_list.json",
});
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@sessionServersEmptyV2");
cy.wait("@sessionLaunchers");
@@ -835,15 +835,15 @@ describe("launch sessions with secrets", () => {
cy.getDataCy("start-session-button").click();
});
cy.wait("@getResourceClass");
- cy.url().should("match", /\/projects\/.*\/sessions\/.*\/start$/);
+ cy.url().should("match", /\/p\/.*\/sessions\/.*\/start$/);
cy.wait("@createSession");
- cy.url().should("match", /\/projects\/.*\/sessions\/show\/.*/);
+ cy.url().should("match", /\/p\/.*\/sessions\/show\/.*/);
});
it("launch session requiring secrets, skipping", () => {
fixtures.sessionSecretSlots().sessionSecrets();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@sessionServersEmptyV2");
cy.wait("@sessionLaunchers");
@@ -872,7 +872,7 @@ describe("launch sessions with secrets", () => {
cy.getDataCy("start-session-button").click();
});
cy.wait("@getResourceClass");
- cy.url().should("match", /\/projects\/.*\/sessions\/.*\/start$/);
+ cy.url().should("match", /\/p\/.*\/sessions\/.*\/start$/);
cy.getDataCy("session-secrets-modal").should("be.visible");
cy.getDataCy("session-secrets-modal")
@@ -885,13 +885,13 @@ describe("launch sessions with secrets", () => {
cy.getDataCy("session-secrets-modal").contains("button", "Skip").click();
cy.wait("@createSession");
- cy.url().should("match", /\/projects\/.*\/sessions\/show\/.*/);
+ cy.url().should("match", /\/p\/.*\/sessions\/show\/.*/);
});
it("launch session requiring secrets, saving new secret", () => {
fixtures.sessionSecretSlots().sessionSecrets();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@sessionServersEmptyV2");
cy.wait("@sessionLaunchers");
@@ -920,7 +920,7 @@ describe("launch sessions with secrets", () => {
cy.getDataCy("start-session-button").click();
});
cy.wait("@getResourceClass");
- cy.url().should("match", /\/projects\/.*\/sessions\/.*\/start$/);
+ cy.url().should("match", /\/p\/.*\/sessions\/.*\/start$/);
cy.getDataCy("session-secrets-modal").should("be.visible");
cy.getDataCy("session-secrets-modal")
@@ -958,6 +958,6 @@ describe("launch sessions with secrets", () => {
cy.wait("@patchSessionSecrets").wait("@updatedSessionSecrets");
cy.wait("@createSession");
- cy.url().should("match", /\/projects\/.*\/sessions\/show\/.*/);
+ cy.url().should("match", /\/p\/.*\/sessions\/show\/.*/);
});
});
diff --git a/tests/cypress/e2e/projectV2SessionSecrets.spec.ts b/tests/cypress/e2e/projectV2SessionSecrets.spec.ts
index 97543375e..6f73fe24b 100644
--- a/tests/cypress/e2e/projectV2SessionSecrets.spec.ts
+++ b/tests/cypress/e2e/projectV2SessionSecrets.spec.ts
@@ -29,7 +29,7 @@ describe("Project Session secret slots", () => {
});
it("Shows the session secrets section", () => {
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.contains("test 2 v2-project").should("be.visible");
cy.get("a[title='Settings']").should("be.visible").click();
@@ -41,7 +41,7 @@ describe("Project Session secret slots", () => {
it("Shows configured session secrets", () => {
fixtures.sessionSecretSlots().sessionSecrets();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.contains("test 2 v2-project").should("be.visible");
cy.get("a[title='Settings']").should("be.visible").click();
@@ -68,7 +68,7 @@ describe("Project Session secret slots", () => {
it("Can add a new session secret slot", () => {
fixtures.sessionSecretSlots().sessionSecrets();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.contains("test 2 v2-project").should("be.visible");
cy.get("a[title='Settings']").should("be.visible").click();
@@ -123,7 +123,7 @@ describe("Project Session secret slots", () => {
it("Can edit a session secret slot", () => {
fixtures.sessionSecretSlots().sessionSecrets();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.contains("test 2 v2-project").should("be.visible");
cy.get("a[title='Settings']").should("be.visible").click();
@@ -172,7 +172,7 @@ describe("Project Session secret slots", () => {
it("Can delete a session secret slot", () => {
fixtures.sessionSecretSlots().sessionSecrets();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.contains("test 2 v2-project").should("be.visible");
cy.get("a[title='Settings']").should("be.visible").click();
@@ -222,7 +222,7 @@ describe("Project Session secret slots", () => {
it("Can provide a new secret value", () => {
fixtures.sessionSecretSlots().sessionSecrets();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.contains("test 2 v2-project").should("be.visible");
cy.get("a[title='Settings']").should("be.visible").click();
@@ -279,7 +279,7 @@ describe("Project Session secret slots", () => {
it("Can provide an existing secret value", () => {
fixtures.sessionSecretSlots().sessionSecrets();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.contains("test 2 v2-project").should("be.visible");
cy.get("a[title='Settings']").should("be.visible").click();
@@ -342,7 +342,7 @@ describe("Project Session secret slots", () => {
it("Can clear the secret from a slot", () => {
fixtures.sessionSecretSlots().sessionSecrets();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.contains("test 2 v2-project").should("be.visible");
cy.get("a[title='Settings']").should("be.visible").click();
diff --git a/tests/cypress/e2e/projectV2setup.spec.ts b/tests/cypress/e2e/projectV2setup.spec.ts
index ec8bd6abf..0e03a1fcd 100644
--- a/tests/cypress/e2e/projectV2setup.spec.ts
+++ b/tests/cypress/e2e/projectV2setup.spec.ts
@@ -45,7 +45,7 @@ describe("Set up project components", () => {
.updateProjectV2({
fixture: "projectV2/update-projectV2-one-repository.json",
});
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
// add code repositories
fixtures.readProjectV2({
@@ -90,7 +90,7 @@ describe("Set up project components", () => {
.resourcePoolsTest()
.getResourceClass()
.environments();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@getSessionsV2");
cy.wait("@sessionLaunchers");
@@ -138,7 +138,7 @@ describe("Set up project components", () => {
cy.getDataCy("session-launcher-item").within(() => {
cy.getDataCy("start-session-button").click();
});
- cy.url().should("match", /\/projects\/.*\/sessions\/.*\/start$/);
+ cy.url().should("match", /\/p\/.*\/sessions\/.*\/start$/);
cy.go("back");
@@ -193,7 +193,7 @@ describe("Set up data connectors", () => {
.testCloudStorage({ success: false })
.postDataConnector({ namespace: "user1-uuid", visibility: "public" })
.postDataConnectorProjectLink({ dataConnectorId: "ULID-5" });
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@listProjectDataConnectors");
@@ -255,7 +255,7 @@ describe("Set up data connectors", () => {
.listProjectDataConnectors()
.getDataConnectorByNamespaceAndSlug()
.postDataConnectorProjectLink({ dataConnectorId: "ULID-1" });
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@listProjectDataConnectors");
@@ -273,7 +273,7 @@ describe("Set up data connectors", () => {
.readProjectV2({ fixture: "projectV2/read-projectV2-empty.json" })
.listProjectDataConnectors()
.getDataConnectorByNamespaceAndSlugNotFound();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@listProjectDataConnectors");
@@ -295,7 +295,7 @@ describe("Set up data connectors", () => {
.getDataConnector()
.deleteDataConnectorProjectLink();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@listProjectDataConnectors");
@@ -326,7 +326,7 @@ describe("Set up data connectors", () => {
fixture: "projectV2/projectV2-permissions-viewer.json",
})
.deleteDataConnectorProjectLinkNotAllowed();
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@listProjectDataConnectors");
@@ -344,7 +344,7 @@ describe("Set up data connectors", () => {
.testCloudStorage({ success: false })
.postDataConnector({ namespace: "user1-uuid", visibility: "public" })
.postDataConnectorProjectLink({ dataConnectorId: "ULID-5" });
- cy.visit("/v2/projects/user1-uuid/test-2-v2-project");
+ cy.visit("/v2/p/user1-uuid/test-2-v2-project");
cy.wait("@readProjectV2");
cy.wait("@listProjectDataConnectors");
@@ -416,6 +416,7 @@ describe("Set up data connectors", () => {
.getDataConnectorPermissions()
.patchDataConnector({ namespace: "user1-uuid" })
.patchDataConnectorSecrets({
+ content: [],
shouldNotBeCalled: true,
});