mirror of
https://github.com/we-promise/sure.git
synced 2026-09-09 08:34:26 +00:00
* 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>
99 lines
4.2 KiB
Ruby
99 lines
4.2 KiB
Ruby
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
|