-
-
Notifications
You must be signed in to change notification settings - Fork 34.3k
test: add coverage for napi_typeof #13990
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -34,3 +34,12 @@ assert.ok(test_general.testGetPrototype(baseObject) !== | |
| // test version management functions | ||
| // expected version is currently 1 | ||
| assert.strictEqual(test_general.testGetVersion(), 1); | ||
|
|
||
| [123, 'test string', function() {}, new Object(), true, | ||
| undefined, Symbol()].forEach((val) => { | ||
| assert.strictEqual(typeof val, typeof (test_general.testNapiTypeof(val))); | ||
|
||
| }); | ||
|
|
||
| // since typeof in js return object need to validate specific case | ||
| // for null | ||
| assert.strictEqual(null, test_general.testNapiTypeof(null)); | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -90,6 +90,41 @@ napi_value testNapiErrorCleanup(napi_env env, napi_callback_info info) { | |
| return result; | ||
| } | ||
|
|
||
| napi_value testNapiTypeof(napi_env env, napi_callback_info info) { | ||
| size_t argc = 1; | ||
| napi_value args[1]; | ||
| NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL)); | ||
|
|
||
| napi_valuetype object_type; | ||
|
||
| NAPI_CALL(env, napi_typeof(env, args[0], &object_type)); | ||
|
|
||
| napi_value result; | ||
| if (object_type == napi_number) { | ||
| NAPI_CALL(env ,napi_create_number(env, 42, &result)); | ||
|
||
| } else if (object_type == napi_string) { | ||
| NAPI_CALL(env, napi_create_string_utf8(env, "42", -1, &result)); | ||
| } else if (object_type == napi_function) { | ||
| NAPI_CALL(env, napi_create_function(env, | ||
| NULL, | ||
| testNapiTypeof, | ||
| NULL, | ||
| &result)); | ||
| } else if (object_type == napi_object) { | ||
| NAPI_CALL(env, napi_create_object(env, &result)); | ||
| } else if (object_type == napi_boolean) { | ||
| NAPI_CALL(env, napi_get_boolean(env, true, &result)); | ||
| } else if (object_type == napi_undefined) { | ||
| NAPI_CALL(env, napi_get_undefined(env, &result)); | ||
| } else if (object_type == napi_symbol) { | ||
| napi_value symbol_description; | ||
| NAPI_CALL(env, napi_create_string_utf8(env, "NameKeySymbol", -1, &symbol_description)); | ||
| NAPI_CALL(env, napi_create_symbol(env, symbol_description, &result)); | ||
| } else if (object_type == napi_null) { | ||
| NAPI_CALL(env, napi_get_null(env, &result)); | ||
| } | ||
| return result; | ||
| } | ||
|
|
||
| void Init(napi_env env, napi_value exports, napi_value module, void* priv) { | ||
| napi_property_descriptor descriptors[] = { | ||
| DECLARE_NAPI_PROPERTY("testStrictEquals", testStrictEquals), | ||
|
|
@@ -100,6 +135,7 @@ void Init(napi_env env, napi_value exports, napi_value module, void* priv) { | |
| DECLARE_NAPI_PROPERTY("getNull", getNull), | ||
| DECLARE_NAPI_PROPERTY("createNapiError", createNapiError), | ||
| DECLARE_NAPI_PROPERTY("testNapiErrorCleanup", testNapiErrorCleanup), | ||
| DECLARE_NAPI_PROPERTY("testNapiTypeof", testNapiTypeof), | ||
| }; | ||
|
|
||
| NAPI_CALL_RETURN_VOID(env, napi_define_properties( | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Small readability nit