@@ -234,6 +234,32 @@ defmodule TeslaMate.Mqtt.PubSub.HomeAssistantTest do
234234 "{{ value | replace('_', ' ') | title }}"
235235 end
236236
237+ test "derives charging status from the charging state" , % { test: name } do
238+ publisher_name = start_publisher ( name )
239+
240+ :ok = HomeAssistant . publish ( @ summary , [ car_id: 0 ] , { MqttPublisherMock , publisher_name } )
241+
242+ { _topic , decoded } = receive_device_config ( )
243+ components = decoded [ "components" ]
244+
245+ charging_state = components [ "charging_state" ]
246+ assert charging_state [ "platform" ] == "sensor"
247+ assert charging_state [ "state_topic" ] == "teslamate/cars/0/charging_state"
248+
249+ charging = components [ "charging" ]
250+ assert charging [ "platform" ] == "binary_sensor"
251+ assert charging [ "name" ] == "Charging"
252+ assert charging [ "device_class" ] == "battery_charging"
253+ assert charging [ "payload_on" ] == "true"
254+ assert charging [ "payload_off" ] == "false"
255+ assert charging [ "value_template" ] == "{{ 'true' if value == 'Charging' else 'false' }}"
256+ assert charging [ "icon" ] == "mdi:battery-charging"
257+ assert charging [ "state_topic" ] == "teslamate/cars/0/charging_state"
258+ assert charging [ "unique_id" ] == "teslamate_0_charging"
259+ assert charging [ "object_id" ] == "tesla_charging_state"
260+ refute Map . has_key? ( charging , "component_id" )
261+ end
262+
237263 test "derives the parking brake from documented shift states" , % { test: name } do
238264 publisher_name = start_publisher ( name )
239265
0 commit comments