Skip to content

Commit

Permalink
fix: korjaa vuorovaikutusvaiheen päättymisaika yhteneväksi nähtävillä…
Browse files Browse the repository at this point in the history
…olovaiheen julkaisuajan kanssa. Säädä testiaineistoihin päivämäärät kronologiseksi. Lisää ajastuspäivämäärät näkyviin testiaineistoon. (#608)
  • Loading branch information
haapamakim authored Feb 17, 2023
1 parent 6f8416f commit 002a3b3
Show file tree
Hide file tree
Showing 11 changed files with 343 additions and 134 deletions.
348 changes: 247 additions & 101 deletions backend/integrationtest/api/__snapshots__/api.test.ts.snap

Large diffs are not rendered by default.

10 changes: 10 additions & 0 deletions backend/integrationtest/api/api.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import {
PDFGeneratorStub,
takePublicS3Snapshot,
takeS3Snapshot,
verifyProjektiSchedule,
} from "./testUtil/util";
import {
testImportNahtavillaoloAineistot,
Expand Down Expand Up @@ -107,6 +108,8 @@ describe("Api", () => {
await testAloituskuulutusApproval(oid, projektiPaallikko, userFixture);
emailClientStub.verifyEmailsSent();
await recordProjektiTestFixture(FixtureName.ALOITUSKUULUTUS, oid);
await verifyProjektiSchedule(oid, "Aloituskuulutus julkaistu");
await schedulerMock.verifyAndRunSchedule();

projekti = await testSuunnitteluvaihePerustiedot(oid);
await testSuunnitteluvaiheVuorovaikutus(projekti, projektiPaallikko.kayttajatunnus);
Expand All @@ -120,6 +123,8 @@ describe("Api", () => {
userFixture.loginAs(UserFixture.mattiMeikalainen);
await julkaiseSuunnitteluvaihe(oid, userFixture);
emailClientStub.verifyEmailsSent();
await verifyProjektiSchedule(oid, "Suunnitteluvaihe julkaistu");
await schedulerMock.verifyAndRunSchedule();
await importAineistoMock.processQueue();
userFixture.loginAs(UserFixture.mattiMeikalainen);
await loadProjektiFromDatabase(oid, Status.NAHTAVILLAOLO_AINEISTOT);
Expand All @@ -137,9 +142,12 @@ describe("Api", () => {
userFixture.loginAs(UserFixture.mattiMeikalainen);
projekti = await testNahtavillaolo(oid, projektiPaallikko.kayttajatunnus);
const nahtavillaoloVaihe = await testImportNahtavillaoloAineistot(projekti, velhoToimeksiannot);
await schedulerMock.verifyAndRunSchedule();
await importAineistoMock.processQueue();
await testNahtavillaoloLisaAineisto(oid, nahtavillaoloVaihe.lisaAineistoParametrit!);
await testNahtavillaoloApproval(oid, projektiPaallikko, userFixture);
await verifyProjektiSchedule(oid, "Nähtävilläolo julkaistu");
await schedulerMock.verifyAndRunSchedule();
await importAineistoMock.processQueue();
await takeS3Snapshot(oid, "Nähtävilläolo julkaistu. Vuorovaikutuksen aineistot pitäisi olla poistettu nyt kansalaispuolelta");
emailClientStub.verifyEmailsSent();
Expand Down Expand Up @@ -168,6 +176,8 @@ describe("Api", () => {
await takeS3Snapshot(oid, "Hyvaksymispaatos created", "hyvaksymispaatos");

await testHyvaksymisPaatosVaiheApproval(oid, projektiPaallikko, userFixture);
await verifyProjektiSchedule(oid, "Hyväksymispäätös hyväksytty");
await schedulerMock.verifyAndRunSchedule();
await importAineistoMock.processQueue();
await takePublicS3Snapshot(oid, "Hyväksymispäätös hyväksytty");
emailClientStub.verifyEmailsSent();
Expand Down
4 changes: 2 additions & 2 deletions backend/integrationtest/api/apiTestFixture.ts
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ class ApiTestFixture {

vuorovaikutusKierros = (vuorovaikutusNumero: number, vuorovaikutusYhteysHenkilot?: string[]): VuorovaikutusKierrosInput => ({
vuorovaikutusNumero,
vuorovaikutusJulkaisuPaiva: "2022-03-23",
vuorovaikutusJulkaisuPaiva: "2022-03-03",
videot: [
{
SUOMI: { nimi: "Esittely " + vuorovaikutusNumero, url: "https://video" },
Expand Down Expand Up @@ -252,7 +252,7 @@ class ApiTestFixture {

vuorovaikutusKierrosSuomiRuotsi = (vuorovaikutusNumero: number, vuorovaikutusYhteysHenkilot?: string[]): VuorovaikutusKierrosInput => ({
vuorovaikutusNumero,
vuorovaikutusJulkaisuPaiva: "2022-03-23",
vuorovaikutusJulkaisuPaiva: "2022-03-03",
videot: [
{
SUOMI: { nimi: "Esittely " + vuorovaikutusNumero, url: "https://video.fi" },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -760,7 +760,7 @@
}
}
],
"vuorovaikutusJulkaisuPaiva": "2022-03-23",
"vuorovaikutusJulkaisuPaiva": "2022-03-03",
"vuorovaikutusNumero": 0,
"vuorovaikutusTilaisuudet": [
{
Expand Down Expand Up @@ -925,7 +925,7 @@
}
}
],
"vuorovaikutusJulkaisuPaiva": "2022-03-23",
"vuorovaikutusJulkaisuPaiva": "2022-03-03",
"vuorovaikutusPDFt": {
"SUOMI": {
"__typename": "PDF",
Expand Down
4 changes: 2 additions & 2 deletions backend/integrationtest/api/records/JATKOPAATOS_1_ALKU.json
Original file line number Diff line number Diff line change
Expand Up @@ -745,7 +745,7 @@
}
}
],
"vuorovaikutusJulkaisuPaiva": "2022-03-23",
"vuorovaikutusJulkaisuPaiva": "2022-03-03",
"vuorovaikutusNumero": 0,
"vuorovaikutusTilaisuudet": [
{
Expand Down Expand Up @@ -910,7 +910,7 @@
}
}
],
"vuorovaikutusJulkaisuPaiva": "2022-03-23",
"vuorovaikutusJulkaisuPaiva": "2022-03-03",
"vuorovaikutusPDFt": {
"SUOMI": {
"__typename": "PDF",
Expand Down
4 changes: 2 additions & 2 deletions backend/integrationtest/api/records/NAHTAVILLAOLO.json
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@
}
}
],
"vuorovaikutusJulkaisuPaiva": "2022-03-23",
"vuorovaikutusJulkaisuPaiva": "2022-03-03",
"vuorovaikutusNumero": 0,
"vuorovaikutusTilaisuudet": [
{
Expand Down Expand Up @@ -475,7 +475,7 @@
}
}
],
"vuorovaikutusJulkaisuPaiva": "2022-03-23",
"vuorovaikutusJulkaisuPaiva": "2022-03-03",
"vuorovaikutusPDFt": {
"SUOMI": {
"__typename": "PDF",
Expand Down
8 changes: 5 additions & 3 deletions backend/integrationtest/api/testUtil/hyvaksymisPaatosVaihe.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,17 @@ import { api } from "../apiClient";
import { adaptAineistoToInput, expectToMatchSnapshot } from "./util";
import { apiTestFixture } from "../apiTestFixture";
import { cleanupHyvaksymisPaatosVaiheJulkaisuJulkinenTimestamps, cleanupHyvaksymisPaatosVaiheTimestamps } from "./cleanUpFunctions";
import dayjs from "dayjs";
import capitalize from "lodash/capitalize";
import { parseDate } from "../../../src/util/dateUtil";
import { assertIsDefined } from "../../../src/util/assertions";

export async function testHyvaksymismenettelyssa(oid: string, userFixture: UserFixture): Promise<void> {
userFixture.loginAs(UserFixture.mattiMeikalainen);
const dbProjekti = await projektiDatabase.loadProjektiByOid(oid);
const julkaisu = dbProjekti!.nahtavillaoloVaiheJulkaisut![0];
// Päättymispäivä alle vuosi menneisyyteen, jottei projekti mene epäaktiiviseksi
julkaisu.kuulutusVaihePaattyyPaiva = dayjs().add(-2, "day").format();
assertIsDefined(julkaisu.kuulutusVaihePaattyyPaiva);
julkaisu.kuulutusVaihePaattyyPaiva = parseDate(julkaisu.kuulutusVaihePaattyyPaiva).subtract(20, "years").format();
await projektiDatabase.nahtavillaoloVaiheJulkaisut.update(dbProjekti!, julkaisu);

await loadProjektiFromDatabase(oid, Status.HYVAKSYMISMENETTELYSSA_AINEISTOT); // Verify status in yllapito
Expand Down Expand Up @@ -127,7 +129,7 @@ export async function testHyvaksymisPaatosVaiheApproval(
// Move hyvaksymisPaatosVaiheJulkaisu into the past
const dbProjekti = await projektiDatabase.loadProjektiByOid(oid);
const julkaisu = dbProjekti!.hyvaksymisPaatosVaiheJulkaisut![0];
julkaisu.kuulutusVaihePaattyyPaiva = "2022-06-08";
julkaisu.kuulutusVaihePaattyyPaiva = "2022-06-10";
await projektiDatabase.hyvaksymisPaatosVaiheJulkaisut.update(dbProjekti!, julkaisu);

await testPublicAccessToProjekti(
Expand Down
12 changes: 12 additions & 0 deletions backend/integrationtest/api/testUtil/util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ import {
openSearchClientJulkinen,
openSearchClientYllapito,
} from "../../../src/projektiSearch/openSearchClient";
import { projektiDatabase } from "../../../src/database/projektiDatabase";
import { ProjektiAineistoManager } from "../../../src/aineisto/projektiAineistoManager";
import { assertIsDefined } from "../../../src/util/assertions";

const { expect } = require("chai");

Expand Down Expand Up @@ -227,9 +230,12 @@ export class SchedulerMock {
})
);
this.createStub.reset();
awsMockResolves(this.createStub, {});
}

expectAwsCalls(this.deleteStub, "GroupName");
this.deleteStub.reset();
awsMockResolves(this.deleteStub, {});
}
}

Expand Down Expand Up @@ -282,3 +288,9 @@ export function defaultMocks(): { schedulerMock: SchedulerMock } {
const schedulerMock = new SchedulerMock();
return { schedulerMock };
}

export async function verifyProjektiSchedule(oid: string, description: string): Promise<void> {
const dbProjekti = await projektiDatabase.loadProjektiByOid(oid);
assertIsDefined(dbProjekti);
expectToMatchSnapshot(description, new ProjektiAineistoManager(dbProjekti).getSchedule());
}
Original file line number Diff line number Diff line change
Expand Up @@ -367,13 +367,13 @@ Object {
"kuvausTekstit": Array [],
"leipaTekstit": Array [
"Liikenne- ja viestintävirasto on 9.6.2022 päätöksellään asianro123, hyväksynyt liikennejärjestelmästä ja maanteistä annetun lain (503/2005) mukaisen tiesuunnitelman: HASSU MIGRAATIOTESTIPROJEKTI HYVÄKSYMISMENETTELYSSÄ",
"Päätös ja sen perusteena olevat asiakirjat sekä valitusosoitus pidetään yleisesti nähtävillä 9.6.2022 - 8.6.2022. Asianosaisten katsotaan saaneen tiedon seitsemäntenä päivänä kuulutuksen julkaisemispäivästä (hallintolaki 62 a §).",
"Päätös ja sen perusteena olevat asiakirjat sekä valitusosoitus pidetään yleisesti nähtävillä 9.6.2022 - 10.6.2022. Asianosaisten katsotaan saaneen tiedon seitsemäntenä päivänä kuulutuksen julkaisemispäivästä (hallintolaki 62 a §).",
"Kuulutus, päätös ja sen perusteena olevat asiakirjat sekä valitusosoitus julkaistaan 6.9.2022 osoitteessa <a href=\\"https://localhost:3000/suunnitelma/1.2.246.578.5.1.2789861876.697619507/nahtavillaolo\\">https://localhost:3000/suunnitelma/1.2.246.578.5.1.2789861876.697619507/nahtavillaolo</a>.",
"Kuulutettavasta hyväksymispäätöksestä on poistettu henkilötiedot. Mikäli haluatte alkuperäisen päätöksen, voitte pyytää sen projektipäälliköltä.",
],
"tietosuoja": "Väylävirasto käsittelee suunnitelman laatimiseen liittyen tarpeellisia henkilötietoja. Halutessasi tietää tarkemmin väyläsuunnittelun tietosuojakäytänteistä tutustu verkkosivujen tietosuojaosioon, <a external=\\"true\\" href=\\"https://www.vayla.fi/tietosuoja\\">https://www.vayla.fi/tietosuoja</a>.",
},
"kuulutusVaihePaattyyPaiva": "2022-06-08",
"kuulutusVaihePaattyyPaiva": "2022-06-10",
"tila": "HYVAKSYTTY",
"uudelleenKuulutus": undefined,
"velho": Object {
Expand Down Expand Up @@ -475,13 +475,13 @@ Object {
"kuvausTekstit": Array [],
"leipaTekstit": Array [
"Liikenne- ja viestintävirasto on 9.6.2022 päätöksellään asianro123, hyväksynyt liikennejärjestelmästä ja maanteistä annetun lain (503/2005) mukaisen tiesuunnitelman: HASSU MIGRAATIOTESTIPROJEKTI HYVÄKSYMISMENETTELYSSÄ",
"Päätös ja sen perusteena olevat asiakirjat sekä valitusosoitus pidetään yleisesti nähtävillä 9.6.2022 - 8.6.2022. Asianosaisten katsotaan saaneen tiedon seitsemäntenä päivänä kuulutuksen julkaisemispäivästä (hallintolaki 62 a §).",
"Päätös ja sen perusteena olevat asiakirjat sekä valitusosoitus pidetään yleisesti nähtävillä 9.6.2022 - 10.6.2022. Asianosaisten katsotaan saaneen tiedon seitsemäntenä päivänä kuulutuksen julkaisemispäivästä (hallintolaki 62 a §).",
"Kuulutus, päätös ja sen perusteena olevat asiakirjat sekä valitusosoitus julkaistaan 6.9.2022 osoitteessa <a href=\\"https://localhost:3000/suunnitelma/1.2.246.578.5.1.2789861876.697619507/nahtavillaolo\\">https://localhost:3000/suunnitelma/1.2.246.578.5.1.2789861876.697619507/nahtavillaolo</a>.",
"Kuulutettavasta hyväksymispäätöksestä on poistettu henkilötiedot. Mikäli haluatte alkuperäisen päätöksen, voitte pyytää sen projektipäälliköltä.",
],
"tietosuoja": "Väylävirasto käsittelee suunnitelman laatimiseen liittyen tarpeellisia henkilötietoja. Halutessasi tietää tarkemmin väyläsuunnittelun tietosuojakäytänteistä tutustu verkkosivujen tietosuojaosioon, <a external=\\"true\\" href=\\"https://www.vayla.fi/tietosuoja\\">https://www.vayla.fi/tietosuoja</a>.",
},
"kuulutusVaihePaattyyPaiva": "2022-06-08",
"kuulutusVaihePaattyyPaiva": "2022-06-10",
"tila": "HYVAKSYTTY",
"uudelleenKuulutus": undefined,
"velho": Object {
Expand Down Expand Up @@ -1437,7 +1437,7 @@ Object {
"__typename": "LokalisoituLinkki",
},
],
"vuorovaikutusJulkaisuPaiva": "2022-03-23",
"vuorovaikutusJulkaisuPaiva": "2022-03-03",
"vuorovaikutusNumero": 0,
"vuorovaikutusTilaisuudet": Array [
Object {
Expand Down Expand Up @@ -1582,7 +1582,7 @@ Object {
"__typename": "LokalisoituLinkki",
},
],
"vuorovaikutusJulkaisuPaiva": "2022-03-23",
"vuorovaikutusJulkaisuPaiva": "2022-03-03",
"vuorovaikutusNumero": 0,
"vuorovaikutusPDFt": Object {
"SUOMI": Object {
Expand Down Expand Up @@ -1811,7 +1811,7 @@ Object {
"__typename": "LokalisoituLinkki",
},
],
"vuorovaikutusJulkaisuPaiva": "2022-03-23",
"vuorovaikutusJulkaisuPaiva": "2022-03-03",
"vuorovaikutusNumero": 0,
"vuorovaikutusPDFt": Object {
"SUOMI": Object {
Expand Down
6 changes: 3 additions & 3 deletions backend/src/aineisto/aineistoSynchronizerService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { DBProjekti } from "../database/model";
import { ProjektiAineistoManager } from "./projektiAineistoManager";
import { assertIsDefined } from "../util/assertions";
import { ScheduleSummary } from "aws-sdk/clients/scheduler";
import { values } from "lodash";
import { uniqBy, values } from "lodash";

class AineistoSynchronizerService {
async synchronizeProjektiFiles(oid: string) {
Expand All @@ -20,7 +20,7 @@ class AineistoSynchronizerService {
}

private async updateProjektiSynchronizationSchedule(projekti: DBProjekti) {
const schedule = new ProjektiAineistoManager(projekti).getSchedule();
const schedule = uniqBy(new ProjektiAineistoManager(projekti).getSchedule(), (event) => event.date); // Poista duplikaatit
const now = dayjs();
const oid = projekti.oid;
const schedules = await this.listAllSchedulesForProjektiAsAMap(oid);
Expand All @@ -44,7 +44,7 @@ class AineistoSynchronizerService {
values(schedules).map(async (sch) => {
log.info("Poistetaan ajastus:" + sch.Name);
assertIsDefined(sch.Name);
return scheduler.deleteSchedule({ Name: sch.Name, GroupName:sch.GroupName }).promise();
return scheduler.deleteSchedule({ Name: sch.Name, GroupName: sch.GroupName }).promise();
})
);
}
Expand Down
Loading

0 comments on commit 002a3b3

Please sign in to comment.