poe-i18n
Version:
i18n utility for Path of Exile
124 lines (112 loc) • 2.96 kB
text/typescript
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'
]);
});