test: add sdkForProject tests

This commit is contained in:
tglide
2023-03-09 17:34:53 +00:00
parent 5286b10cb1
commit 8ec063c42f
3 changed files with 56 additions and 4 deletions
+5
View File
@@ -0,0 +1,5 @@
export function getProjectId() {
const pathname = window.location.pathname;
const projectMatch = pathname.match(/\/project-(.*?)\//);
return projectMatch?.[1] || null;
}
+4 -4
View File
@@ -1,3 +1,4 @@
import { getProjectId } from '$lib/helpers/project';
import { Project } from '$lib/sdk/project';
import { VARS } from '$lib/system';
import {
@@ -48,10 +49,9 @@ export const sdk = {
users: new Users(clientConsole)
},
get forProject() {
const pathname = window.location.pathname;
const projectMatch = pathname.match(/project-([a-zA-Z0-9]+)/);
if (projectMatch && projectMatch[1] !== clientProject.config.project) {
clientProject.setProject(projectMatch[1]);
const projectId = getProjectId();
if (projectId && projectId !== clientProject.config.project) {
clientProject.setProject(projectId);
}
return sdkForProject;
+47
View File
@@ -0,0 +1,47 @@
import { getProjectId } from '$lib/helpers/project';
import { vi } from 'vitest';
test('getProjectId', () => {
const tests: Array<{
pathname: string;
expected: string | null;
}> = [
{
pathname: '/console/project-6374e9031588b25d1841/databases',
expected: '6374e9031588b25d1841'
},
{
pathname: '/console/project-/databases',
expected: null
},
{
pathname: '/console/project-project-project-abc/databases',
expected: 'project-project-abc'
},
{
pathname: '/console/project-abc/databases',
expected: 'abc'
},
{
pathname: '/console/project-abc/databases/project-123',
expected: 'abc'
},
{
pathname: '/console/project-abc/databases/project-123/project-456',
expected: 'abc'
},
{
pathname: '/console',
expected: null
}
];
for (const { pathname, expected } of tests) {
vi.stubGlobal('location', {
...window.location,
pathname
});
expect(getProjectId()).toBe(expected);
}
});