diff --git a/backend/src/projekti/adapter/adaptToDB/common.ts b/backend/src/projekti/adapter/adaptToDB/common.ts index bc46309d5..7d33af5e8 100644 --- a/backend/src/projekti/adapter/adaptToDB/common.ts +++ b/backend/src/projekti/adapter/adaptToDB/common.ts @@ -14,6 +14,7 @@ import { } from "../../../database/model"; import { ProjektiAdaptationResult } from "../projektiAdaptationResult"; import remove from "lodash/remove"; +import isString from "lodash/isString"; export function adaptIlmoituksenVastaanottajatToSave( vastaanottajat: API.IlmoituksenVastaanottajatInput | null | undefined @@ -183,7 +184,7 @@ export function adaptLokalisoituTekstiToSave( return lokalisoituTekstiInput; } - if (!lokalisoituTekstiInput[kielitiedot.ensisijainenKieli]) { + if (!isString(lokalisoituTekstiInput[kielitiedot.ensisijainenKieli])) { throw new IllegalArgumentError( `adaptLokalisoituTekstiToSave: lokalisoituTekstiInput.${kielitiedot.ensisijainenKieli} (ensisijainen kieli) puuttuu` ); @@ -191,7 +192,7 @@ export function adaptLokalisoituTekstiToSave( const teksti: LocalizedMap = { [kielitiedot.ensisijainenKieli]: lokalisoituTekstiInput[kielitiedot.ensisijainenKieli] }; if (kielitiedot.toissijainenKieli) { const toisellaKielella = lokalisoituTekstiInput[kielitiedot.toissijainenKieli]; - if (!toisellaKielella) { + if (!isString(toisellaKielella)) { throw new IllegalArgumentError( `adaptLokalisoituTekstiToSave: lokalisoituTekstiInput.${kielitiedot.toissijainenKieli} (toissijainen kieli) puuttuu` ); diff --git a/backend/test/projekti/adapter/__snapshots__/adaptVuorovaikutusKierrosToSave.test.ts.snap b/backend/test/projekti/adapter/__snapshots__/adaptVuorovaikutusKierrosToSave.test.ts.snap new file mode 100644 index 000000000..09e5e1296 --- /dev/null +++ b/backend/test/projekti/adapter/__snapshots__/adaptVuorovaikutusKierrosToSave.test.ts.snap @@ -0,0 +1,59 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`adaptVuorovaikutusKierrosToSave should adapt vuorovaikutuskierros to save 1`] = ` +Object { + "arvioSeuraavanVaiheenAlkamisesta": undefined, + "esitettavatYhteystiedot": undefined, + "esittelyaineistot": undefined, + "hankkeenKuvaus": Object { + "SUOMI": "Kuvaus", + }, + "ilmoituksenVastaanottajat": Object { + "kunnat": Array [ + Object { + "id": 620, + "sahkoposti": "maikol@iki.fi", + }, + ], + "viranomaiset": Array [ + Object { + "nimi": "KAINUUN_ELY", + "sahkoposti": "kirjaamo.kainuu@ely-keskus.fi", + }, + ], + }, + "kysymyksetJaPalautteetViimeistaan": "2023-02-22", + "palautteidenVastaanottajat": undefined, + "suunnitelmaluonnokset": undefined, + "suunnittelumateriaali": undefined, + "suunnittelunEteneminenJaKesto": undefined, + "tila": "MUOKATTAVISSA", + "videot": null, + "vuorovaikutusJulkaisuPaiva": "2023-02-20", + "vuorovaikutusNumero": 0, + "vuorovaikutusTilaisuudet": Array [ + Object { + "Saapumisohjeet": Object { + "SUOMI": "", + }, + "alkamisAika": "00:00", + "nimi": Object { + "SUOMI": "fdsaadfs", + }, + "osoite": Object { + "SUOMI": "dfsasdaf", + }, + "paattymisAika": "00:00", + "paikka": Object { + "SUOMI": "adfsdfas", + }, + "paivamaara": "2023-02-23", + "postinumero": "12344", + "postitoimipaikka": Object { + "SUOMI": "", + }, + "tyyppi": "PAIKALLA", + }, + ], +} +`; diff --git a/backend/test/projekti/adapter/adaptVuorovaikutusKierrosToSave.test.ts b/backend/test/projekti/adapter/adaptVuorovaikutusKierrosToSave.test.ts new file mode 100644 index 000000000..5633f68af --- /dev/null +++ b/backend/test/projekti/adapter/adaptVuorovaikutusKierrosToSave.test.ts @@ -0,0 +1,76 @@ +import { describe, it } from "mocha"; +import { adaptVuorovaikutusKierrosToSave } from "../../../src/projekti/adapter/adaptToDB"; +import { ProjektiAdaptationResult } from "../../../src/projekti/adapter/projektiAdaptationResult"; +import { ProjektiFixture } from "../../fixture/projektiFixture"; +import { IlmoitettavaViranomainen, VuorovaikutusTilaisuusTyyppi } from "../../../../common/graphql/apiModel"; + +const { expect } = require("chai"); + +describe("adaptVuorovaikutusKierrosToSave", () => { + before(() => {}); + + beforeEach(() => {}); + + afterEach(() => {}); + + after(() => {}); + + it("should adapt vuorovaikutuskierros to save", async () => { + let dbProjekti = new ProjektiFixture().dbProjekti1(); + delete dbProjekti.kielitiedot?.toissijainenKieli; + let vuorovaikutusKierrosInput = { + ilmoituksenVastaanottajat: { + viranomaiset: [ + { + nimi: IlmoitettavaViranomainen.KAINUUN_ELY, + sahkoposti: "kirjaamo.kainuu@ely-keskus.fi", + }, + ], + kunnat: [ + { + id: 620, + sahkoposti: "maikol@iki.fi", + }, + ], + }, + vuorovaikutusTilaisuudet: [ + { + nimi: { + SUOMI: "fdsaadfs", + }, + paivamaara: "2023-02-23", + alkamisAika: "00:00", + paattymisAika: "00:00", + tyyppi: VuorovaikutusTilaisuusTyyppi.PAIKALLA, + paikka: { + SUOMI: "adfsdfas", + }, + osoite: { + SUOMI: "dfsasdaf", + }, + postinumero: "12344", + postitoimipaikka: { + SUOMI: "", + }, + Saapumisohjeet: { + SUOMI: "", + }, + }, + ], + esitettavatYhteystiedot: { + yhteysTiedot: [], + yhteysHenkilot: [], + }, + vuorovaikutusJulkaisuPaiva: "2023-02-20", + hankkeenKuvaus: { + SUOMI: "Kuvaus", + }, + vuorovaikutusNumero: 0, + kysymyksetJaPalautteetViimeistaan: "2023-02-22", + }; + + let result = adaptVuorovaikutusKierrosToSave(dbProjekti, vuorovaikutusKierrosInput, new ProjektiAdaptationResult(dbProjekti)); + + expect(result).toMatchSnapshot(); + }); +});