UNPKG

2.47 kBPlain TextView Raw
1import { assert } from "chai"
2import * as extractor from "../src/extractor"
3import _ from "lodash"
4import { LocalizerData } from "../src"
5
6describe("updateLocalizations", function () {
7 this.timeout(20000)
8 it("creates localizations", function (done) {
9 const data: LocalizerData = {} as any
10 return extractor.updateLocalizations([__dirname + "/requireSample"], data, {}, function () {
11 assert.deepEqual(data.locales, [{ code: "en", name: "English" }])
12 assert.deepEqual(_.sortBy(data.strings, "en"), [
13 { _base: "en", en: "a" },
14 { _base: "en", en: "b" },
15 { _base: "en", en: "c" },
16 { _base: "en", en: "d" }
17 ])
18 return done()
19 })
20 })
21
22 it("preserves languages", function (done) {
23 const data = {
24 locales: [
25 { code: "en", name: "English" },
26 { code: "es", name: "Espanol" }
27 ],
28 strings: [{ _base: "en", en: "b", es: "b-es" }]
29 }
30 return extractor.updateLocalizations([__dirname + "/requireSample"], data, {}, function () {
31 assert.deepEqual(data.locales, [
32 { code: "en", name: "English" },
33 { code: "es", name: "Espanol" }
34 ])
35 assert.deepEqual(_.sortBy(data.strings, "en"), [
36 { _base: "en", en: "a", es: "" },
37 { _base: "en", en: "b", es: "b-es" },
38 { _base: "en", en: "c", es: "" },
39 { _base: "en", en: "d", es: "" }
40 ])
41 return done()
42 })
43 })
44
45 it("marks unused", function (done) {
46 const data = {
47 locales: [{ code: "en", name: "English" }],
48 strings: [{ _base: "en", en: "x" }]
49 }
50 return extractor.updateLocalizations([__dirname + "/requireSample"], data, {}, function () {
51 assert.deepEqual(_.sortBy(data.strings, "en"), [
52 { _base: "en", en: "a" },
53 { _base: "en", en: "b" },
54 { _base: "en", en: "c" },
55 { _base: "en", en: "d" },
56 { _base: "en", en: "x", _unused: true }
57 ])
58 return done()
59 })
60 })
61
62 return it("removes unused", function (done) {
63 const data = {
64 locales: [{ code: "en", name: "English" }],
65 strings: [{ _base: "en", en: "b", _unused: true }]
66 }
67 return extractor.updateLocalizations([__dirname + "/requireSample"], data, {}, function () {
68 assert.deepEqual(_.sortBy(data.strings, "en"), [
69 { _base: "en", en: "a" },
70 { _base: "en", en: "b" },
71 { _base: "en", en: "c" },
72 { _base: "en", en: "d" }
73 ])
74 return done()
75 })
76 })
77})