fix(service-test): show error message when service returns null
Some checks failed
CI / Lint, Typecheck, Test & Build (push) Has been cancelled
Some checks failed
CI / Lint, Typecheck, Test & Build (push) Has been cancelled
testService() was swallowing errors — services like parts-catalogs catch internally and return null, so the outer try/catch never fired. Now each service call has its own try/catch, and null responses get an explicit error message. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -504,63 +504,78 @@ export class VehiclesService {
|
||||
const serviceName = service || "all";
|
||||
const startTime = Date.now();
|
||||
|
||||
try {
|
||||
let data: any = null;
|
||||
let data: any = null;
|
||||
|
||||
switch (serviceName) {
|
||||
case "corgi": {
|
||||
switch (serviceName) {
|
||||
case "corgi": {
|
||||
try {
|
||||
data = this.corgiService.decodeVin(vin);
|
||||
break;
|
||||
} catch (err) {
|
||||
return { service: serviceName, success: false, responseTimeMs: Date.now() - startTime, result: null, error: (err as Error).message };
|
||||
}
|
||||
case "parts-catalogs": {
|
||||
data = await this.partsCatalogsService.decodeVin(vin);
|
||||
break;
|
||||
}
|
||||
case "pl24": {
|
||||
const isDecodeable = this.pl24Service.isDecodeable(vin);
|
||||
if (!isDecodeable) {
|
||||
return {
|
||||
service: serviceName,
|
||||
success: false,
|
||||
responseTimeMs: Date.now() - startTime,
|
||||
result: null,
|
||||
error: `VIN WMI ${vin.substring(0, 3)} PL24 tarafından desteklenmiyor`,
|
||||
};
|
||||
}
|
||||
data = await this.pl24Service.decodeVin(vin);
|
||||
break;
|
||||
}
|
||||
case "emex": {
|
||||
data = await this.emexService.decodeVinOrCandidates(vin);
|
||||
break;
|
||||
}
|
||||
case "vin-api": {
|
||||
data = await this.vinApiService.decodeVin(vin);
|
||||
break;
|
||||
}
|
||||
case "all": {
|
||||
data = await this.resolveVin(vin);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
throw new BadRequestException(`Bilinmeyen servis: ${serviceName}`);
|
||||
break;
|
||||
}
|
||||
|
||||
return {
|
||||
service: serviceName,
|
||||
success: data !== null,
|
||||
responseTimeMs: Date.now() - startTime,
|
||||
result: data,
|
||||
};
|
||||
} catch (err) {
|
||||
return {
|
||||
service: serviceName,
|
||||
success: false,
|
||||
responseTimeMs: Date.now() - startTime,
|
||||
result: null,
|
||||
error: (err as Error).message,
|
||||
};
|
||||
case "parts-catalogs": {
|
||||
try {
|
||||
data = await this.partsCatalogsService.decodeVin(vin);
|
||||
} catch (err) {
|
||||
return { service: serviceName, success: false, responseTimeMs: Date.now() - startTime, result: null, error: (err as Error).message };
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "pl24": {
|
||||
const isDecodeable = this.pl24Service.isDecodeable(vin);
|
||||
if (!isDecodeable) {
|
||||
return {
|
||||
service: serviceName,
|
||||
success: false,
|
||||
responseTimeMs: Date.now() - startTime,
|
||||
result: null,
|
||||
error: `VIN WMI ${vin.substring(0, 3)} PL24 tarafından desteklenmiyor`,
|
||||
};
|
||||
}
|
||||
try {
|
||||
data = await this.pl24Service.decodeVin(vin);
|
||||
} catch (err) {
|
||||
return { service: serviceName, success: false, responseTimeMs: Date.now() - startTime, result: null, error: (err as Error).message };
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "emex": {
|
||||
try {
|
||||
data = await this.emexService.decodeVinOrCandidates(vin);
|
||||
} catch (err) {
|
||||
return { service: serviceName, success: false, responseTimeMs: Date.now() - startTime, result: null, error: (err as Error).message };
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "vin-api": {
|
||||
try {
|
||||
data = await this.vinApiService.decodeVin(vin);
|
||||
} catch (err) {
|
||||
return { service: serviceName, success: false, responseTimeMs: Date.now() - startTime, result: null, error: (err as Error).message };
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "all": {
|
||||
try {
|
||||
data = await this.resolveVin(vin);
|
||||
} catch (err) {
|
||||
return { service: serviceName, success: false, responseTimeMs: Date.now() - startTime, result: null, error: (err as Error).message };
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return { service: serviceName, success: false, responseTimeMs: Date.now() - startTime, result: null, error: `Bilinmeyen servis: ${serviceName}` };
|
||||
}
|
||||
|
||||
return {
|
||||
service: serviceName,
|
||||
success: data !== null,
|
||||
responseTimeMs: Date.now() - startTime,
|
||||
result: data,
|
||||
...(data === null && { error: "Servis veri döndüremedi (null response)" }),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user