mirror of
https://ghfast.top/https://github.com/discourse/discourse-translator.git
synced 2026-07-16 11:46:33 +08:00
62 lines
2.1 KiB
Ruby
62 lines
2.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "rails_helper"
|
|
|
|
describe BasicTopicSerializer do
|
|
fab!(:user) { Fabricate(:user, locale: "ja") }
|
|
fab!(:topic)
|
|
|
|
before do
|
|
SiteSetting.translator_enabled = true
|
|
SiteSetting.experimental_topic_translation = true
|
|
end
|
|
|
|
describe "#fancy_title" do
|
|
let!(:guardian) { Guardian.new(user) }
|
|
let!(:original_title) { "FUS ROH DAAHHH" }
|
|
let!(:jap_title) { "フス・ロ・ダ・ア" }
|
|
|
|
before do
|
|
topic.title = "x"
|
|
topic.fancy_title = original_title
|
|
SiteSetting.experimental_topic_translation = true
|
|
I18n.locale = "ja"
|
|
end
|
|
|
|
def serialize_topic(guardian_user: user, params: {})
|
|
env = { "action_dispatch.request.parameters" => params, "REQUEST_METHOD" => "GET" }
|
|
request = ActionDispatch::Request.new(env)
|
|
guardian = Guardian.new(guardian_user, request)
|
|
BasicTopicSerializer.new(topic, scope: guardian)
|
|
end
|
|
|
|
it "does not replace fancy_title with translation when experimental_topic_translation is disabled" do
|
|
SiteSetting.experimental_topic_translation = false
|
|
topic.set_translation("ja", jap_title)
|
|
|
|
expect(serialize_topic.fancy_title).to eq(topic.fancy_title)
|
|
end
|
|
|
|
it "does not replace fancy_title with translation when show_original param is present" do
|
|
topic.set_translation("ja", jap_title)
|
|
expect(serialize_topic(params: { "show" => "original" }).fancy_title).to eq(topic.fancy_title)
|
|
end
|
|
|
|
it "does not replace fancy_title with translation when no translation exists" do
|
|
expect(serialize_topic.fancy_title).to eq(topic.fancy_title)
|
|
end
|
|
|
|
it "does not replace fancy_title when topic is already in correct locale" do
|
|
I18n.locale = "ja"
|
|
topic.set_detected_locale("ja")
|
|
topic.set_translation("ja", jap_title)
|
|
|
|
expect(serialize_topic.fancy_title).to eq(topic.fancy_title)
|
|
end
|
|
|
|
it "returns translated title in fancy_title when translation exists for current locale" do
|
|
topic.set_translation("ja", jap_title)
|
|
expect(serialize_topic.fancy_title).to eq(jap_title)
|
|
end
|
|
end
|
|
end
|