196 lines
9.7 KiB
TypeScript
196 lines
9.7 KiB
TypeScript
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.
|
|
})
|
|
})
|
|
});
|
|
});
|