metis-desk/.artifacts/account-deletion/cleanup-test.mts

19 lines
1.7 KiB
TypeScript
Raw Normal View History

import { createDatabase, readDatabaseEnvironment } from '../../apps/server/src/config/database';
const env=readDatabaseEnvironment(process.env);
if(env.DB_NAME!=='metis_desk_test'||env.NODE_ENV!=='test')throw Error('Solo pruebas');
const db=createDatabase(env);
const company='01a17cae-4bba-7070-a394-13f9009c5cfb';
try {
await db.transaction(async transaction=>{
const replacements={company};
const rows=await db.query('SELECT i.kind,i.id FROM access_items i JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company',{replacements,transaction,type:'SELECT'});
console.info({fixtureCompany:company,items:rows});
for(const table of ['access_references','access_person_references']) await db.query(`DELETE r FROM ${table} r JOIN access_items i ON i.id=r.itemId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company`,{replacements,transaction});
await db.query('DELETE r FROM access_revisions r JOIN access_items i ON i.id=r.itemId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company',{replacements,transaction});
for(const table of ['access_account_values','access_system_values']) await db.query(`DELETE v FROM ${table} v JOIN access_items i ON i.id=v.ownerId JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company`,{replacements,transaction});
await db.query('DELETE i FROM access_items i JOIN access_workspaces w ON w.id=i.workspaceId WHERE w.companyId=:company',{replacements,transaction});
await db.query('DELETE FROM access_workspaces WHERE companyId=:company',{replacements,transaction});
await db.query('DELETE FROM companies WHERE id=:company',{replacements,transaction});
});
}finally {await db.close();}