diff --git a/CHANGELOG.md b/CHANGELOG.md index 2525aa66..ced50cee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## Unreleased + +- JS/TS server: Fix the JSDoc `@returns` type on generated factory functions to name the class they actually return ([#871](https://github.com/mozilla/glean_parser/pull/871)) + ## 22.0.0 - JS/TS server: Add support for `server-deletion-request` ping. Server apps can now add `server-deletion-request` to `send_in_pings` on identifier metrics (e.g. user IDs) ([DENG-4079](https://mozilla-hub.atlassian.net/browse/DENG-4079)) diff --git a/glean_parser/templates/javascript_server.jinja2 b/glean_parser/templates/javascript_server.jinja2 index f44247ab..18a4e191 100644 --- a/glean_parser/templates/javascript_server.jinja2 +++ b/glean_parser/templates/javascript_server.jinja2 @@ -265,7 +265,7 @@ class {{ ping|event_class_name(metrics_by_type) }} { * @param {string} appDisplayVersion - The application display version. * @param {string} channel - The channel. * @param {Object} logger_options - The logger options. - * @returns {EventsServerEventLogger} An instance of EventsServerEventLogger. + * @returns {{ "{" }}{{ ping|event_class_name(metrics_by_type) }}{{ "}" }} An instance of {{ ping|event_class_name(metrics_by_type) }}. */ {% if module_spec == "commonjs" %} module.exports.{{ ping|factory_method(metrics_by_type) }} = function ({ diff --git a/tests/test_javascript_server.py b/tests/test_javascript_server.py index 67bc00d2..4341c5cd 100644 --- a/tests/test_javascript_server.py +++ b/tests/test_javascript_server.py @@ -75,6 +75,8 @@ def test_parser_js_server(tmp_path): with (tmp_path / "server_events.js").open("r", encoding="utf-8") as fd: content = fd.read() assert "'event.name': event_name" in content + # JSDoc return type must match the class the factory returns + assert "@returns {AccountsEventsServerEvent}" in content def test_generate_ping_factory_method():