piral-translate 1.3.3-beta.6190 → 1.3.3-beta.6201
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/actions.test.ts +26 -6
- package/src/create.test.ts +4 -0
- package/src/current.test.ts +22 -18
- package/src/hooks.test.ts +6 -2
- package/src/localize.test.ts +4 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "piral-translate",
|
|
3
|
-
"version": "1.3.3-beta.
|
|
3
|
+
"version": "1.3.3-beta.6201",
|
|
4
4
|
"description": "Plugin for providing translated messages in Piral.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"piral",
|
|
@@ -68,8 +68,8 @@
|
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@types/deepmerge": "^2.2.0",
|
|
70
70
|
"@types/react": "^18.0.0",
|
|
71
|
-
"piral-core": "1.3.3-beta.
|
|
71
|
+
"piral-core": "1.3.3-beta.6201",
|
|
72
72
|
"react": "^18.0.0"
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "6e9f4e6f83514b5c38960ce015e073efc668f3d6"
|
|
75
75
|
}
|
package/src/actions.test.ts
CHANGED
|
@@ -1,8 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @vitest-environment jsdom
|
|
3
|
+
*/
|
|
1
4
|
import create from 'zustand';
|
|
2
|
-
import {
|
|
3
|
-
import { createActions as ca } from 'piral-core';
|
|
5
|
+
import { describe, it, expect, vitest } from 'vitest';
|
|
4
6
|
import { createActions } from './actions';
|
|
5
7
|
|
|
8
|
+
function createListener() {
|
|
9
|
+
return {
|
|
10
|
+
on: vitest.fn(),
|
|
11
|
+
off: vitest.fn(),
|
|
12
|
+
emit: vitest.fn(),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function ca(state, listener) {
|
|
17
|
+
return {
|
|
18
|
+
...listener,
|
|
19
|
+
state: state.getState(),
|
|
20
|
+
dispatch(change) {
|
|
21
|
+
state.setState(change(state.getState()));
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
6
26
|
describe('Translation Action Module', () => {
|
|
7
27
|
it('selectLanguage changes the current language', () => {
|
|
8
28
|
const state: any = create(() => ({
|
|
@@ -25,7 +45,7 @@ describe('Translation Action Module', () => {
|
|
|
25
45
|
},
|
|
26
46
|
};
|
|
27
47
|
const actions = createActions(localizer);
|
|
28
|
-
const ctx = ca(state, createListener(
|
|
48
|
+
const ctx = ca(state, createListener());
|
|
29
49
|
actions.selectLanguage(ctx, 'de');
|
|
30
50
|
expect((state.getState())).toEqual({
|
|
31
51
|
foo: 5,
|
|
@@ -67,7 +87,7 @@ describe('Translation Action Module', () => {
|
|
|
67
87
|
},
|
|
68
88
|
};
|
|
69
89
|
const actions = createActions(localizer);
|
|
70
|
-
const ctx = ca(state, createListener(
|
|
90
|
+
const ctx = ca(state, createListener());
|
|
71
91
|
const result = actions.translate(ctx, 'bar');
|
|
72
92
|
expect(result).toEqual('bár');
|
|
73
93
|
});
|
|
@@ -95,7 +115,7 @@ describe('Translation Action Module', () => {
|
|
|
95
115
|
},
|
|
96
116
|
};
|
|
97
117
|
const ctx = {
|
|
98
|
-
emit:
|
|
118
|
+
emit: vitest.fn(),
|
|
99
119
|
state,
|
|
100
120
|
dispatch(update) {
|
|
101
121
|
state.setState(update(state.getState()));
|
|
@@ -148,7 +168,7 @@ describe('Translation Action Module', () => {
|
|
|
148
168
|
};
|
|
149
169
|
const actions = createActions(localizer);
|
|
150
170
|
const ctx = {
|
|
151
|
-
emit:
|
|
171
|
+
emit: vitest.fn(),
|
|
152
172
|
state,
|
|
153
173
|
dispatch(update) {
|
|
154
174
|
state.setState(update(state.getState()));
|
package/src/create.test.ts
CHANGED
package/src/current.test.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @vitest-environment jsdom
|
|
3
|
+
*/
|
|
1
4
|
import { cookie, storage } from 'piral-core';
|
|
5
|
+
import { describe, it, expect, vitest } from 'vitest';
|
|
2
6
|
import { getUserLocale } from './current';
|
|
3
7
|
|
|
4
8
|
function mockNavigatorLanguage(value = '') {
|
|
@@ -7,72 +11,72 @@ function mockNavigatorLanguage(value = '') {
|
|
|
7
11
|
|
|
8
12
|
describe('User Module', () => {
|
|
9
13
|
it('getUserLocale selects default language as no fallback is given', () => {
|
|
10
|
-
cookie.getItem =
|
|
11
|
-
storage.getItem =
|
|
14
|
+
cookie.getItem = vitest.fn(() => undefined);
|
|
15
|
+
storage.getItem = vitest.fn(() => undefined);
|
|
12
16
|
mockNavigatorLanguage();
|
|
13
17
|
const language = getUserLocale(['en', 'de', 'fr'], 'en');
|
|
14
18
|
expect(language).toBe('en');
|
|
15
19
|
});
|
|
16
20
|
|
|
17
21
|
it('getUserLocale selects fallback language', () => {
|
|
18
|
-
cookie.getItem =
|
|
19
|
-
storage.getItem =
|
|
22
|
+
cookie.getItem = vitest.fn(() => undefined);
|
|
23
|
+
storage.getItem = vitest.fn(() => undefined);
|
|
20
24
|
mockNavigatorLanguage();
|
|
21
25
|
const language = getUserLocale(['en', 'de', 'fr'], 'en', 'de');
|
|
22
26
|
expect(language).toBe('de');
|
|
23
27
|
});
|
|
24
28
|
|
|
25
29
|
it('getUserLocale selects navigator language if available', () => {
|
|
26
|
-
cookie.getItem =
|
|
27
|
-
storage.getItem =
|
|
30
|
+
cookie.getItem = vitest.fn(() => undefined);
|
|
31
|
+
storage.getItem = vitest.fn(() => undefined);
|
|
28
32
|
mockNavigatorLanguage('fr');
|
|
29
33
|
const language = getUserLocale(['en', 'de', 'fr'], 'en');
|
|
30
34
|
expect(language).toBe('fr');
|
|
31
35
|
});
|
|
32
36
|
|
|
33
37
|
it('getUserLocale selects default language if navigator not available', () => {
|
|
34
|
-
cookie.getItem =
|
|
35
|
-
storage.getItem =
|
|
38
|
+
cookie.getItem = vitest.fn(() => undefined);
|
|
39
|
+
storage.getItem = vitest.fn(() => undefined);
|
|
36
40
|
mockNavigatorLanguage('es');
|
|
37
41
|
const language = getUserLocale(['en', 'de', 'fr'], 'en');
|
|
38
42
|
expect(language).toBe('en');
|
|
39
43
|
});
|
|
40
44
|
|
|
41
45
|
it('getUserLocale selects language from cookie if available', () => {
|
|
42
|
-
cookie.getItem =
|
|
43
|
-
storage.getItem =
|
|
46
|
+
cookie.getItem = vitest.fn(() => 'de');
|
|
47
|
+
storage.getItem = vitest.fn(() => undefined);
|
|
44
48
|
mockNavigatorLanguage();
|
|
45
49
|
const language = getUserLocale(['en', 'de', 'fr'], 'en');
|
|
46
50
|
expect(language).toBe('de');
|
|
47
51
|
});
|
|
48
52
|
|
|
49
53
|
it('getUserLocale does not select language from cookie if not available', () => {
|
|
50
|
-
cookie.getItem =
|
|
51
|
-
storage.getItem =
|
|
54
|
+
cookie.getItem = vitest.fn(() => 'es');
|
|
55
|
+
storage.getItem = vitest.fn(() => undefined);
|
|
52
56
|
mockNavigatorLanguage();
|
|
53
57
|
const language = getUserLocale(['en', 'de', 'fr'], 'en');
|
|
54
58
|
expect(language).toBe('en');
|
|
55
59
|
});
|
|
56
60
|
|
|
57
61
|
it('getUserLocale selects language from local storage if available', () => {
|
|
58
|
-
cookie.getItem =
|
|
59
|
-
storage.getItem =
|
|
62
|
+
cookie.getItem = vitest.fn(() => undefined);
|
|
63
|
+
storage.getItem = vitest.fn(() => 'de');
|
|
60
64
|
mockNavigatorLanguage();
|
|
61
65
|
const language = getUserLocale(['en', 'de', 'fr'], 'en');
|
|
62
66
|
expect(language).toBe('de');
|
|
63
67
|
});
|
|
64
68
|
|
|
65
69
|
it('getUserLocale does not select language from local storage if not available', () => {
|
|
66
|
-
cookie.getItem =
|
|
67
|
-
storage.getItem =
|
|
70
|
+
cookie.getItem = vitest.fn(() => undefined);
|
|
71
|
+
storage.getItem = vitest.fn(() => 'es');
|
|
68
72
|
mockNavigatorLanguage();
|
|
69
73
|
const language = getUserLocale(['en', 'de', 'fr'], 'en');
|
|
70
74
|
expect(language).toBe('en');
|
|
71
75
|
});
|
|
72
76
|
|
|
73
77
|
it('getUserLocale selects language from cookie over local storage', () => {
|
|
74
|
-
cookie.getItem =
|
|
75
|
-
storage.getItem =
|
|
78
|
+
cookie.getItem = vitest.fn(() => 'fr');
|
|
79
|
+
storage.getItem = vitest.fn(() => 'de');
|
|
76
80
|
mockNavigatorLanguage();
|
|
77
81
|
const language = getUserLocale(['en', 'de', 'fr'], 'en');
|
|
78
82
|
expect(language).toBe('fr');
|
package/src/hooks.test.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @vitest-environment jsdom
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect, vitest } from 'vitest';
|
|
1
5
|
import { useDynamicLanguage, useTranslate } from './hooks';
|
|
2
6
|
|
|
3
|
-
|
|
7
|
+
vitest.mock('piral-core', () => ({
|
|
4
8
|
useActions() {
|
|
5
9
|
return {
|
|
6
10
|
translate() {
|
|
@@ -13,7 +17,7 @@ jest.mock('piral-core', () => ({
|
|
|
13
17
|
},
|
|
14
18
|
}));
|
|
15
19
|
|
|
16
|
-
|
|
20
|
+
vitest.mock('react', () => ({
|
|
17
21
|
useEffect() {},
|
|
18
22
|
useState(initial) {
|
|
19
23
|
return [initial, () => {}];
|