diff --git a/api/src/pdc/providers/carpool/repositories/CarpoolLabelRepository.integration.spec.ts b/api/src/pdc/providers/carpool/repositories/CarpoolLabelRepository.integration.spec.ts index 3af7701878..74a9de85ce 100644 --- a/api/src/pdc/providers/carpool/repositories/CarpoolLabelRepository.integration.spec.ts +++ b/api/src/pdc/providers/carpool/repositories/CarpoolLabelRepository.integration.spec.ts @@ -11,6 +11,7 @@ describe("Carpool Label Repository", () => { let db: DbContext; let carpool_id: number; const label = "test"; + const another_label = "another_test_label"; const { before, after } = makeDbBeforeAfter(); @@ -21,19 +22,16 @@ describe("Carpool Label Repository", () => { const data = await repository.register(insertableCarpool); carpool_id = data._id; await db.connection.getClient().query( - sql`INSERT INTO ${ - raw(labelRepository.anomalyTable) - } (carpool_id, label) VALUES (${carpool_id}, ${label})`, + sql`INSERT INTO ${raw(labelRepository.anomalyTable)} (carpool_id, label) VALUES (${carpool_id}, ${label})`, ); await db.connection.getClient().query( - sql`INSERT INTO ${ - raw(labelRepository.fraudTable) - } (carpool_id, label) VALUES (${carpool_id}, ${label})`, + sql`INSERT INTO ${raw(labelRepository.fraudTable)} (carpool_id, label) VALUES (${carpool_id}, ${label})`, ); await db.connection.getClient().query( - sql`INSERT INTO ${ - raw(labelRepository.termsTable) - } (carpool_id, labels) VALUES (${carpool_id}, ${[label]})`, + sql`INSERT INTO ${raw(labelRepository.fraudTable)} (carpool_id, label) VALUES (${carpool_id},${another_label})`, + ); + await db.connection.getClient().query( + sql`INSERT INTO ${raw(labelRepository.termsTable)} (carpool_id, labels) VALUES (${carpool_id}, ${[label]})`, ); }); @@ -55,16 +53,30 @@ describe("Carpool Label Repository", () => { }]); }); - it("Should read carpool fraud label", async () => { + it("Should read carpool fraud label and return single entry with 2 labels", async () => { const result = await labelRepository.findFraudByOperatorJourneyId( insertableCarpool.operator_id, insertableCarpool.operator_journey_id, ); assertEquals(result, [{ - label, + label: "interoperator_fraud", }]); }); + it("Should read carpool fraud label and return empty array if none", async () => { + // Arrange + await repository.register({ ...insertableCarpool, operator_journey_id: "operator_journey_id-4" }); + + // Act + const result = await labelRepository.findFraudByOperatorJourneyId( + insertableCarpool.operator_id, + "operator_journey_id-4", + ); + + // Assert + assertEquals(result, []); + }); + it("Should read carpool terms label", async () => { const result = await labelRepository.findTermsByOperatorJourneyId( insertableCarpool.operator_id, diff --git a/api/src/pdc/providers/carpool/repositories/CarpoolLabelRepository.ts b/api/src/pdc/providers/carpool/repositories/CarpoolLabelRepository.ts index 541ecf49a0..5bd4278882 100644 --- a/api/src/pdc/providers/carpool/repositories/CarpoolLabelRepository.ts +++ b/api/src/pdc/providers/carpool/repositories/CarpoolLabelRepository.ts @@ -1,8 +1,5 @@ import { provider } from "@/ilos/common/index.ts"; -import { - PoolClient, - PostgresConnection, -} from "@/ilos/connection-postgres/index.ts"; +import { PoolClient, PostgresConnection } from "@/ilos/connection-postgres/index.ts"; import sql, { raw } from "@/lib/pg/sql.ts"; import { CarpoolLabel } from "../interfaces/database/label.ts"; @@ -50,7 +47,10 @@ export class CarpoolLabelRepository { AND cc.operator_journey_id = ${operator_journey_id} `; const result = await cclient.query(query); - return result.rows; + if (result.rowCount == 0) { + return []; + } + return [{ label: "interoperator_fraud" }]; } async findAnomalyByOperatorJourneyId(