From 9074012b67e3f02e729f37d125f9aae70d3c433a Mon Sep 17 00:00:00 2001 From: Pranav C Date: Fri, 7 Oct 2022 12:04:30 +0530 Subject: [PATCH] refactor(api): update api path Signed-off-by: Pranav C --- packages/nocodb/src/lib/meta/api/utilApis.ts | 7 +- .../tests/unit/rest/tests/project.test.ts | 140 +++++++++--------- 2 files changed, 75 insertions(+), 72 deletions(-) diff --git a/packages/nocodb/src/lib/meta/api/utilApis.ts b/packages/nocodb/src/lib/meta/api/utilApis.ts index 800c938954..dcbf73a561 100644 --- a/packages/nocodb/src/lib/meta/api/utilApis.ts +++ b/packages/nocodb/src/lib/meta/api/utilApis.ts @@ -214,7 +214,7 @@ interface AllMeta { sharedBaseCount: number; } -export async function allMeta(_req: Request, res: Response) { +export async function getAggregatedMetaInfo(_req: Request, res: Response) { const result: AllMeta = { projectCount: 0, projects: [], @@ -354,5 +354,8 @@ export default (router) => { router.get('/api/v1/health', catchError(appHealth)); router.get('/api/v1/feedback_form', catchError(feedbackFormGet)); router.post('/api/v1/url_to_config', catchError(urlToDbConfig)); - router.get('/api/v1/all_meta', catchError(allMeta)); + router.get( + '/api/v1/aggregated-meta-info', + ncMetaAclMw(getAggregatedMetaInfo, 'getAggregatedMetaInfo') + ); }; diff --git a/packages/nocodb/tests/unit/rest/tests/project.test.ts b/packages/nocodb/tests/unit/rest/tests/project.test.ts index c36a842fb0..0881d328a6 100644 --- a/packages/nocodb/tests/unit/rest/tests/project.test.ts +++ b/packages/nocodb/tests/unit/rest/tests/project.test.ts @@ -9,22 +9,22 @@ import Project from '../../../../src/lib/models/Project' import { expect } from 'chai' function projectTest() { - let context; - let project; + let context + let project - beforeEach(async function () { - context = await init(); + beforeEach(async function() { + context = await init() - project = await createProject(context); - }); + project = await createProject(context) + }) it('Get project info', async () => { await request(context.app) .get(`/api/v1/db/meta/projects/${project.id}/info`) .set('xc-auth', context.token) .send({}) - .expect(200); - }); + .expect(200) + }) // todo: Test by creating models under project and check if the UCL is working it('UI ACL', async () => { @@ -32,8 +32,8 @@ function projectTest() { .get(`/api/v1/db/meta/projects/${project.id}/visibility-rules`) .set('xc-auth', context.token) .send({}) - .expect(200); - }); + .expect(200) + }) // todo: Test creating visibility set it('List projects', async () => { @@ -41,11 +41,11 @@ function projectTest() { .get('/api/v1/db/meta/projects/') .set('xc-auth', context.token) .send({}) - .expect(200); + .expect(200) - if (response.body.list.length !== 1) new Error('Should list only 1 project'); - if (!response.body.pageInfo) new Error('Should have pagination info'); - }); + if (response.body.list.length !== 1) new Error('Should list only 1 project') + if (!response.body.pageInfo) new Error('Should have pagination info') + }) it('Create project', async () => { const response = await request(context.app) @@ -54,11 +54,11 @@ function projectTest() { .send({ title: 'Title1', }) - .expect(200); + .expect(200) - const newProject = await Project.getByTitleOrId(response.body.id); - if (!newProject) return new Error('Project not created'); - }); + const newProject = await Project.getByTitleOrId(response.body.id) + if (!newProject) return new Error('Project not created') + }) it('Create projects with existing title', async () => { await request(context.app) @@ -67,8 +67,8 @@ function projectTest() { .send({ title: project.title, }) - .expect(400); - }); + .expect(400) + }) // todo: fix passport user role popluation bug // it('Delete project', async async () => { @@ -83,7 +83,7 @@ function projectTest() { // }) // .expect(200, async (err) => { // // console.log(res); - // + // // const deletedProject = await Project.getByTitleOrId( // toBeDeletedProject.id @@ -99,10 +99,10 @@ function projectTest() { .get(`/api/v1/db/meta/projects/${project.id}`) .set('xc-auth', context.token) .send() - .expect(200); + .expect(200) - if (response.body.id !== project.id) return new Error('Got the wrong project'); - }); + if (response.body.id !== project.id) return new Error('Got the wrong project') + }) it('Update projects', async () => { await request(context.app) @@ -111,18 +111,18 @@ function projectTest() { .send({ title: 'NewTitle', }) - .expect(200); + .expect(200) - const newProject = await Project.getByTitleOrId(project.id); - if (newProject.title !== 'NewTitle') { - return new Error('Project not updated'); - } - }); + const newProject = await Project.getByTitleOrId(project.id) + if (newProject.title !== 'NewTitle') { + return new Error('Project not updated') + } + }) - it('Update projects with existing title', async function () { + it('Update projects with existing title', async function() { const newProject = await createProject(context, { title: 'NewTitle1', - }); + }) await request(context.app) .patch(`/api/v1/db/meta/projects/${project.id}`) @@ -130,8 +130,8 @@ function projectTest() { .send({ title: newProject.title, }) - .expect(400); - }); + .expect(400) + }) it('Create project shared base', async () => { await request(context.app) @@ -141,18 +141,18 @@ function projectTest() { roles: 'viewer', password: 'test', }) - .expect(200); + .expect(200) - const updatedProject = await Project.getByTitleOrId(project.id); + const updatedProject = await Project.getByTitleOrId(project.id) if ( !updatedProject.uuid || updatedProject.roles !== 'viewer' || updatedProject.password !== 'test' ) { - return new Error('Shared base not configured properly'); + return new Error('Shared base not configured properly') } - }); + }) it('Created project shared base should have only editor or viewer role', async () => { await request(context.app) @@ -162,17 +162,17 @@ function projectTest() { roles: 'commenter', password: 'test', }) - .expect(200); + .expect(200) - const updatedProject = await Project.getByTitleOrId(project.id); + const updatedProject = await Project.getByTitleOrId(project.id) if (updatedProject.roles === 'commenter') { - return new Error('Shared base not configured properly'); + return new Error('Shared base not configured properly') } - }); + }) it('Updated project shared base should have only editor or viewer role', async () => { - await createSharedBase(context.app, context.token, project); + await createSharedBase(context.app, context.token, project) await request(context.app) .patch(`/api/v1/db/meta/projects/${project.id}/shared`) @@ -181,17 +181,17 @@ function projectTest() { roles: 'commenter', password: 'test', }) - .expect(200); + .expect(200) - const updatedProject = await Project.getByTitleOrId(project.id); + const updatedProject = await Project.getByTitleOrId(project.id) if (updatedProject.roles === 'commenter') { - throw new Exception('Shared base not updated properly'); + throw new Exception('Shared base not updated properly') } - }); + }) it('Updated project shared base', async () => { - await createSharedBase(context.app, context.token, project); + await createSharedBase(context.app, context.token, project) await request(context.app) .patch(`/api/v1/db/meta/projects/${project.id}/shared`) @@ -200,42 +200,42 @@ function projectTest() { roles: 'editor', password: 'test', }) - .expect(200); - const updatedProject = await Project.getByTitleOrId(project.id); + .expect(200) + const updatedProject = await Project.getByTitleOrId(project.id) if (updatedProject.roles !== 'editor') { - throw new Exception('Shared base not updated properly'); + throw new Exception('Shared base not updated properly') } - }); + }) it('Get project shared base', async () => { - await createSharedBase(context.app, context.token, project); + await createSharedBase(context.app, context.token, project) await request(context.app) .get(`/api/v1/db/meta/projects/${project.id}/shared`) .set('xc-auth', context.token) .send() - .expect(200); + .expect(200) - const updatedProject = await Project.getByTitleOrId(project.id); + const updatedProject = await Project.getByTitleOrId(project.id) if (!updatedProject.uuid) { - throw new Exception('Shared base not created'); + throw new Exception('Shared base not created') } - }); + }) it('Delete project shared base', async () => { - await createSharedBase(context.app, context.token, project); + await createSharedBase(context.app, context.token, project) await request(context.app) .delete(`/api/v1/db/meta/projects/${project.id}/shared`) .set('xc-auth', context.token) .send() - .expect(200); - const updatedProject = await Project.getByTitleOrId(project.id); + .expect(200) + const updatedProject = await Project.getByTitleOrId(project.id) if (updatedProject.uuid) { - throw new Exception('Shared base not deleted'); + throw new Exception('Shared base not deleted') } - }); + }) // todo: Do compare api test @@ -244,16 +244,16 @@ function projectTest() { .get(`/api/v1/db/meta/projects/${project.id}/meta-diff`) .set('xc-auth', context.token) .send() - .expect(200); - }); + .expect(200) + }) it('Meta diff sync', async () => { await request(context.app) .post(`/api/v1/db/meta/projects/${project.id}/meta-diff`) .set('xc-auth', context.token) .send() - .expect(200); - }); + .expect(200) + }) // todo: improve test. Check whether the all the actions are present in the response and correct as well it('Meta diff sync', async () => { @@ -265,13 +265,13 @@ function projectTest() { }) - it.only('Get all projects meta', async () => { + it('Get all projects meta', async () => { await createTable(context, project, { table_name: 'table1', title: 'table1' }) await createTable(context, project, { table_name: 'table2', title: 'table2' }) await createTable(context, project, { table_name: 'table3', title: 'table3' }) await request(context.app) - .get(`/api/v1/all_meta`) + .get(`/api/v1/aggregated-meta-info`) .set('xc-auth', context.token) .send({}) .expect(200) @@ -297,6 +297,6 @@ function projectTest() { }) } -export default function () { - describe('Project', projectTest); +export default function() { + describe('Project', projectTest) }