import fuelList from "#components/Ausweis/brennstoffListe.js"; import { faker } from "@faker-js/faker"; import "cypress-file-upload" import moment from "moment"; import { Aufnahme, Benutzer, Enums, Objekt, Rechnung, VerbrauchsausweisWohnen } from "#lib/client/prisma.js"; describe("Verbrauchsausweis für Wohngebäude bearbeiten", async () => { it("bearbeitet einen bereits existierenden Verbrauchsausweis für Wohngebäude", () => { cy.task("verbrauchsausweisWohnen", { where: { ausgestellt: false, bestellt: false, benutzer: { email: "user@ib-cornelsen.de" } }, include: { aufnahme: { include: { objekt: true } }, benutzer: true, rechnung: true } }).then((ausweis: VerbrauchsausweisWohnen & { benutzer: Benutzer, aufnahme: Aufnahme & { objekt: Objekt }, rechnung: Rechnung | null }) => { cy.login("user@ib-cornelsen.de", "passwort"); cy.visit(`/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?id=${ausweis.id}`); cy.wait(2000); // Wir überprüfen, ob alle Ausstelgründe vorhanden sind, diese sollten genau so viele sein wie in der Datenbank vorhanden sind. cy.get("select[data-cy='ausstellgrund']") .find("option:selected").should("have.value", ausweis.ausstellgrund) // // Jetzt Füllen wir das Baujahr vom Gebäude aus. // cy.get("input[name='baujahr_gebaeude']") // .should("have.value", ausweis.aufnahme.baujahr_gebaeude[0]) // // Jetzt Füllen wir das Baujahr der Heizung aus. // cy.get("input[name='baujahr_heizung']") // .should("have.value", ausweis.aufnahme.baujahr_heizung[0]) // Anzahl Einheiten cy.get("input[name='einheiten']") .should("have.value", ausweis.aufnahme.einheiten) // Sanierungsstatus cy.get("select[name='saniert']").find("option:selected").should("have.value", (ausweis.aufnahme.saniert || false).toString()) // Adresse cy.get("input[name='adresse']").should("have.value", ausweis.aufnahme.objekt.adresse); // Postleitzahl cy.get("input[name='plz']").should("have.value", ausweis.aufnahme.objekt.plz); cy.get("input[name='ort']").should("have.value", ausweis.aufnahme.objekt.ort); // Flaeche cy.get("input[name='flaeche']") .should("have.value", ausweis.aufnahme.flaeche) // Nutzflaeche cy.get("input[name='nutzflaeche']") .should("have.value", ausweis.aufnahme.nutzflaeche) // Keller cy.get("select[name='keller']").find("option:selected").should("have.value", ausweis.aufnahme.keller) // Dachgeschoss cy.get("select[name='dachgeschoss']").find("option:selected").should("have.value", ausweis.aufnahme.dachgeschoss) cy.get("select[name='brennstoff_1']").should("have.value", ausweis.brennstoff_1) cy.get("select[name='einheit_1']").should("have.value", ausweis.einheit_1) // Verbrauchszeitraum cy.get("select[name='energieverbrauch_zeitraum_jahr']").find("option:selected").should("have.value", moment(ausweis.startdatum).get("year")) cy.get("select[name='energieverbrauch_zeitraum_monat']").find("option:selected").should("have.value", moment(ausweis.startdatum).get("m") + 1) // Verbrauch cy.get("input[name='verbrauch_1']").should("have.value", ausweis.verbrauch_1); cy.get("input[name='verbrauch_2']").should("have.value", ausweis.verbrauch_2); cy.get("input[name='verbrauch_3']").should("have.value", ausweis.verbrauch_3); if (ausweis.zusaetzliche_heizquelle) { cy.get("[data-cy='zusaetzliche_heizquelle']").should("be.checked"); cy.get("[data-cy='brennstoff_2']").find("option:selected").should("have.value", ausweis.brennstoff_2); cy.get("[data-cy='einheit_2']").find("option:selected").should("have.value", ausweis.einheit_2); // Verbrauch cy.get("input[name='verbrauch_4']").should("have.value", ausweis.verbrauch_4); cy.get("input[name='verbrauch_5']").should("have.value", ausweis.verbrauch_5); cy.get("input[name='verbrauch_6']").should("have.value", ausweis.verbrauch_6); } if (ausweis.warmwasser_enthalten) { cy.get("input[name='warmwasser_enthalten']").should("be.checked"); if (ausweis.warmwasser_anteil_bekannt) { // Der Anteil ist bekannt, wir müssen ihn also angeben. cy.get("input[name='warmwasser_anteil_bekannt']").should("be.checked"); cy.get("input[name='anteil_warmwasser_1']").should("have.value", ausweis.anteil_warmwasser_1); if (ausweis.zusaetzliche_heizquelle) { // Zusätzliche Heizquelle existiert, also müssen wir auch hier den Anteil angeben. cy.get("input[name='anteil_warmwasser_2']").should('have.value', ausweis.anteil_warmwasser_2); } } } // Alternative Energieversorgungssysteme if (ausweis.alternative_heizung) cy.get("input[name='alternative_heizung']").should("be.checked"); if (ausweis.alternative_warmwasser) cy.get("input[name='alternative_warmwasser']").should("be.checked"); if (ausweis.alternative_lueftung) cy.get("input[name='alternative_lueftung']").should("be.checked"); if (ausweis.alternative_kuehlung) cy.get("input[name='alternative_kuehlung']").should("be.checked"); // Gebäudetyp cy.get("select[name='gebaeudetyp']").find("option:selected").should("have.value", ausweis.aufnahme.gebaeudetyp) // Gebäudeteil cy.get("select[name='gebaeudeteil']").find("option:selected").should("have.value", ausweis.aufnahme.gebaeudeteil) // Lüftung cy.get("select[name='lueftung']").find("option:selected").should("have.value", ausweis.aufnahme.lueftung) // Kühlung cy.get("select[name='kuehlung']").find("option:selected").should("have.value", ausweis.aufnahme.kuehlung) // Leerstand cy.get("input[name='leerstand']").should("have.value", ausweis.aufnahme.leerstand || ""); // Heizungsanlage Daten if (ausweis.aufnahme.zentralheizung) cy.get("[data-cy='zentralheizung']").should("be.checked"); if (ausweis.aufnahme.einzelofen) cy.get("[data-cy='einzelofen']").should("be.checked"); if (ausweis.aufnahme.durchlauf_erhitzer) cy.get("[data-cy='durchlauf_erhitzer']").should("be.checked"); if (ausweis.aufnahme.standard_kessel) cy.get("[data-cy='standard_kessel']").should("be.checked"); if (ausweis.aufnahme.solarsystem_warmwasser) cy.get("[data-cy='solarsystem_warmwasser']").should("be.checked"); if (ausweis.aufnahme.waermepumpe) cy.get("[data-cy='waermepumpe']").should("be.checked"); if (ausweis.aufnahme.niedertemperatur_kessel) cy.get("[data-cy='niedertemperatur_kessel']").should("be.checked"); if (ausweis.aufnahme.brennwert_kessel) cy.get("[data-cy='brennwert_kessel']").should("be.checked"); if (ausweis.aufnahme.warmwasser_rohre_gedaemmt) cy.get("[data-cy='warmwasser_rohre_gedaemmt']").should("be.checked"); if (ausweis.aufnahme.heizungsrohre_gedaemmt) cy.get("[data-cy='heizungsrohre_gedaemmt']").should("be.checked"); if (ausweis.aufnahme.zirkulation) cy.get("[data-cy='zirkulation']").should("be.checked"); // Fenster Daten if (ausweis.aufnahme.einfach_verglasung) cy.get("input[name='einfach_verglasung']").check(); if (ausweis.aufnahme.doppel_verglasung) cy.get("input[name='doppel_verglasung']").check(); if (ausweis.aufnahme.isolier_verglasung) cy.get("input[name='isolier_verglasung']").check(); if (ausweis.aufnahme.dreifach_verglasung) cy.get("input[name='dreifach_verglasung']").check(); if (ausweis.aufnahme.fenster_dicht) cy.get("input[name='fenster_dicht']").check(); if (ausweis.aufnahme.fenster_teilweise_undicht) cy.get("input[name='fenster_teilweise_undicht']").check(); if (ausweis.aufnahme.tueren_dicht) cy.get("input[name='tueren_dicht']").check(); if (ausweis.aufnahme.tueren_undicht) cy.get("input[name='tueren_undicht']").check(); if (ausweis.aufnahme.rolllaeden_kaesten_gedaemmt) cy.get("input[name='rolllaeden_kaesten_gedaemmt']").check(); // Wärmedämmung Daten if (ausweis.aufnahme.aussenwand_gedaemmt) cy.get("input[name='aussenwand_gedaemmt']").check(); if (ausweis.aufnahme.keller_wand_gedaemmt) cy.get("input[name='keller_wand_gedaemmt']").check(); if (ausweis.aufnahme.keller_decke_gedaemmt) cy.get("input[name='keller_decke_gedaemmt']").check(); if (ausweis.aufnahme.dachgeschoss_gedaemmt) cy.get("input[name='dachgeschoss_gedaemmt']").check(); if (ausweis.aufnahme.oberste_geschossdecke_gedaemmt) cy.get("input[name='oberste_geschossdecke_gedaemmt']").check(); if (ausweis.aufnahme.oberste_geschossdecke_min_12cm_gedaemmt) cy.get("input[name='oberste_geschossdecke_min_12cm_gedaemmt']").check(); // Jetzt können wir den Verbrauchsausweis erstellen. cy.get("form[data-cy='ausweis'] button[data-cy='weiter']").click({ force: true }); cy.url().should("contain", "/kundendaten"); cy.get("input[name='vorname']").should("have.value", ausweis.benutzer.vorname); cy.get("input[name='name']").should("have.value", ausweis.benutzer.name); cy.get("input[name='telefon']").should("have.value", ausweis.rechnung?.telefon || ausweis.benutzer.telefon || ""); // Rechnung cy.get("input[name='rechnung_empfaenger']").should("have.value", ausweis.rechnung?.empfaenger || `${ausweis.benutzer.vorname} ${ausweis.benutzer.name}`); cy.get("input[name='rechnung_strasse']").should("have.value", ausweis.rechnung?.strasse || ausweis.benutzer.adresse); cy.get("input[name='rechnung_plz']").should("have.value", ausweis.rechnung?.plz || ausweis.benutzer.plz); cy.get("input[name='rechnung_email']").should("have.value", ausweis.rechnung?.email || ausweis.benutzer.email); cy.get("[data-cy='paypal']").click() cy.get("button[data-cy='bestellen']").click(); cy.origin('https://www.mollie.com', () => { // Jetzt sind wir auf der Mollie Seite, dort wählen wir den "paid" status aus cy.get("input[type='radio'][name='final_state'][value='paid']").check(); // Da wird unser Test fehlschlagen, da die localhost domain von Mollie aus nicht erreichbar ist. }) }) }); });