delete dealer
This commit is contained in:
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user