DEV: Raise an error in test env when I18n interpolate argument is missing (#23527)

Why this change?

We have been bitten by bugs where tests are not catching missing
interpolate argument in our client side code because the JavaScript
tests are also using `I18n.translate` to assert that the right message
is shown. Before this change, `I18n.interpolate` will just replace the
missing interpolation argument in the final translation with some
placeholder. As a result, we ended up comparing a broken translation
with another broken translation in the test environment.

Why does this change do?

This change introduces the `I18n.testing` property which when set to
`true` will cause `I18n.translate` to throw an error when an interpolate
argument is missing. With this commit, we also set `I18n.testing = true`
when running qunit acceptance test.
This commit is contained in:
Alan Guo Xiang Tan
2023-09-13 10:53:48 +08:00
committed by GitHub
parent 7ab94d0ec6
commit 038de393ed
11 changed files with 97 additions and 23 deletions

View File

@@ -17,6 +17,7 @@ acceptance("Chat | Mentions", function (needs) {
current_user_membership: { following: true },
allow_channel_wide_mentions: false,
chatable: { id: 1 },
title: "Some title",
};
needs.settings({ chat_enabled: true });