diff --git a/packages/scene-composer/src/utils/dataBindingVariableUtils.spec.ts b/packages/scene-composer/src/utils/dataBindingVariableUtils.spec.ts index a82343ad2..4ec9c3a50 100644 --- a/packages/scene-composer/src/utils/dataBindingVariableUtils.spec.ts +++ b/packages/scene-composer/src/utils/dataBindingVariableUtils.spec.ts @@ -1,7 +1,9 @@ import { replaceBindingVariables } from './dataBindingVariableUtils'; describe('replaceBindingVariables', () => { - const bindingValuesMap: Record = { + const bindingValuesMap: Record = { + zero: 0, + false: false, 'binding a': '11', 'binding~!@#$%^&*()': '22', '<随机>': '33', @@ -15,6 +17,22 @@ describe('replaceBindingVariables', () => { expect(result).toEqual(expected); }); + it('should replace variable with value 0 correctly', () => { + const original = 'abc ${zero} def,.'; + const expected = 'abc 0 def,.'; + + const result = replaceBindingVariables(original, bindingValuesMap); + expect(result).toEqual(expected); + }); + + it('should replace variable with value false correctly', () => { + const original = 'abc ${false} def,.'; + const expected = 'abc false def,.'; + + const result = replaceBindingVariables(original, bindingValuesMap); + expect(result).toEqual(expected); + }); + it('should replace variable containing special character with value correctly', () => { const original = 'abc ${binding~!@#$%^&*()} def,.'; const expected = 'abc 22 def,.'; diff --git a/packages/scene-composer/src/utils/dataBindingVariableUtils.ts b/packages/scene-composer/src/utils/dataBindingVariableUtils.ts index 03dce951b..48ce4771c 100644 --- a/packages/scene-composer/src/utils/dataBindingVariableUtils.ts +++ b/packages/scene-composer/src/utils/dataBindingVariableUtils.ts @@ -2,7 +2,7 @@ const bindingVariableRegex = /\$\{.+?\}/gi; const UNAVAILABLE_DATA = '-'; -export function replaceBindingVariables(content: string, bindingValuesMap: Record): string { +export function replaceBindingVariables(content: string, bindingValuesMap: Record): string { let result = content; const variableMatches = content.match(bindingVariableRegex) || []; @@ -10,8 +10,8 @@ export function replaceBindingVariables(content: string, bindingValuesMap: Recor // Only support replace variable with their latest property value for now. variables.forEach((variable, index) => { // Display "-" when value not available - const value = bindingValuesMap[variable] || UNAVAILABLE_DATA; - result = result.replaceAll(variableMatches[index], value); + const value = bindingValuesMap[variable] ?? UNAVAILABLE_DATA; + result = result.replaceAll(variableMatches[index], String(value)); }); return result; diff --git a/release-please-config.json b/release-please-config.json index e312db5c0..2065fc95f 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -40,7 +40,7 @@ }, { "type": "linked-versions", - "group-name": "iot-app-kit", + "groupName": "iot-app-kit", "components": [ "root", "components",