import fuelList from "#components/Ausweis/fuelList"; import { faker } from "@faker-js/faker"; import { Enums } from "@ibcornelsen/database/client"; describe("Verbrauchsausweis erstellen Schritt 1", () => { it("erstellt einen neuen Verbrauchsausweis Wohngebäude.", () => { cy.visit("/verbrauchsausweis"); cy.wait(1000); // Wir überprüfen, ob alle Ausstelgründe vorhanden sind, diese sollten genau so viele sein wie in der Datenbank vorhanden sind. cy.get("input[name='ausstellgrund']") .should("have.length", Object.values(Enums.Ausstellgrund).length) .eq( faker.number.int({ min: 0, max: Object.values(Enums.Ausstellgrund).length - 1, }) ) .check(); // Jetzt Füllen wir das Baujahr vom Gebäude aus. cy.get("input[name='baujahr_gebaeude']") .should("have.attr", "type", "number") .type( faker.number.int({ min: 1900, max: 2021 }).toString() + "{enter}", { delay: 50 } ); // Jetzt Füllen wir das Baujahr der Heizung aus. cy.get("input[name='baujahr_heizung']") .should("have.attr", "type", "number") .type( faker.number.int({ min: 1900, max: 2021 }).toString() + "{enter}", { delay: 50 } ); // Anzahl Einheiten cy.get("input[name='einheiten']") .should("have.attr", "type", "number") .type(faker.number.int({ min: 1, max: 5 }).toString()); // Sanierungsstatus cy.get("select[name='saniert']").select( Math.random() > 0.5 ? "true" : "false" ); // Adresse cy.get("input[name='adresse']").type(faker.location.streetAddress()); // Postleitzahl cy.get("input[name='plz']").type( faker.location.zipCode({ format: "#####", }) ); // TODO: Ort - Dieser wird aus der Datenbank abgefragt, wir müssen also warten, bis der Dropdown da ist. // Flaeche cy.get("input[name='flaeche']") .should("have.attr", "type", "number") .type(faker.number.int({ min: 50, max: 1000 }).toString()); // Keller cy.get("select[name='keller']").find("option:not([disabled])").should("have.length", Object.values(Enums.Heizungsstatus).length).parent().select(faker.number.int({ max: Object.values(Enums.Heizungsstatus).length, min: 1 })); // Dachgeschoss cy.get("select[name='dachgeschoss']").find("option:not([disabled])").should("have.length", Object.values(Enums.Heizungsstatus).length).parent().select(faker.number.int({ max: Object.values(Enums.Heizungsstatus).length, min: 1 })); // Brennstoff und Einheit 1 const brennstoffKombo = fuelList[faker.number.int({ min: 0, max: fuelList.length - 1 })]; cy.get("select[name='brennstoff_1']").select(brennstoffKombo[0]); cy.get("select[name='einheit_1']").select(brennstoffKombo[1]); // Verbrauchszeitraum cy.get("select[name='energieverbrauch_zeitraum_monat']").select(faker.number.int({ min: 1, max: 12 }).toString()); cy.get("select[name='energieverbrauch_zeitraum_jahr']").select(faker.number.int({ min: 2018, max: 2019 }).toString()); // Verbrauch cy.get("input[name='verbrauch_1']").type(faker.number.int({ min: 4000, max: 15000 }).toString()); cy.get("input[name='verbrauch_2']").type(faker.number.int({ min: 4000, max: 15000 }).toString()); cy.get("input[name='verbrauch_3']").type(faker.number.int({ min: 4000, max: 15000 }).toString()); const zusaetzlicheHeizquelle = Math.random() > 0.5; if (zusaetzlicheHeizquelle) { cy.get("input[name='zusaetzliche_heizquelle']").check(); // Brennstoff und Einheit 2 const brennstoffKombo2 = fuelList[faker.number.int({ min: 0, max: fuelList.length - 1 })]; cy.get("select[name='brennstoff_2']").select(brennstoffKombo2[0]); cy.get("select[name='einheit_2']").select(brennstoffKombo2[1]); // Verbrauch cy.get("input[name='verbrauch_4']").type(faker.number.int({ min: 4000, max: 15000 }).toString()); cy.get("input[name='verbrauch_5']").type(faker.number.int({ min: 4000, max: 15000 }).toString()); cy.get("input[name='verbrauch_6']").type(faker.number.int({ min: 4000, max: 15000 }).toString()); } }); });