@@ -49,6 +49,7 @@ local mock_device_basic = test.mock_device.build_test_matter_device({
4949 {cluster_id = clusters .FanControl .ID , cluster_type = " SERVER" , feature_map = 0 },
5050 {cluster_id = clusters .HepaFilterMonitoring .ID , cluster_type = " SERVER" , feature_map = 7 },
5151 {cluster_id = clusters .ActivatedCarbonFilterMonitoring .ID , cluster_type = " SERVER" , feature_map = 7 },
52+ {cluster_id = clusters .OnOff .ID , cluster_type = " SERVER" }
5253 },
5354 device_types = {
5455 {device_type_id = 0x002D , device_type_revision = 1 } -- AP
@@ -256,7 +257,7 @@ local function test_init_ap_thermo_aqs_preconfigured()
256257 test .socket .matter :__expect_send ({ mock_device_ap_thermo_aqs .id , read_request })
257258
258259 test .socket .device_lifecycle :__queue_receive ({ mock_device_ap_thermo_aqs .id , " init" })
259- local subscribe_request = nil
260+ local subscribe_request
260261 for _ , attributes in pairs (cluster_subscribe_list_configured ) do
261262 for _ , attribute in ipairs (attributes ) do
262263 if subscribe_request == nil then
@@ -269,11 +270,13 @@ local function test_init_ap_thermo_aqs_preconfigured()
269270 test .socket .matter :__expect_send ({mock_device_ap_thermo_aqs .id , subscribe_request })
270271end
271272
272- local expected_update_metadata = {
273- optional_component_capabilities = {
273+ local expected_update_metadata = {
274+ optional_component_capabilities = {
274275 {
275276 " main" ,
276- {},
277+ {
278+ " switch" ,
279+ },
277280 },
278281 {
279282 " activatedCarbonFilter" ,
@@ -293,13 +296,6 @@ local expected_update_metadata= {
293296 profile = " air-purifier-modular" ,
294297}
295298
296- local subscribe_request = cluster_subscribe_list [1 ]:subscribe (mock_device_basic )
297- for i , cluster in ipairs (cluster_subscribe_list ) do
298- if i > 1 then
299- subscribe_request :merge (cluster :subscribe (mock_device_basic ))
300- end
301- end
302-
303299test .register_coroutine_test (
304300 " Test profile change on init for basic Air Purifier device" ,
305301 function ()
@@ -313,13 +309,20 @@ test.register_coroutine_test(
313309 {enabled_optional_capabilities = expected_update_metadata .optional_component_capabilities }
314310 )
315311 test .socket .device_lifecycle :__queue_receive (mock_device_basic :generate_info_changed ({ profile = updated_device_profile }))
312+ local subscribe_request = cluster_subscribe_list [1 ]:subscribe (mock_device_basic )
313+ for i , cluster in ipairs (cluster_subscribe_list ) do
314+ if i > 1 then
315+ subscribe_request :merge (cluster :subscribe (mock_device_basic ))
316+ end
317+ end
318+ subscribe_request :merge (clusters .OnOff .attributes .OnOff :subscribe (mock_device_basic ))
316319 test .socket .matter :__expect_send ({mock_device_basic .id , subscribe_request })
317320 end ,
318321 { test_init = test_init_basic }
319322)
320323
321- local expected_update_metadata = {
322- optional_component_capabilities = {
324+ local expected_update_metadata_configured = {
325+ optional_component_capabilities = {
323326 {
324327 " main" ,
325328 {
@@ -358,17 +361,6 @@ local expected_update_metadata= {
358361 profile = " air-purifier-modular" ,
359362}
360363
361- local subscribe_request = nil
362- for _ , attributes in pairs (cluster_subscribe_list_configured ) do
363- for _ , attribute in ipairs (attributes ) do
364- if subscribe_request == nil then
365- subscribe_request = attribute :subscribe (mock_device_ap_thermo_aqs )
366- else
367- subscribe_request :merge (attribute :subscribe (mock_device_ap_thermo_aqs ))
368- end
369- end
370- end
371-
372364test .register_coroutine_test (
373365 " Test profile change on init for AP and Thermo and AQS combined device type" ,
374366 function ()
@@ -379,14 +371,24 @@ test.register_coroutine_test(
379371 mock_device_ap_thermo_aqs .id ,
380372 clusters .Thermostat .attributes .AttributeList :build_test_report_data (mock_device_ap_thermo_aqs , 1 , {uint32 (0 )})
381373 })
382- mock_device_ap_thermo_aqs :expect_metadata_update (expected_update_metadata )
374+ mock_device_ap_thermo_aqs :expect_metadata_update (expected_update_metadata_configured )
383375
384376 test .wait_for_events ()
385377
386378 local updated_device_profile = t_utils .get_profile_definition (" air-purifier-modular.yml" ,
387- {enabled_optional_capabilities = expected_update_metadata .optional_component_capabilities }
379+ {enabled_optional_capabilities = expected_update_metadata_configured .optional_component_capabilities }
388380 )
389381 test .socket .device_lifecycle :__queue_receive (mock_device_ap_thermo_aqs :generate_info_changed ({ profile = updated_device_profile }))
382+ local subscribe_request
383+ for _ , attributes in pairs (cluster_subscribe_list_configured ) do
384+ for _ , attribute in ipairs (attributes ) do
385+ if subscribe_request == nil then
386+ subscribe_request = attribute :subscribe (mock_device_ap_thermo_aqs )
387+ else
388+ subscribe_request :merge (attribute :subscribe (mock_device_ap_thermo_aqs ))
389+ end
390+ end
391+ end
390392 test .socket .matter :__expect_send ({mock_device_ap_thermo_aqs .id , subscribe_request })
391393 end ,
392394 { test_init = test_init_ap_thermo_aqs_preconfigured }
0 commit comments