weather-portal/test/sensors_test.gleam
Travis Shears cad01edab8
All checks were successful
Unit Tests / Run Tests (push) Successful in 11s
parse topic 2
2026-03-25 11:23:27 +01:00

44 lines
1.2 KiB
Gleam

import gleeunit
import gleeunit/should
import sensors
pub fn main() -> Nil {
gleeunit.main()
}
pub fn sensor_name_and_unit_test() {
let reading =
sensors.sensor_name(sensors.Temperature)
<> " "
<> "20.5"
<> " "
<> sensors.sensor_unit(sensors.Temperature)
reading
|> should.equal("Temperature 20.5 °C")
}
pub fn parse_topic_1_test() {
let json_string =
"{\"temp\":18.84,\"humidity\":28.690811,\"pressure\":944.67}"
let readings = sensors.parse_topic_1(json_string)
readings
|> should.equal([
sensors.SensorReading(sensor: sensors.Temperature, value: 18.84),
sensors.SensorReading(sensor: sensors.Humidity, value: 28.690811),
sensors.SensorReading(sensor: sensors.Pressure, value: 944.67),
])
}
pub fn parse_topic_2_test() {
let json_string = "{\"pm1\":16.83,\"pm2_5\":10.68,\"pm10\":16.619719}"
let readings = sensors.parse_topic_2(json_string)
readings
|> should.equal([
sensors.SensorReading(sensor: sensors.ParticalMatterOne, value: 16.83),
sensors.SensorReading(
sensor: sensors.ParticalMatterTwoPointFive,
value: 10.68,
),
sensors.SensorReading(sensor: sensors.ParticalMatterTen, value: 16.619719),
])
}