|
43 | 43 | end |
44 | 44 | end |
45 | 45 |
|
46 | | - it "should truncate string to 5000 characters" do |
47 | | - length = 6000 |
| 46 | + it "should truncate string to 1000 characters" do |
| 47 | + length = 2000 |
48 | 48 | post.cooked = rand(36**length).to_s(36) |
49 | 49 | detected_lang = "en" |
50 | 50 |
|
51 | 51 | request_url = "#{DiscourseTranslator::Google::DETECT_URI}" |
52 | 52 | body = { |
53 | | - q: post.cooked.truncate(DiscourseTranslator::Google::MAXLENGTH, omission: nil), |
| 53 | + q: post.cooked.truncate(DiscourseTranslator::Google::DETECTION_CHAR_LIMIT, omission: nil), |
54 | 54 | key: api_key, |
55 | 55 | } |
56 | 56 |
|
|
166 | 166 |
|
167 | 167 | expect { described_class.translate(post) }.to raise_error DiscourseTranslator::TranslatorError |
168 | 168 | end |
| 169 | + |
| 170 | + it "truncates text for translation to max_characters_per_translation setting" do |
| 171 | + SiteSetting.max_characters_per_translation = 50 |
| 172 | + post.cooked = "a" * 100 |
| 173 | + post.custom_fields[DiscourseTranslator::DETECTED_LANG_CUSTOM_FIELD] = "de" |
| 174 | + post.save_custom_fields |
| 175 | + body = { |
| 176 | + q: post.cooked.truncate(SiteSetting.max_characters_per_translation, omission: nil), |
| 177 | + source: "de", |
| 178 | + target: "en", |
| 179 | + key: api_key, |
| 180 | + } |
| 181 | + |
| 182 | + translated_text = "hur dur hur dur" |
| 183 | + Excon |
| 184 | + .expects(:post) |
| 185 | + .with( |
| 186 | + DiscourseTranslator::Google::TRANSLATE_URI, |
| 187 | + body: URI.encode_www_form(body), |
| 188 | + headers: { |
| 189 | + "Content-Type" => "application/x-www-form-urlencoded", |
| 190 | + "Referer" => "http://test.localhost", |
| 191 | + }, |
| 192 | + ) |
| 193 | + .returns( |
| 194 | + mock_response.new( |
| 195 | + 200, |
| 196 | + %{ { "data": { "translations": [ { "translatedText": "#{translated_text}" } ] } } }, |
| 197 | + ), |
| 198 | + ) |
| 199 | + .once |
| 200 | + Excon.expects(:post).returns( |
| 201 | + mock_response.new(200, %{ { "data": { "languages": [ { "language": "de" }] } } }), |
| 202 | + ) |
| 203 | + |
| 204 | + expect(described_class.translate(post)).to eq(["de", translated_text]) |
| 205 | + end |
169 | 206 | end |
170 | 207 | end |
0 commit comments