Files
esphome/tests/components/espectre/sensor/espectre_diagnostics_test.cpp

29 lines
882 B
C++

#include "gtest/gtest.h"
#include "esphome/components/espectre/sensor/espectre_diagnostics.h"
#ifdef ESPECTRE_SDK_TEST_DOUBLE
namespace esphome::espectre::testing {
TEST(ESPectreDiagnosticsTest, PublishOnUpdate) {
ESPectreComponent component;
auto *sdk = ::espectre::RuntimeFrontendController::instance;
sensor::Sensor accepted;
sensor::Sensor occupancy;
DiagnosticsUpdater updater(&component);
updater.set_csi_accepted_rate_sensor(&accepted);
updater.set_csi_occupancy_sensor(&occupancy);
component.setup();
sdk->diagnostics_sample_.csi_accepted_pps = 98.5f;
sdk->diagnostics_sample_.csi_occupancy_ratio = 0.9f;
component.loop();
EXPECT_FALSE(accepted.has_state());
updater.update();
EXPECT_FLOAT_EQ(accepted.state, 98.5f);
EXPECT_FLOAT_EQ(occupancy.state, 90.0f);
}
} // namespace esphome::espectre::testing
#endif // ESPECTRE_SDK_TEST_DOUBLE