delete dealer

This commit is contained in:
2026-10-01 13:37:39 +05:30
parent 1ea59d8a3a
commit e5bc11b6de
2 changed files with 103 additions and 0 deletions
+46
View File
@@ -355,6 +355,52 @@ async function run(port) {
reassigned.status === 200 && reassigned.json.data.assignedDealerIds.includes(dealerC.json.data.id),
'assign dealer failed'
);
const dealerD = await request(port, 'POST', '/api/admin/dealers', {
token: adminToken,
body: { name: 'Delete Motors', code: 'DEL', district: 'Colombo', phone: '94776666666' },
});
assert(dealerD.status === 201, 'dealer for delete test failed');
await addStock('CH-DEL', 'EN-DEL', 1, dealerD.json.data.id);
const transferred = await request(port, 'POST', '/api/stocks/CH-DEL/transfer', {
token: adminToken,
body: { dealerId: dealerA.json.data.id },
});
assert(transferred.status === 200, 'transfer before delete failed');
const dealerDToken = await approveDealer('94776666666', adminToken);
const doomedEvent = await request(port, 'POST', '/api/events', {
token: dealerDToken,
body: {
dealerId: dealerD.json.data.id,
planType: 'general',
title: 'Going away',
description: 'Removed with the dealer',
expense: 10,
imageUrls: [],
},
});
assert(doomedEvent.status === 201, 'event before delete failed');
const repDelete = await request(port, 'DELETE', `/api/admin/dealers/${dealerD.json.data.id}`, {
token: repToken,
});
assert(repDelete.status === 403, 'sales rep should not delete a dealer');
const removed = await request(port, 'DELETE', `/api/admin/dealers/${dealerD.json.data.id}`, {
token: adminToken,
});
assert(removed.status === 200, `dealer delete failed ${removed.status} ${JSON.stringify(removed.json)}`);
const dealerGone = await prisma.dealer.findUnique({ where: { id: dealerD.json.data.id } });
const loginGone = await prisma.user.findUnique({ where: { phone: '94776666666' } });
const eventGone = await prisma.event.findUnique({ where: { id: doomedEvent.json.data.id } });
const stockKept = await prisma.stock.findUnique({ where: { chassisNumber: 'CH-DEL' } });
assert(!dealerGone && !loginGone && !eventGone, 'dealer, login, and plans should be removed');
assert(stockKept && stockKept.currentDealerId === dealerA.json.data.id, 'stock already transferred should stay');
const missingDelete = await request(port, 'DELETE', `/api/admin/dealers/${dealerD.json.data.id}`, {
token: adminToken,
});
assert(missingDelete.status === 404, 'deleting a missing dealer should be 404');
}
async function main() {