mirror of
https://github.com/wassname/side-by-side.git
synced 2026-09-23 13:50:24 +08:00
145 lines
3.1 KiB
CoffeeScript
145 lines
3.1 KiB
CoffeeScript
transformer = {}
|
|
english = {}
|
|
czech = {}
|
|
polish = {}
|
|
expected = {}
|
|
|
|
module "transformer", {
|
|
setup: () ->
|
|
transformer = injector.get "transformer"
|
|
|
|
english = {
|
|
meta: {
|
|
Title: "Ten Commandments"
|
|
Author: "God knows"
|
|
}
|
|
content: [{
|
|
section: "1"
|
|
text: "Thou shalt have no other gods before me"
|
|
}, {
|
|
section: "2"
|
|
text: "Thou shalt not take the name of the Lord thy God in vain"
|
|
}, {
|
|
section: "3"
|
|
text: "Remember the sabbath day, to keep it holy"
|
|
}]
|
|
}
|
|
|
|
czech = {
|
|
meta: {
|
|
Title: "Desatero"
|
|
Author: "Ví bůh"
|
|
}
|
|
content: [{
|
|
section: "1"
|
|
text: "V jednoho Boha věřiti budeš."
|
|
}, {
|
|
section: "2"
|
|
text: "Nevezmeš jména Božího nadarmo."
|
|
}, {
|
|
section: "3"
|
|
text: "Pomni, abys den sváteční světil."
|
|
}]
|
|
}
|
|
|
|
polish = {
|
|
meta: {
|
|
Title: "Dekalog"
|
|
Author: "Bóg wie"
|
|
}
|
|
content: [{
|
|
section: "1"
|
|
text: "Nie będziesz miał bogów cudzych przede mną."
|
|
}, {
|
|
section: "2"
|
|
text: "Nie będziesz wzywał imienia Boga twego nadaremno."
|
|
}, {
|
|
section: "3"
|
|
text: "Pamiętaj, abyś dzień święty święcił."
|
|
}]
|
|
}
|
|
|
|
expected = {
|
|
meta: [{
|
|
Title: "Ten Commandments"
|
|
Author: "God knows"
|
|
}, {
|
|
Title: "Desatero"
|
|
Author: "Ví bůh"
|
|
}, {
|
|
Title: "Dekalog"
|
|
Author: "Bóg wie"
|
|
}]
|
|
|
|
verses: [[{
|
|
section: "1"
|
|
text: "Thou shalt have no other gods before me"
|
|
}, {
|
|
section: "1"
|
|
text: "V jednoho Boha věřiti budeš."
|
|
}, {
|
|
section: "1"
|
|
text: "Nie będziesz miał bogów cudzych przede mną."
|
|
}], [{
|
|
section: "2"
|
|
text: "Thou shalt not take the name of the Lord thy God in vain"
|
|
}, {
|
|
section: "2"
|
|
text: "Nevezmeš jména Božího nadarmo."
|
|
}, {
|
|
section: "2"
|
|
text: "Nie będziesz wzywał imienia Boga twego nadaremno."
|
|
}], [{
|
|
section: "3"
|
|
text: "Remember the sabbath day, to keep it holy"
|
|
}, {
|
|
section: "3"
|
|
text: "Pomni, abys den sváteční světil."
|
|
}, {
|
|
section: "3"
|
|
text: "Pamiętaj, abyś dzień święty święcił."
|
|
}]]
|
|
}
|
|
}
|
|
|
|
test "transforms", () ->
|
|
deepEqual transformer([english, czech, polish]), expected
|
|
|
|
test "transforms with 2 items", () ->
|
|
expected.meta = expected.meta.slice(0, 2)
|
|
expected.verses = _.map(expected.verses, (translations) ->
|
|
return translations.slice(0, 2)
|
|
)
|
|
deepEqual transformer([english, czech]), expected
|
|
|
|
test "throws error on no param", () ->
|
|
throws () ->
|
|
transformer()
|
|
, /no poems found/i
|
|
|
|
test "throws error on empty array", () ->
|
|
throws () ->
|
|
transformer []
|
|
, /no poems found/i
|
|
|
|
test "throws error on poem being too short", () ->
|
|
czech.content.pop()
|
|
throws () ->
|
|
transformer [english, czech, polish]
|
|
, /missing.*nevezmeš jména/i
|
|
|
|
test "throws error on poem being too long", () ->
|
|
czech.content.pop()
|
|
polish.content.pop()
|
|
throws () ->
|
|
transformer [english, czech, polish]
|
|
, /superfluous.*sabbath/i
|
|
|
|
test "throws error on poems too short plus different lengths", () ->
|
|
czech.content.pop()
|
|
polish.content.pop()
|
|
polish.content.pop()
|
|
throws () ->
|
|
transformer [english, czech, polish]
|
|
, /missing.*bogów cudzych.*nevezmeš/i
|