This commit is contained in:
2026-10-10 11:21:23 +05:30
parent ee71d4c24e
commit 335569f682
5 changed files with 172 additions and 0 deletions
+52
View File
@@ -476,6 +476,58 @@ async function run(port) {
'service point search failed'
);
const partForbidden = await request(port, 'POST', '/api/parts', {
token: dealerToken,
body: {
partNumber: 'CG125-B010',
product: 'CLUTCH HOUSING - CG125',
price: 9800,
uom: 'PCS',
model: 'CG - 125',
},
});
assert(partForbidden.status === 403, 'dealer should not add parts');
const partMissing = await request(port, 'POST', '/api/parts', {
token: repToken,
body: { partNumber: 'CG125-B010', product: 'CLUTCH HOUSING - CG125' },
});
assert(partMissing.status === 400, 'part create should require every field');
const part = await request(port, 'POST', '/api/parts', {
token: repToken,
body: {
partNumber: 'CG125-B010',
product: 'CLUTCH HOUSING - CG125',
price: 9800,
uom: 'PCS',
model: 'CG - 125',
},
});
assert(part.status === 201, 'part create failed');
const duplicatePart = await request(port, 'POST', '/api/parts', {
token: repToken,
body: {
partNumber: 'CG125-B010',
product: 'CLUTCH HOUSING - CG125',
price: 9800,
uom: 'PCS',
model: 'CG - 125',
},
});
assert(duplicatePart.status === 409, 'duplicate part number should be rejected');
const foundPart = await request(port, 'GET', '/api/parts?model=CG%20-%20125&search=CLUTCH', {
token: dealerToken,
});
assert(
foundPart.status === 200 &&
foundPart.json.data.some((item) => item.partNumber === 'CG125-B010' && item.price === 9800) &&
foundPart.json.models.includes('CG - 125'),
'part search failed'
);
const reassigned = await request(port, 'PATCH', '/api/admin/assign-dealer', {
token: adminToken,
body: { salesRepId: rep.json.data.id, dealerId: dealerC.json.data.id, assigned: true },