UNPKG

poe-i18n

Version:

i18n utility for Path of Exile

124 lines (112 loc) 2.96 kB
import * as path from 'path'; import { StatLocaleData } from '../../types/StatDescription'; import formatGemStats, { requiredLocaleDatas } from '../gemStats'; const loadLocaleData = (gem_id: string, code: string) => requiredLocaleDatas(gem_id).reduce( (datas, file) => { datas[file] = require(path.join( __dirname, '../../../locale-data', code, `${file}.json` )); return datas; }, {} as { [key: string]: StatLocaleData } ); it('should only translate the lines that have translations', () => { const empty_effects = formatGemStats( 'new_arctic_armour', [{ id: 'filtered_stat', value: 1 }], { datas: loadLocaleData('new_arctic_armour', 'en') } ); expect(empty_effects).toEqual([]); const aa_effects = formatGemStats( 'new_arctic_armour', [ { id: 'arctic_armour_chill_when_hit_duration', value: 500 }, { id: 'new_arctic_armour_physical_damage_taken_when_hit_+%_final', value: -8 }, { id: 'new_arctic_armour_fire_damage_taken_when_hit_+%_final', value: -8 }, { id: 'base_skill_effect_duration', value: 2500 } ], { datas: loadLocaleData('new_arctic_armour', 'en') } ); expect(aa_effects).toEqual([ 'Chill Enemy for 0.5 seconds when Hit, slowing them by 30%', '8% less Physical Damage taken when Hit', '8% less Fire Damage taken when Hit', 'Base duration is 2.50 seconds' ]); const ab_effects = formatGemStats( 'arctic_breath', [ { id: 'base_skill_effect_duration', value: 880 }, { id: 'base_is_projectile', value: 1 }, { id: 'spell_minimum_base_cold_damage', value: 52 }, { id: 'spell_maximum_base_cold_damage', value: 78 } ], { datas: loadLocaleData('arctic_breath', 'en') } ); expect(ab_effects.sort()).toEqual([ 'Base duration is 0.88 seconds', 'Deals 52 to 78 Cold Damage' ]); }); it('should use the specified files first', () => { const vitality_effects = formatGemStats( 'vitality', [ { id: 'life_regeneration_rate_per_minute_%', value: 42 }, { id: 'active_skill_base_radius_+', value: 1 }, { id: 'base_deal_no_damage', value: 1 } ], { datas: loadLocaleData('vitality', 'en') } ); expect(vitality_effects.sort()).toEqual([ '+1 to radius', 'You and nearby allies regenerate 0.70% Life per second' ]); }); it('should assume a support gem if gem_id is not recognized', () => { const minion_speed = formatGemStats( 'minion_speed', [{ id: 'minion_movement_speed_+%', value: 25 }], { datas: loadLocaleData('minion_speed', 'en') } ); expect(minion_speed.sort()).toEqual([ 'Supported Skills have 25% increased Minion Movement Speed' ]); });