tweaks
This commit is contained in:
+16
-2
@@ -194,6 +194,20 @@ async function run(port) {
|
|||||||
|
|
||||||
const dealerToken = await approveDealer('94772222222', adminToken);
|
const dealerToken = await approveDealer('94772222222', adminToken);
|
||||||
|
|
||||||
|
const ownStock = await request(port, 'POST', '/api/stocks', {
|
||||||
|
token: dealerToken,
|
||||||
|
body: {
|
||||||
|
chassisNumber: 'CH-OWN',
|
||||||
|
engineNumber: 'EN-OWN',
|
||||||
|
model: 'gn125',
|
||||||
|
color: 'Red',
|
||||||
|
currentDealerId: dealerA.json.data.id,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
assert(
|
||||||
|
ownStock.status === 201 && ownStock.json.data.currentDealerId === dealerA.json.data.id,
|
||||||
|
`dealer should add stock to their own dealership ${ownStock.status}`
|
||||||
|
);
|
||||||
const forbiddenStock = await request(port, 'POST', '/api/stocks', {
|
const forbiddenStock = await request(port, 'POST', '/api/stocks', {
|
||||||
token: dealerToken,
|
token: dealerToken,
|
||||||
body: {
|
body: {
|
||||||
@@ -201,10 +215,10 @@ async function run(port) {
|
|||||||
engineNumber: 'ENG-NOPE',
|
engineNumber: 'ENG-NOPE',
|
||||||
model: 'gn125',
|
model: 'gn125',
|
||||||
color: 'Red',
|
color: 'Red',
|
||||||
currentDealerId: dealerA.json.data.id,
|
currentDealerId: dealerB.json.data.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
assert(forbiddenStock.status === 403, 'dealer should not add stock');
|
assert(forbiddenStock.status === 403, 'dealer should not add stock to another dealership');
|
||||||
|
|
||||||
async function addStock(chassis, engine, days, dealerId) {
|
async function addStock(chassis, engine, days, dealerId) {
|
||||||
const created = await request(port, 'POST', '/api/stocks', {
|
const created = await request(port, 'POST', '/api/stocks', {
|
||||||
|
|||||||
+10
-2
@@ -42,15 +42,23 @@ router.get(
|
|||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
'/',
|
'/',
|
||||||
requireRole('salesRep', 'superAdmin'),
|
requireRole('dealer', 'salesRep', 'superAdmin'),
|
||||||
asyncHandler(async (req, res) => {
|
asyncHandler(async (req, res) => {
|
||||||
const chassisNumber = String(req.body?.chassisNumber || '').trim();
|
const chassisNumber = String(req.body?.chassisNumber || '').trim();
|
||||||
const engineNumber = String(req.body?.engineNumber || '').trim();
|
const engineNumber = String(req.body?.engineNumber || '').trim();
|
||||||
const model = String(req.body?.model || '').trim();
|
const model = String(req.body?.model || '').trim();
|
||||||
const color = String(req.body?.color || '').trim();
|
const color = String(req.body?.color || '').trim();
|
||||||
const currentDealerId = String(req.body?.currentDealerId || '').trim();
|
let currentDealerId = String(req.body?.currentDealerId || '').trim();
|
||||||
const dateReceived = req.body?.dateReceived ? new Date(req.body.dateReceived) : new Date();
|
const dateReceived = req.body?.dateReceived ? new Date(req.body.dateReceived) : new Date();
|
||||||
|
|
||||||
|
if (req.user.role === 'dealer') {
|
||||||
|
if (!req.user.dealerId) throw httpError(403, 'Forbidden');
|
||||||
|
if (currentDealerId && currentDealerId !== req.user.dealerId) {
|
||||||
|
throw httpError(403, 'Forbidden');
|
||||||
|
}
|
||||||
|
currentDealerId = req.user.dealerId;
|
||||||
|
}
|
||||||
|
|
||||||
if (!chassisNumber || !engineNumber || !color || !currentDealerId) {
|
if (!chassisNumber || !engineNumber || !color || !currentDealerId) {
|
||||||
throw httpError(400, 'Chassis, engine, color, and dealer are required');
|
throw httpError(400, 'Chassis, engine, color, and dealer are required');
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user