codecombat/test/app/lib/utils.spec.coffee
2014-03-13 00:11:01 +01:00

44 lines
No EOL
2 KiB
CoffeeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

describe 'utils library', ->
util = require 'lib/utils'
beforeEach ->
this.fixture1 =
"text": "G'day, Wizard! Come to practice? Well, let's get started..."
"i18n":
"es-419":
"text": "¡Buenas, Hechicero! ¿Vienes a practicar? Bueno, empecemos..."
"es-ES":
"text": "¡Buenas Mago! ¿Vienes a practicar? Bien, empecemos..."
"es":
"text": "¡Buenas Mago! ¿Vienes a practicar? Muy bien, empecemos..."
"fr":
"text": "S'lut, Magicien! Venu pratiquer? Ok, bien débutons..."
"pt-BR":
"text": "Bom dia, feiticeiro! Veio praticar? Então vamos começar..."
"de":
"text": "'N Tach auch, Zauberer! Kommst Du zum Üben? Dann lass uns anfangen..."
"tr":
"text": "İyi günler, Büyücü! Antremana mı geldin? Güzel, hadi başlayalım..."
"sv":
"text": "Godagens, trollkarl! Kommit för att öva? Nå, låt oss börja..."
"en":
"text": "Ohai Magician!"
it 'i18n should find a valid target string', ->
expect(util.i18n(this.fixture1, 'text', 'sv')).toEqual(this.fixture1.i18n['sv'].text)
expect(util.i18n(this.fixture1, 'test', 'es-ES')).toEqual(this.fixture1.i18n['es-ES'].text)
it 'i18n picks the correct fallback for a specific language', ->
expect(util.i18n(this.fixture1, 'text', 'fr-be')).toEqual(this.fixture1.i18n['fr'].text)
it 'i18n picks the correct fallback', ->
expect(util.i18n(this.fixture1, 'text', 'nl')).toEqual(this.fixture1.i18n['en'].text)
expect(util.i18n(this.fixture1, 'text', 'nl', 'de')).toEqual(this.fixture1.i18n['de'].text)
it 'i18n falls back to the default text, even for other targets (like burb)', ->
delete this.fixture1.i18n['en']
expect(util.i18n(this.fixture1, 'text', 'en')).toEqual(this.fixture1.text)
expect(util.i18n(this.fixture1, 'blurb', 'en')).toEqual(this.fixture1.text)
it 'i18n can fall forward if a general language is not found', ->
expect(util.i18n(this.fixture1, 'text', 'pt')).toEqual(this.fixture1.i18n['pt-BR'].text)