46 lines
2.0 KiB
TypeScript
46 lines
2.0 KiB
TypeScript
import { test, expect } from '@playwright/test'
|
|
import { API_KEY_HEADER } from './helpers'
|
|
|
|
test.describe('Tenant Workspace Mapping', () => {
|
|
test('GET /api/workspaces returns tenant-scoped workspaces with active workspace', async ({ request }) => {
|
|
const res = await request.get('/api/workspaces', { headers: API_KEY_HEADER })
|
|
expect(res.status()).toBe(200)
|
|
const body = await res.json()
|
|
|
|
expect(typeof body.tenant_id).toBe('number')
|
|
expect(typeof body.active_workspace_id).toBe('number')
|
|
expect(Array.isArray(body.workspaces)).toBe(true)
|
|
expect(body.workspaces.length).toBeGreaterThan(0)
|
|
|
|
const active = body.workspaces.find((w: any) => w.id === body.active_workspace_id)
|
|
expect(active).toBeDefined()
|
|
expect(active.tenant_id).toBe(body.tenant_id)
|
|
|
|
for (const workspace of body.workspaces) {
|
|
expect(workspace.tenant_id).toBe(body.tenant_id)
|
|
}
|
|
})
|
|
|
|
test('default general project still loads under workspace hierarchy', async ({ request }) => {
|
|
const projectListRes = await request.get('/api/projects?includeArchived=1', { headers: API_KEY_HEADER })
|
|
expect(projectListRes.status()).toBe(200)
|
|
const projectListBody = await projectListRes.json()
|
|
const general = projectListBody.projects.find((p: any) => p.slug === 'general')
|
|
|
|
expect(general).toBeDefined()
|
|
expect(typeof general.workspace_id).toBe('number')
|
|
|
|
const getProjectRes = await request.get(`/api/projects/${general.id}`, { headers: API_KEY_HEADER })
|
|
expect(getProjectRes.status()).toBe(200)
|
|
const getProjectBody = await getProjectRes.json()
|
|
expect(getProjectBody.project.slug).toBe('general')
|
|
|
|
const workspacesRes = await request.get('/api/workspaces', { headers: API_KEY_HEADER })
|
|
const workspacesBody = await workspacesRes.json()
|
|
const parentWorkspace = workspacesBody.workspaces.find((w: any) => w.id === getProjectBody.project.workspace_id)
|
|
expect(parentWorkspace).toBeDefined()
|
|
expect(parentWorkspace.tenant_id).toBe(workspacesBody.tenant_id)
|
|
})
|
|
})
|
|
|