/// import { Serie } from "../../src/Measures/Serie"; import { TEMPERATURE, HUMIDITY } from "../../src/const"; import { Colors } from "../../src/Measures/Utils"; describe("Serie Component Tests", () => { // Mock data for tests const mockDataTemperature = [ { time: 1625097600000, value: new Date(22.5) }, { time: 1625184000000, value: new Date(23.8) } ]; const mockDataHumidity = [ { time: 1625097600000, value: new Date(45) }, { time: 1625184000000, value: new Date(48) } ]; it("should initialize with correct properties", () => { // Create a new Serie instance const serie = new Serie( TEMPERATURE, mockDataTemperature, "user1", "bedroom", "sensor1" ); // Verify that it has the correct type expect(serie).to.be.instanceOf(Serie); }); it("should return the correct label for temperature", () => { const serie = new Serie( TEMPERATURE, mockDataTemperature, "user1", "bedroom", "sensor1" ); expect(serie.getLabel()).to.equal("Temperature [°C]"); }); it("should return the correct label for humidity", () => { const serie = new Serie( HUMIDITY, mockDataHumidity, "user1", "bedroom", "sensor1" ); expect(serie.getLabel()).to.equal("Humidity [%]"); }); it("should return 'Unknown' label for unknown type", () => { const serie = new Serie( "UNKNOWN_TYPE", mockDataTemperature, "user1", "bedroom", "sensor1" ); expect(serie.getLabel()).to.equal("Unknown"); }); it("should format temperature data correctly with getSerie()", () => { const serie = new Serie( TEMPERATURE, mockDataTemperature.map(item => ({ time: item.time, value: new Date(item.value) })), "user1", "bedroom", "sensor1" ); const result = serie.getSerie(); // Verify the properties of the formatted data expect(result).to.have.property("label", "Temperature [°C]"); expect(result).to.have.property("borderColor", Colors.BLUE); expect(result).to.have.property("backgroundColor", Colors.BLUE); expect(result).to.have.property("borderWidth", 1); expect(result).to.have.property("yAxisID", TEMPERATURE); // Verify the data points expect(result.data).to.have.length(mockDataTemperature.length); expect(result.data[0]).to.have.property("x", mockDataTemperature[0].time); expect(result.data[1]).to.have.property("x", mockDataTemperature[1].time); }); it("should format humidity data correctly with getSerie()", () => { const serie = new Serie( HUMIDITY, mockDataHumidity, "user1", "bedroom", "sensor1" ); const result = serie.getSerie(); // Verify the properties of the formatted data expect(result).to.have.property("label", "Humidity [%]"); expect(result).to.have.property("borderColor", Colors.GREEN); expect(result).to.have.property("backgroundColor", Colors.GREEN); expect(result).to.have.property("borderWidth", 1); expect(result).to.have.property("yAxisID", HUMIDITY); }); it("should handle unknown types appropriately in getSerie()", () => { const serie = new Serie( "UNKNOWN_TYPE", mockDataTemperature, "user1", "bedroom", "sensor1" ); const result = serie.getSerie(); // Verify the properties for unknown type expect(result).to.have.property("label", "Unknown"); expect(result).to.have.property("borderColor", Colors.RED); expect(result).to.have.property("backgroundColor", Colors.RED); expect(result).to.have.property("yAxisID", TEMPERATURE); // Defaults to TEMPERATURE }); });