2020-04-07 16:47:15 +02:00
|
|
|
/*
|
|
|
|
This file is part of GNU Taler
|
|
|
|
(C) 2020 Taler Systems SA
|
|
|
|
|
|
|
|
GNU Taler is free software; you can redistribute it and/or modify it under the
|
|
|
|
terms of the GNU General Public License as published by the Free Software
|
|
|
|
Foundation; either version 3, or (at your option) any later version.
|
|
|
|
|
|
|
|
GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
|
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
|
|
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License along with
|
|
|
|
GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
|
|
|
|
*/
|
|
|
|
|
2021-05-07 15:38:28 +02:00
|
|
|
// import * as test from "ava";
|
|
|
|
import { internalSetStrings, str, Translate } from "../src/i18n";
|
|
|
|
import { render, configure } from "enzyme";
|
|
|
|
import Adapter from 'enzyme-adapter-preact-pure';
|
|
|
|
import { h } from "preact";
|
2020-04-07 16:47:15 +02:00
|
|
|
|
|
|
|
configure({ adapter: new Adapter() });
|
|
|
|
|
|
|
|
const testStrings = {
|
|
|
|
domain: "messages",
|
|
|
|
locale_data: {
|
|
|
|
messages: {
|
|
|
|
str1: ["foo1"],
|
|
|
|
str2: [""],
|
|
|
|
"str3 %1$s / %2$s": ["foo3 %2$s ; %1$s"],
|
|
|
|
"": {
|
|
|
|
domain: "messages",
|
|
|
|
plural_forms: "nplurals=2; plural=(n != 1);",
|
|
|
|
lang: "",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|
2021-05-07 15:38:28 +02:00
|
|
|
test("str translation", (done) => {
|
|
|
|
|
2020-04-07 16:47:15 +02:00
|
|
|
// Alias, so we nly use the function for lookups, not for string extranction.
|
|
|
|
const strAlias = str;
|
|
|
|
const TranslateAlias = Translate;
|
|
|
|
internalSetStrings(testStrings);
|
2021-05-07 15:38:28 +02:00
|
|
|
expect(strAlias`str1`).toEqual("foo1");
|
|
|
|
expect(strAlias`str2`).toEqual("str2");
|
2020-04-07 16:47:15 +02:00
|
|
|
const a = "a";
|
|
|
|
const b = "b";
|
2021-05-07 15:38:28 +02:00
|
|
|
expect(strAlias`str3 ${a} / ${b}`).toEqual("foo3 b ; a");
|
2020-04-07 16:47:15 +02:00
|
|
|
const r = render(<TranslateAlias>str1</TranslateAlias>);
|
2021-05-07 15:38:28 +02:00
|
|
|
expect(r.text()).toEqual("foo1");
|
2020-04-07 16:47:15 +02:00
|
|
|
|
|
|
|
const r2 = render(
|
|
|
|
<TranslateAlias>
|
|
|
|
str3 <span>{a}</span> / <span>{b}</span>
|
|
|
|
</TranslateAlias>,
|
|
|
|
);
|
2021-05-07 15:38:28 +02:00
|
|
|
expect(r2.text()).toEqual("foo3 b ; a");
|
2020-04-07 16:47:15 +02:00
|
|
|
|
2021-05-07 15:38:28 +02:00
|
|
|
done();
|
2020-04-07 16:47:15 +02:00
|
|
|
});
|
|
|
|
|
2021-05-07 15:38:28 +02:00
|
|
|
// test.default("existing str translation", (t) => {
|
|
|
|
// internalSetStrings(strings);
|
|
|
|
// t.pass();
|
|
|
|
// });
|