diff --git a/app/src/app/api/v0/inventory/[inventory]/results/route.ts b/app/src/app/api/v0/inventory/[inventory]/results/route.ts index 1df379eaa..5fa159526 100644 --- a/app/src/app/api/v0/inventory/[inventory]/results/route.ts +++ b/app/src/app/api/v0/inventory/[inventory]/results/route.ts @@ -14,10 +14,10 @@ export const GET = apiHandler( return NextResponse.json({ data: { totalEmissions: { - bySector: totalEmissionsBySector, - total: totalEmissions, + bySector: totalEmissionsBySector || [], + total: totalEmissions || 0, }, - topEmissions: { bySubSector: topEmissionsBySubSector }, + topEmissions: { bySubSector: topEmissionsBySubSector || [] }, }, }); }, diff --git a/app/src/backend/ResultsService.ts b/app/src/backend/ResultsService.ts index 46d0bb65e..952fd6812 100644 --- a/app/src/backend/ResultsService.ts +++ b/app/src/backend/ResultsService.ts @@ -770,10 +770,10 @@ export async function getEmissionResults(inventory: string): Promise<{ const EmissionResults = await getEmissionResultsBatch([inventory]); const inventoryEmissionResults = EmissionResults[inventory]; return { - totalEmissions: inventoryEmissionResults.totalEmissions.sumOfEmissions, + totalEmissions: inventoryEmissionResults?.totalEmissions?.sumOfEmissions, totalEmissionsBySector: - inventoryEmissionResults.totalEmissions.totalEmissionsBySector, - topEmissionsBySubSector: inventoryEmissionResults.topEmissionsBySubSector, + inventoryEmissionResults?.totalEmissions?.totalEmissionsBySector, + topEmissionsBySubSector: inventoryEmissionResults?.topEmissionsBySubSector, }; } diff --git a/app/tests/api/results.jest.ts b/app/tests/api/results.jest.ts index 44dcabd59..10d2cba9e 100644 --- a/app/tests/api/results.jest.ts +++ b/app/tests/api/results.jest.ts @@ -137,4 +137,34 @@ describe("Results API", () => { }, }); }); + + it("should return empty arrays when Inventory has no data", async () => { + const emptyInventoryId = randomUUID(); + const emptyInventory = await db.models.Inventory.create({ + inventoryId: emptyInventoryId, + ...baseInventory, + inventoryName: "ReportResultEmptyInventory", + cityId: city.cityId, + inventoryType: InventoryTypeEnum.GPC_BASIC, + globalWarmingPotentialType: GlobalWarmingPotentialTypeEnum.ar6, + year: 2022, + }); + const req = mockRequest(); + const res = await getResults(req, { + params: { inventory: emptyInventory.inventoryId }, + }); + + await expectStatusCode(res, 200); + expect(await res.json()).toEqual({ + data: { + topEmissions: { + bySubSector: [], + }, + totalEmissions: { + bySector: [], + total: 0, + }, + }, + }); + }); });