Files
sure/test/controllers/wise_sca_localization_test.rb
T
852515833f fix(i18n): localize account creation keyboard controls (#3433)
* fix(i18n): localize account creation keyboard controls

* fix(test): isolate Wise localization success from encryption setup

---------

Signed-off-by: Juan José Mata <juanjo.mata@gmail.com>
Co-authored-by: Johns <19662585+Rowdy@users.noreply.github.com>
Co-authored-by: Juan José Mata <juanjo.mata@gmail.com>
2026-09-07 22:13:29 +02:00

99 lines
4.2 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
require "test_helper"
class WiseScaLocalizationTest < ActiveSupport::TestCase
KEYPAIR_RESULTS = {
"success" => "Neues SCA-Schlüsselpaar erzeugt. Registriere den öffentlichen Schlüssel bei Wise, um die Einrichtung abzuschließen.",
"failed" => "Das neue SCA-Schlüsselpaar ließ sich nicht erzeugen. Versuch es noch einmal."
}.freeze
TRANSLATIONS = {
"title" => "Starke Kundenauthentifizierung (SCA)",
"description" => "Wise benötigt eine signierte Einmal-Token-Challenge, um vollständige Kontoauszüge einschließlich eingehender Zahlungen abzurufen. Erzeuge hier ein Schlüsselpaar und registriere den öffentlichen Schlüssel bei Wise, um den vollständigen Abruf zu ermöglichen.",
"public_key_label" => "Öffentlicher Schlüssel (PEM)",
"registered_help_html" => "Registriere diesen Schlüssel bei Wise: Settings → Connect and manage apps → Developer tools → Public keys → Add public key.",
"copy" => "Kopieren",
"copied" => "Kopiert!",
"generate" => "Schlüsselpaar erzeugen",
"regenerate" => "Neues Schlüsselpaar erzeugen",
"regenerate_confirm" => "Dadurch wird ein neues Schlüsselpaar erzeugt. Wise akzeptiert den bisherigen öffentlichen Schlüssel weiterhin, bis du ihn selbst in deinem Wise-Konto entfernst Sure kann ihn nicht aus der Ferne widerrufen. Du musst den neuen öffentlichen Schlüssel bei Wise registrieren, bevor Kontoauszüge wieder synchronisiert werden können. Fortfahren?"
}.freeze
test "German Wise SCA copy matches the expected translations" do
TRANSLATIONS.each do |key, expected|
full_key = "wise_items.provider_panel.sca.#{key}"
assert I18n.exists?(full_key, :de, fallback: false), "de is missing #{full_key}"
assert_equal expected, I18n.t(full_key, locale: :de, resolve: false)
end
end
test "German Wise SCA keypair results match the expected translations" do
KEYPAIR_RESULTS.each do |key, expected|
full_key = "wise_items.generate_sca_keypair.#{key}"
assert I18n.exists?(full_key, :de, fallback: false), "de is missing #{full_key}"
assert_equal expected, I18n.t(full_key, locale: :de, resolve: false)
end
end
end
class WiseScaPanelLocalizationTest < ActionDispatch::IntegrationTest
setup do
ensure_tailwind_build
sign_in @user = users(:family_admin)
@user.update!(locale: "de")
end
test "German Wise panel renders the SCA setup state" do
get connect_form_settings_providers_path(provider_key: "wise")
assert_response :success
assert_sca_copy "title"
assert_sca_copy "description"
assert_sca_copy "generate"
end
test "German Wise panel renders configured SCA guidance and regeneration warning" do
WiseItem.any_instance.stubs(:sca_public_key).returns("SYNTHETIC PUBLIC KEY")
get connect_form_settings_providers_path(provider_key: "wise")
assert_response :success
assert_includes response.body, "SYNTHETIC PUBLIC KEY"
assert_sca_copy "public_key_label"
assert_sca_copy "registered_help_html"
assert_sca_copy "copy"
assert_sca_copy "copied"
assert_sca_copy "regenerate"
assert_sca_copy "regenerate_confirm"
end
# The key is only ever stored encrypted, and the test environment configures
# no encryption keys, so the flow has to be exercised as an install that does.
test "German Wise SCA keypair generation returns the localized success message" do
WiseItem.stubs(:encryption_ready?).returns(true)
WiseItem.any_instance.expects(:generate_sca_keypair!).once.returns("SYNTHETIC PUBLIC KEY")
post generate_sca_keypair_wise_item_url(wise_items(:one))
assert_redirected_to accounts_path
assert_equal WiseScaLocalizationTest::KEYPAIR_RESULTS.fetch("success"), flash[:notice]
end
test "German Wise SCA keypair generation returns the localized failure message" do
WiseItem.any_instance.stubs(:generate_sca_keypair!).raises(StandardError, "synthetic failure")
post generate_sca_keypair_wise_item_url(wise_items(:one))
assert_redirected_to settings_providers_path
assert_equal WiseScaLocalizationTest::KEYPAIR_RESULTS.fetch("failed"), flash[:alert]
end
private
def assert_sca_copy(key)
expected = WiseScaLocalizationTest::TRANSLATIONS.fetch(key)
assert_includes response.body, ERB::Util.html_escape(expected)
end
end