diff --git a/drivers/SmartThings/matter-rvc/src/init.lua b/drivers/SmartThings/matter-rvc/src/init.lua index 4c1da25b0f..7785f1a74a 100644 --- a/drivers/SmartThings/matter-rvc/src/init.lua +++ b/drivers/SmartThings/matter-rvc/src/init.lua @@ -104,9 +104,9 @@ local function update_supported_arguments(device, current_run_mode, operating_st -- Get the tag of the current run mode local current_tag = 0xFFFF local supported_run_modes = device:get_field(RUN_MODE_SUPPORTED_MODES) or {} - for i, mode in ipairs(supported_run_modes) do - if mode[1] == current_run_mode then - current_tag = mode[2] + for _, mode in ipairs(supported_run_modes) do + if mode.label == current_run_mode then + current_tag = mode.tag break end end @@ -126,9 +126,9 @@ local function update_supported_arguments(device, current_run_mode, operating_st -- Set supported run arguments local supported_arguments = {} -- For generic plugin - for i, mode in ipairs(supported_run_modes) do - if mode[2] == clusters.RvcRunMode.types.ModeTag.IDLE or can_be_non_idle == true then - table.insert(supported_arguments, mode[1]) + for _, mode in ipairs(supported_run_modes) do + if mode.tag == clusters.RvcRunMode.types.ModeTag.IDLE or can_be_non_idle == true then + table.insert(supported_arguments, mode.label) end end @@ -140,8 +140,8 @@ local function update_supported_arguments(device, current_run_mode, operating_st -- Set supported clean arguments local supported_clean_modes = device:get_field(CLEAN_MODE_SUPPORTED_MODES) or {} supported_arguments = {} - for i, mode in ipairs(supported_clean_modes) do - table.insert(supported_arguments, mode) + for _, mode in ipairs(supported_clean_modes) do + table.insert(supported_arguments, mode.label) end -- Send event to set supported clean modes @@ -155,13 +155,13 @@ end -- Matter Handlers -- local function run_mode_supported_mode_handler(driver, device, ib, response) local supported_modes = {} - local supported_modes_with_tag = {} - for i, mode in ipairs(ib.data.elements) do + local supported_modes_id_tag = {} + for _, mode in ipairs(ib.data.elements) do if version.api < 10 then clusters.RvcRunMode.types.ModeOptionStruct:augment_type(mode) end local tag = 0xFFFF - for i, t in ipairs(mode.elements.mode_tags.elements) do + for _, t in ipairs(mode.elements.mode_tags.elements) do if t.elements.value.value == clusters.RvcRunMode.types.ModeTag.IDLE then tag = clusters.RvcRunMode.types.ModeTag.IDLE break @@ -175,10 +175,10 @@ local function run_mode_supported_mode_handler(driver, device, ib, response) end if tag ~= 0xFFFF then table.insert(supported_modes, mode.elements.label.value) - table.insert(supported_modes_with_tag, {mode.elements.label.value, tag}) + table.insert(supported_modes_id_tag, { label = mode.elements.label.value, id = mode.elements.mode.value, tag = tag }) end end - device:set_field(RUN_MODE_SUPPORTED_MODES, supported_modes_with_tag, { persist = true }) + device:set_field(RUN_MODE_SUPPORTED_MODES, supported_modes_id_tag, { persist = true }) -- Update Supported Modes local component = device.profile.components["runMode"] @@ -203,12 +203,12 @@ local function run_mode_current_mode_handler(driver, device, ib, response) device.log.info(string.format("run_mode_current_mode_handler currentMode: %s", ib.data.value)) -- Get label of current mode - local mode_index = ib.data.value + local mode_id = ib.data.value local supported_run_mode = device:get_field(RUN_MODE_SUPPORTED_MODES) or {} local current_run_mode = nil - for i, mode in ipairs(supported_run_mode) do - if i - 1 == mode_index then - current_run_mode = mode[1] + for _, mode in ipairs(supported_run_mode) do + if mode.id == mode_id then + current_run_mode = mode.label end end if current_run_mode == nil then @@ -231,13 +231,15 @@ end local function clean_mode_supported_mode_handler(driver, device, ib, response) device.log.info(string.format("clean_mode_supported_mode_handler")) local supported_modes = {} - for i, mode in ipairs(ib.data.elements) do + local supported_modes_id = {} + for _, mode in ipairs(ib.data.elements) do if version.api < 10 then clusters.RvcRunMode.types.ModeOptionStruct:augment_type(mode) end table.insert(supported_modes, mode.elements.label.value) + table.insert(supported_modes_id, { label = mode.elements.label.value, id = mode.elements.mode.value }) end - device:set_field(CLEAN_MODE_SUPPORTED_MODES, supported_modes, { persist = true }) + device:set_field(CLEAN_MODE_SUPPORTED_MODES, supported_modes_id, { persist = true }) local component = device.profile.components["cleanMode"] local event = capabilities.mode.supportedModes(supported_modes, {visibility = {displayed = false}}) @@ -248,12 +250,12 @@ end local function clean_mode_current_mode_handler(driver, device, ib, response) device.log.info(string.format("clean_mode_current_mode_handler currentMode: %s", ib.data.value)) - local mode_index = ib.data.value + local mode_id = ib.data.value local supported_clean_mode = device:get_field(CLEAN_MODE_SUPPORTED_MODES) or {} - for i, mode in ipairs(supported_clean_mode) do - if i - 1 == mode_index then + for _, mode in ipairs(supported_clean_mode) do + if mode.id == mode_id then local component = device.profile.components["cleanMode"] - device:emit_component_event(component, capabilities.mode.mode(mode)) + device:emit_component_event(component, capabilities.mode.mode(mode.label)) break end end @@ -329,17 +331,19 @@ local function handle_robot_cleaner_mode(driver, device, cmd) local endpoint_id = device:component_to_endpoint(cmd.component) if cmd.component == "runMode" then local supported_modes = device:get_field(RUN_MODE_SUPPORTED_MODES) or {} - for i, mode in ipairs(supported_modes) do - if cmd.args.mode == mode[1] then - device:send(clusters.RvcRunMode.commands.ChangeToMode(device, endpoint_id, i - 1)) + for _, mode in ipairs(supported_modes) do + if cmd.args.mode == mode.label then + device.log.info(string.format("mode.label: %s, mode.id: %s", mode.label, mode.id)) + device:send(clusters.RvcRunMode.commands.ChangeToMode(device, endpoint_id, mode.id)) return end end elseif cmd.component == "cleanMode" then local supported_modes = device:get_field(CLEAN_MODE_SUPPORTED_MODES) or {} - for i, mode in ipairs(supported_modes) do - if cmd.args.mode == mode then - device:send(clusters.RvcCleanMode.commands.ChangeToMode(device, endpoint_id, i - 1)) + for _, mode in ipairs(supported_modes) do + if cmd.args.mode == mode.label then + device.log.info(string.format("mode.label: %s, mode.id: %s", mode.label, mode.id)) + device:send(clusters.RvcCleanMode.commands.ChangeToMode(device, endpoint_id, mode.id)) return end end diff --git a/drivers/SmartThings/matter-rvc/src/test/test_matter_rvc.lua b/drivers/SmartThings/matter-rvc/src/test/test_matter_rvc.lua index 491663967f..32a7229ba2 100644 --- a/drivers/SmartThings/matter-rvc/src/test/test_matter_rvc.lua +++ b/drivers/SmartThings/matter-rvc/src/test/test_matter_rvc.lua @@ -86,21 +86,45 @@ test.set_test_init_function(test_init) local modeTagStruct = require "RvcRunMode.types.ModeTagStruct" +local IDLE_MODE = { label = "Idle Mode", mode = 0, mode_tags = { modeTagStruct({ mfg_code = 0x1E1E, value = 16384 }) } } +local CLEANING_MODE = { label = "Cleaning Mode", mode = 2, mode_tags = { modeTagStruct({ mfg_code = 0x1E1E, value = 16385 }) } } +local MAPPING_MODE = { label = "Mapping Mode", mode = 4, mode_tags = { modeTagStruct({ mfg_code = 0x1E1E, value = 16386 }) } } + +-- The `mode` fields for these are purposely out-of-order, so that we can make sure we aren't reliant on ordering. +local RUN_MODES = { + MAPPING_MODE, + IDLE_MODE, + CLEANING_MODE, +} + +local RUN_MODE_LABELS = { RUN_MODES[1].label, RUN_MODES[2].label, RUN_MODES[3].label } + +local CLEAN_MODE_1 = { label = "Clean Mode 1", mode = 0, mode_tags = { modeTagStruct({ mfg_code = 0x1E1E, value = 1 }) } } +local CLEAN_MODE_2 = { label = "Clean Mode 2", mode = 1, mode_tags = { modeTagStruct({ mfg_code = 0x1E1E, value = 2 }) } } + +-- The `mode` fields for these are purposely out-of-order, so that we can make sure we aren't reliant on ordering. +local CLEAN_MODES = { + CLEAN_MODE_2, + CLEAN_MODE_1, +} + +local CLEAN_MODE_LABELS = { CLEAN_MODES[1].label, CLEAN_MODES[2].label } + local function supported_run_mode_init() test.socket.matter:__queue_receive({ mock_device.id, clusters.RvcRunMode.attributes.SupportedModes:build_test_report_data(mock_device, APPLICATION_ENDPOINT, { - clusters.RvcRunMode.types.ModeOptionStruct({ ["label"] = "Idle Mode", ["mode"] = 0, ["mode_tags"] = { modeTagStruct({ ["mfg_code"] = 0x1E1E, ["value"] = 16384 }) } }), - clusters.RvcRunMode.types.ModeOptionStruct({ ["label"] = "Cleaning Mode", ["mode"] = 1, ["mode_tags"] = { modeTagStruct({ ["mfg_code"] = 0x1E1E, ["value"] = 16385 }) } }), - clusters.RvcRunMode.types.ModeOptionStruct({ ["label"] = "Mapping Mode", ["mode"] = 2, ["mode_tags"] = { modeTagStruct({ ["mfg_code"] = 0x1E1E, ["value"] = 16386 }) } }) + clusters.RvcRunMode.types.ModeOptionStruct(RUN_MODES[1]), + clusters.RvcRunMode.types.ModeOptionStruct(RUN_MODES[2]), + clusters.RvcRunMode.types.ModeOptionStruct(RUN_MODES[3]), } ) }) test.socket.capability:__expect_send( mock_device:generate_test_message( "runMode", - capabilities.mode.supportedModes({ "Idle Mode", "Cleaning Mode", "Mapping Mode" }, { visibility = { displayed = false } }) + capabilities.mode.supportedModes(RUN_MODE_LABELS, { visibility = { displayed = false } }) ) ) end @@ -110,21 +134,21 @@ local function supported_clean_mode_init() mock_device.id, clusters.RvcCleanMode.attributes.SupportedModes:build_test_report_data(mock_device, APPLICATION_ENDPOINT, { - clusters.RvcCleanMode.types.ModeOptionStruct({ ["label"] = "Clean Mode 1", ["mode"] = 0, ["mode_tags"] = { modeTagStruct({ ["mfg_code"] = 0x1E1E, ["value"] = 1 }) } }), - clusters.RvcCleanMode.types.ModeOptionStruct({ ["label"] = "Clean Mode 2", ["mode"] = 1, ["mode_tags"] = { modeTagStruct({ ["mfg_code"] = 0x1E1E, ["value"] = 2 }) } }) + clusters.RvcCleanMode.types.ModeOptionStruct(CLEAN_MODES[1]), + clusters.RvcCleanMode.types.ModeOptionStruct(CLEAN_MODES[2]), } ) }) test.socket.capability:__expect_send( mock_device:generate_test_message( "cleanMode", - capabilities.mode.supportedModes({ "Clean Mode 1", "Clean Mode 2" }, { visibility = { displayed = false } }) + capabilities.mode.supportedModes(CLEAN_MODE_LABELS, { visibility = { displayed = false } }) ) ) test.socket.capability:__expect_send( mock_device:generate_test_message( "cleanMode", - capabilities.mode.supportedArguments({ "Clean Mode 1", "Clean Mode 2" }, { visibility = { displayed = false } }) + capabilities.mode.supportedArguments(CLEAN_MODE_LABELS, { visibility = { displayed = false } }) ) ) end @@ -156,25 +180,25 @@ test.register_coroutine_test( clusters.RvcRunMode.attributes.CurrentMode:build_test_report_data( mock_device, APPLICATION_ENDPOINT, - 0 + IDLE_MODE.mode ) }) test.socket.capability:__expect_send( mock_device:generate_test_message( "runMode", - capabilities.mode.mode({value = "Idle Mode"}) + capabilities.mode.mode({value = IDLE_MODE.label}) ) ) test.socket.capability:__expect_send( mock_device:generate_test_message( "runMode", - capabilities.mode.supportedArguments({ "Idle Mode", "Cleaning Mode", "Mapping Mode" }, { visibility = { displayed = false } }) + capabilities.mode.supportedArguments(RUN_MODE_LABELS, { visibility = { displayed = false } }) ) ) test.socket.capability:__expect_send( mock_device:generate_test_message( "cleanMode", - capabilities.mode.supportedArguments({ "Clean Mode 1", "Clean Mode 2" }, { visibility = { displayed = false } }) + capabilities.mode.supportedArguments(CLEAN_MODE_LABELS, { visibility = { displayed = false } }) ) ) end @@ -190,25 +214,25 @@ test.register_coroutine_test( clusters.RvcRunMode.attributes.CurrentMode:build_test_report_data( mock_device, APPLICATION_ENDPOINT, - 1 + CLEANING_MODE.mode ) }) test.socket.capability:__expect_send( mock_device:generate_test_message( "runMode", - capabilities.mode.mode({value = "Cleaning Mode"}) + capabilities.mode.mode({value = CLEANING_MODE.label}) ) ) test.socket.capability:__expect_send( mock_device:generate_test_message( "runMode", - capabilities.mode.supportedArguments({ "Idle Mode" }, { visibility = { displayed = false } }) + capabilities.mode.supportedArguments({ IDLE_MODE.label }, { visibility = { displayed = false } }) ) ) test.socket.capability:__expect_send( mock_device:generate_test_message( "cleanMode", - capabilities.mode.supportedArguments({ "Clean Mode 1", "Clean Mode 2" }, { visibility = { displayed = false } }) + capabilities.mode.supportedArguments(CLEAN_MODE_LABELS, { visibility = { displayed = false } }) ) ) end @@ -224,25 +248,25 @@ test.register_coroutine_test( clusters.RvcRunMode.attributes.CurrentMode:build_test_report_data( mock_device, APPLICATION_ENDPOINT, - 2 + MAPPING_MODE.mode ) }) test.socket.capability:__expect_send( mock_device:generate_test_message( "runMode", - capabilities.mode.mode({value = "Mapping Mode"}) + capabilities.mode.mode({value = MAPPING_MODE.label}) ) ) test.socket.capability:__expect_send( mock_device:generate_test_message( "runMode", - capabilities.mode.supportedArguments({ "Idle Mode" }, { visibility = { displayed = false } }) + capabilities.mode.supportedArguments({ IDLE_MODE.label }, { visibility = { displayed = false } }) ) ) test.socket.capability:__expect_send( mock_device:generate_test_message( "cleanMode", - capabilities.mode.supportedArguments({ "Clean Mode 1", "Clean Mode 2" }, { visibility = { displayed = false } }) + capabilities.mode.supportedArguments(CLEAN_MODE_LABELS, { visibility = { displayed = false } }) ) ) end @@ -253,34 +277,22 @@ test.register_coroutine_test( supported_run_mode_init() supported_clean_mode_init() operating_state_init() - test.socket.matter:__queue_receive({ - mock_device.id, - clusters.RvcCleanMode.attributes.CurrentMode:build_test_report_data( - mock_device, - APPLICATION_ENDPOINT, - 0 + for _, cleanMode in ipairs(CLEAN_MODES) do + test.socket.matter:__queue_receive({ + mock_device.id, + clusters.RvcCleanMode.attributes.CurrentMode:build_test_report_data( + mock_device, + APPLICATION_ENDPOINT, + cleanMode.mode + ) + }) + test.socket.capability:__expect_send( + mock_device:generate_test_message( + "cleanMode", + capabilities.mode.mode({value = cleanMode.label}) + ) ) - }) - test.socket.capability:__expect_send( - mock_device:generate_test_message( - "cleanMode", - capabilities.mode.mode({value = "Clean Mode 1"}) - ) - ) - test.socket.matter:__queue_receive({ - mock_device.id, - clusters.RvcCleanMode.attributes.CurrentMode:build_test_report_data( - mock_device, - APPLICATION_ENDPOINT, - 1 - ) - }) - test.socket.capability:__expect_send( - mock_device:generate_test_message( - "cleanMode", - capabilities.mode.mode({value = "Clean Mode 2"}) - ) - ) + end end ) @@ -288,14 +300,16 @@ test.register_coroutine_test( "On changing the rvc run mode, appropriate RvcRunMode command must be sent to the device", function() supported_run_mode_init() test.wait_for_events() - test.socket.capability:__queue_receive({ - mock_device.id, - { capability = "mode", component = "runMode", command = "setMode", args = { "Idle Mode" } } - }) - test.socket.matter:__expect_send({ - mock_device.id, - clusters.RvcRunMode.server.commands.ChangeToMode(mock_device, APPLICATION_ENDPOINT, 0) - }) + for _, runMode in ipairs(RUN_MODES) do + test.socket.capability:__queue_receive({ + mock_device.id, + { capability = "mode", component = "runMode", command = "setMode", args = { runMode.label } } + }) + test.socket.matter:__expect_send({ + mock_device.id, + clusters.RvcRunMode.server.commands.ChangeToMode(mock_device, APPLICATION_ENDPOINT, runMode.mode) + }) + end end ) @@ -303,61 +317,16 @@ test.register_coroutine_test( "On changing the rvc clean mode, appropriate RvcCleanMode command must be sent to the device", function() supported_clean_mode_init() test.wait_for_events() - test.socket.capability:__queue_receive({ - mock_device.id, - { capability = "mode", component = "cleanMode", command = "setMode", args = { "Clean Mode 1" } } - }) - test.socket.matter:__expect_send({ - mock_device.id, - clusters.RvcCleanMode.server.commands.ChangeToMode(mock_device, APPLICATION_ENDPOINT, 0) - }) - end -) - -test.register_coroutine_test( - "On changing the operatinalState to STOPPED, robotCleanerOperatingState must be set to the appropriate value", function() - supported_run_mode_init() - supported_clean_mode_init() - test.socket.matter:__queue_receive({ - mock_device.id, - clusters.RvcRunMode.attributes.CurrentMode:build_test_report_data( - mock_device, - APPLICATION_ENDPOINT, - 0 - ) - }) - test.socket.capability:__expect_send( - mock_device:generate_test_message( - "runMode", - capabilities.mode.mode({value = "Idle Mode"}) - ) - ) - test.socket.matter:__queue_receive({ - mock_device.id, - clusters.RvcOperationalState.server.attributes.OperationalState:build_test_report_data( - mock_device, - APPLICATION_ENDPOINT, - clusters.OperationalState.types.OperationalStateEnum.STOPPED - ) - }) - test.socket.capability:__expect_send( - mock_device:generate_test_message( - "main", - capabilities.robotCleanerOperatingState.operatingState.stopped() - ) - ) - test.socket.capability:__expect_send( - mock_device:generate_test_message( - "runMode", - capabilities.mode.supportedArguments({ "Idle Mode", "Cleaning Mode", "Mapping Mode" }, { visibility = { displayed = false } }) - ) - ) - test.socket.capability:__expect_send( - mock_device:generate_test_message( - "cleanMode", - capabilities.mode.supportedArguments({ "Clean Mode 1", "Clean Mode 2" }, { visibility = { displayed = false } }) - ) - ) + for _, cleanMode in ipairs(CLEAN_MODES) do + test.socket.capability:__queue_receive({ + mock_device.id, + { capability = "mode", component = "cleanMode", command = "setMode", args = { cleanMode.label } } + }) + test.socket.matter:__expect_send({ + mock_device.id, + clusters.RvcCleanMode.server.commands.ChangeToMode(mock_device, APPLICATION_ENDPOINT, cleanMode.mode) + }) + end end ) @@ -370,13 +339,13 @@ test.register_coroutine_test( clusters.RvcRunMode.attributes.CurrentMode:build_test_report_data( mock_device, APPLICATION_ENDPOINT, - 0 + IDLE_MODE.mode ) }) test.socket.capability:__expect_send( mock_device:generate_test_message( "runMode", - capabilities.mode.mode({value = "Idle Mode"}) + capabilities.mode.mode({value = IDLE_MODE.label}) ) ) test.socket.matter:__queue_receive({ @@ -396,13 +365,13 @@ test.register_coroutine_test( test.socket.capability:__expect_send( mock_device:generate_test_message( "runMode", - capabilities.mode.supportedArguments({ "Idle Mode" }, { visibility = { displayed = false } }) + capabilities.mode.supportedArguments({ IDLE_MODE.label }, { visibility = { displayed = false } }) ) ) test.socket.capability:__expect_send( mock_device:generate_test_message( "cleanMode", - capabilities.mode.supportedArguments({ "Clean Mode 1", "Clean Mode 2" }, { visibility = { displayed = false } }) + capabilities.mode.supportedArguments(CLEAN_MODE_LABELS, { visibility = { displayed = false } }) ) ) end @@ -417,13 +386,13 @@ test.register_coroutine_test( clusters.RvcRunMode.attributes.CurrentMode:build_test_report_data( mock_device, APPLICATION_ENDPOINT, - 0 + IDLE_MODE.mode ) }) test.socket.capability:__expect_send( mock_device:generate_test_message( "runMode", - capabilities.mode.mode({value = "Idle Mode"}) + capabilities.mode.mode({value = IDLE_MODE.label}) ) ) test.socket.matter:__queue_receive({ @@ -443,13 +412,13 @@ test.register_coroutine_test( test.socket.capability:__expect_send( mock_device:generate_test_message( "runMode", - capabilities.mode.supportedArguments({ "Idle Mode", "Cleaning Mode", "Mapping Mode" }, { visibility = { displayed = false } }) + capabilities.mode.supportedArguments(RUN_MODE_LABELS, { visibility = { displayed = false } }) ) ) test.socket.capability:__expect_send( mock_device:generate_test_message( "cleanMode", - capabilities.mode.supportedArguments({ "Clean Mode 1", "Clean Mode 2" }, { visibility = { displayed = false } }) + capabilities.mode.supportedArguments(CLEAN_MODE_LABELS, { visibility = { displayed = false } }) ) ) end @@ -464,13 +433,13 @@ test.register_coroutine_test( clusters.RvcRunMode.attributes.CurrentMode:build_test_report_data( mock_device, APPLICATION_ENDPOINT, - 0 + IDLE_MODE.mode ) }) test.socket.capability:__expect_send( mock_device:generate_test_message( "runMode", - capabilities.mode.mode({value = "Idle Mode"}) + capabilities.mode.mode({value = IDLE_MODE.label}) ) ) test.socket.matter:__queue_receive({ @@ -490,13 +459,13 @@ test.register_coroutine_test( test.socket.capability:__expect_send( mock_device:generate_test_message( "runMode", - capabilities.mode.supportedArguments({ "Idle Mode" }, { visibility = { displayed = false } }) + capabilities.mode.supportedArguments({ IDLE_MODE.label }, { visibility = { displayed = false } }) ) ) test.socket.capability:__expect_send( mock_device:generate_test_message( "cleanMode", - capabilities.mode.supportedArguments({ "Clean Mode 1", "Clean Mode 2" }, { visibility = { displayed = false } }) + capabilities.mode.supportedArguments(CLEAN_MODE_LABELS, { visibility = { displayed = false } }) ) ) end @@ -511,13 +480,13 @@ test.register_coroutine_test( clusters.RvcRunMode.attributes.CurrentMode:build_test_report_data( mock_device, APPLICATION_ENDPOINT, - 0 + IDLE_MODE.mode ) }) test.socket.capability:__expect_send( mock_device:generate_test_message( "runMode", - capabilities.mode.mode({value = "Idle Mode"}) + capabilities.mode.mode({value = IDLE_MODE.label}) ) ) test.socket.matter:__queue_receive({ @@ -537,13 +506,13 @@ test.register_coroutine_test( test.socket.capability:__expect_send( mock_device:generate_test_message( "runMode", - capabilities.mode.supportedArguments({ "Idle Mode", "Cleaning Mode", "Mapping Mode" }, { visibility = { displayed = false } }) + capabilities.mode.supportedArguments(RUN_MODE_LABELS, { visibility = { displayed = false } }) ) ) test.socket.capability:__expect_send( mock_device:generate_test_message( "cleanMode", - capabilities.mode.supportedArguments({ "Clean Mode 1", "Clean Mode 2" }, { visibility = { displayed = false } }) + capabilities.mode.supportedArguments(CLEAN_MODE_LABELS, { visibility = { displayed = false } }) ) ) end @@ -558,13 +527,13 @@ test.register_coroutine_test( clusters.RvcRunMode.attributes.CurrentMode:build_test_report_data( mock_device, APPLICATION_ENDPOINT, - 0 + IDLE_MODE.mode ) }) test.socket.capability:__expect_send( mock_device:generate_test_message( "runMode", - capabilities.mode.mode({value = "Idle Mode"}) + capabilities.mode.mode({value = IDLE_MODE.label}) ) ) test.socket.matter:__queue_receive({ @@ -584,13 +553,13 @@ test.register_coroutine_test( test.socket.capability:__expect_send( mock_device:generate_test_message( "runMode", - capabilities.mode.supportedArguments({ "Idle Mode", "Cleaning Mode", "Mapping Mode" }, { visibility = { displayed = false } }) + capabilities.mode.supportedArguments(RUN_MODE_LABELS, { visibility = { displayed = false } }) ) ) test.socket.capability:__expect_send( mock_device:generate_test_message( "cleanMode", - capabilities.mode.supportedArguments({ "Clean Mode 1", "Clean Mode 2" }, { visibility = { displayed = false } }) + capabilities.mode.supportedArguments(CLEAN_MODE_LABELS, { visibility = { displayed = false } }) ) ) end @@ -605,13 +574,13 @@ test.register_coroutine_test( clusters.RvcRunMode.attributes.CurrentMode:build_test_report_data( mock_device, APPLICATION_ENDPOINT, - 0 + IDLE_MODE.mode ) }) test.socket.capability:__expect_send( mock_device:generate_test_message( "runMode", - capabilities.mode.mode({value = "Idle Mode"}) + capabilities.mode.mode({value = IDLE_MODE.label}) ) ) test.socket.matter:__queue_receive({