diff --git a/src/gen/extend/x_napi_tool.js b/src/gen/extend/x_napi_tool.js index acdfb46f269b04b99526bb91c0917f5f8af9765d..1db467cd03203ac6dac3693b2c7d7145edbc8b42 100644 --- a/src/gen/extend/x_napi_tool.js +++ b/src/gen/extend/x_napi_tool.js @@ -290,8 +290,10 @@ uint32_t XNapiTool::GetMapLength(napi_value value) napi_value XNapiTool::GetMapElementName(napi_value value, uint32_t p) { + napi_value name_result; + napi_get_property_names(env_, value, &name_result); napi_value result; - napi_status result_status = napi_get_element(env_, value, p, &result); + napi_status result_status = napi_get_element(env_, name_result, p, &result); CC_ASSERT(result_status == napi_ok); return result; } diff --git a/test/storytest/test_map/@ohos.test.d.ts b/test/storytest/test_map/@ohos.test.d.ts index 9622008779737cbe00c7373f33c7c9f5f22e0bef..9eaddd85e1e9ad39d3a576358b4070b8efa096cf 100644 --- a/test/storytest/test_map/@ohos.test.d.ts +++ b/test/storytest/test_map/@ohos.test.d.ts @@ -14,15 +14,11 @@ */ declare namespace napitest { interface TestClass1 { - map1 : {[key: string]: number} ; - map2 : {[key: string]: string} ; - map3 : {[key: string]: boolean} ; + map1 : {[key: string]: string} ; } interface TestClass2 { - fun1(v: {[key: string]: string}): {[key: string]: string}; - fun1(v: {[key: string]: number}): {[key: string]: number}; - fun1(v: {[key: string]: boolean}): {[key: string]: boolean}; + fun1(v: {[key: string]: string}): number; } } export default napitest; \ No newline at end of file diff --git a/test/storytest/test_map/test.js b/test/storytest/test_map/test.js index 7ed0fa72abb846b55fb12f2ea7dd673819fd0584..b97c3e0454523ea3323d218853170750e84b3aa5 100644 --- a/test/storytest/test_map/test.js +++ b/test/storytest/test_map/test.js @@ -12,27 +12,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const { TestClass1,TestClass2 } = require("./out/build/Release/napitest") +const { TestClass1 ,TestClass2 } = require("./out/build/Release/napitest") var assert = require("assert"); describe('Map', function () { - it('test fun1', function () { - let testMap1 = {"name":"jonas","age":"18"}; - let ret = fun1(testMap1); - assert.strictEqual(ret, {}); + it('test TestClass2 fun1', function () { + let tc2 = new TestClass2(); + let ret = tc2.fun1({"age":"ageValue","name":"nameValue"}); + assert.strictEqual(ret, 0); }); - - it('test fun2', function () { - let testMap2 = {"name": 666,"age": 18}; - let ret = fun1(testMap2); - assert.strictEqual(ret, {}); - }); - - it('test fun3', function () { - let testMap3 = {"name": true,"age": false}; - let ret = fun1(testMap3); - assert.strictEqual(ret, {}); - }); - + }); \ No newline at end of file