1 | import { assert } from "chai"
|
2 | import * as extractor from "../src/extractor"
|
3 | import _ from "lodash"
|
4 | import { LocalizerData } from "../src"
|
5 |
|
6 | describe("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 | })
|