From f01b9112e19cd7fb812fade255f902c9d9ae47a1 Mon Sep 17 00:00:00 2001 From: Raju Udava <86527202+dstala@users.noreply.github.com> Date: Mon, 2 Oct 2023 23:06:17 +0530 Subject: [PATCH] Revert "test: revert to older reset mechanism" This reverts commit f4e92dfadc6f0a36f287f093d365370c717cbaf7. --- tests/playwright/setup/index.ts | 85 ++++++++++++++++----------------- 1 file changed, 40 insertions(+), 45 deletions(-) diff --git a/tests/playwright/setup/index.ts b/tests/playwright/setup/index.ts index cab4cb0b9e..2f1ae584aa 100644 --- a/tests/playwright/setup/index.ts +++ b/tests/playwright/setup/index.ts @@ -8,9 +8,6 @@ import { isEE } from './db'; import { resetSakilaPg } from './knexHelper'; import path from 'path'; -// Use local reset logic instead of remote -const enableLocalInit = true; - // MySQL Configuration const mysqlConfig = { client: 'mysql2', @@ -156,6 +153,8 @@ export interface NcContext { workerId?: string; rootUser: UserType & { password: string }; workspace: WorkspaceType; + defaultProjectTitle: string; + defaultTableTitle: string; } selectors.setTestIdAttribute('data-testid'); @@ -217,8 +216,18 @@ async function localInit({ const ws = await api['workspace'].list(); for (const w of ws.list) { // check if w.title starts with workspaceTitle - if (w.title.startsWith(`ws_pgExtREST_p${process.env.TEST_PARALLEL_INDEX}`)) { + if (w.title.startsWith(`ws_pgExtREST${process.env.TEST_PARALLEL_INDEX}`)) { try { + const projects = await api.workspaceProject.list(w.id); + + for (const project of projects.list) { + try { + await api.project.delete(project.id); + } catch (e) { + console.log(`Error deleting project: ws delete`, project); + } + } + await api['workspace'].delete(w.id); } catch (e) { console.log(`Error deleting workspace: ${w.id}`, `user-${parallelId}@nocodb.com`, isSuperUser); @@ -237,7 +246,7 @@ async function localInit({ for (const p of projects.list) { // check if p.title starts with projectTitle if ( - p.title.startsWith(`pgExtREST_p${process.env.TEST_PARALLEL_INDEX}`) || + p.title.startsWith(`pgExtREST${process.env.TEST_PARALLEL_INDEX}`) || p.title.startsWith(`xcdb_p${process.env.TEST_PARALLEL_INDEX}`) ) { try { @@ -349,38 +358,25 @@ const setup = async ({ const workerIndex = process.env.TEST_WORKER_INDEX; const parallelIndex = process.env.TEST_PARALLEL_INDEX; - const workerId = `_p${parallelIndex}_w${workerIndex}_c${(+workerIndex + 1) * 1000 + workerCount[parallelIndex]}`; - workerCount[+parallelIndex]++; + const workerId = parallelIndex; // console.log(process.env.TEST_PARALLEL_INDEX, '#Setup', workerId); try { // Localised reset logic - if (enableLocalInit) { - response = await localInit({ - workerId, - isEmptyProject, - projectType, - isSuperUser, - dbType, - }); - } - // Remote reset logic - else { - response = await axios.post(`http://localhost:8080/api/v1/meta/test/reset`, { - parallelId: process.env.TEST_PARALLEL_INDEX, - workerId: workerId, - dbType, - projectType, - isEmptyProject, - }); - } + response = await localInit({ + workerId: parallelIndex, + isEmptyProject, + projectType, + isSuperUser, + dbType, + }); } catch (e) { console.error(`Error resetting project: ${process.env.TEST_PARALLEL_INDEX}`, e); } if (response.status !== 200 || !response.data?.token || !response.data?.project) { - console.error('Failed to reset test data', response.data, response.status, enableLocalInit, dbType); + console.error('Failed to reset test data', response.data, response.status, dbType); throw new Error('Failed to reset test data'); } const token = response.data.token; @@ -390,7 +386,12 @@ const setup = async ({ email: `user@nocodb.com`, password: getDefaultPwd(), }); - await axios.post(`http://localhost:8080/api/v1/license`, { key: '' }, { headers: { 'xc-auth': admin.data.token } }); + if (!isEE()) + await axios.post( + `http://localhost:8080/api/v1/license`, + { key: '' }, + { headers: { 'xc-auth': admin.data.token } } + ); } catch (e) { // ignore error: some roles will not have permission for license reset // console.error(`Error resetting project: ${process.env.TEST_PARALLEL_INDEX}`, e); @@ -442,25 +443,19 @@ const setup = async ({ } await page.goto(projectUrl, { waitUntil: 'networkidle' }); - return { project, token, dbType, workerId, rootUser, workspace } as NcContext; + return { + project, + token, + dbType, + workerId, + rootUser, + workspace, + defaultProjectTitle: 'Getting Started', + defaultTableTitle: 'Features', + } as NcContext; }; -export const unsetup = async (context: NcContext): Promise => { - if (context.token && context.project) { - // try to delete the project - try { - // Init SDK using token - const api = new Api({ - baseURL: `http://localhost:8080/`, - headers: { - 'xc-auth': context.token, - }, - }); - - await api.project.delete(context.project.id); - } catch (e) {} - } -}; +export const unsetup = async (context: NcContext): Promise => {}; // Reference // packages/nocodb/src/lib/services/test/TestResetService/resetPgSakilaProject.ts