Skip to content

Commit 5d0a961

Browse files
gnurgeldiyevGuvanch Nurgeldiyev
andauthored
Add tk locale with tests (#220)
Co-authored-by: Guvanch Nurgeldiyev <[email protected]>
1 parent 6613d4c commit 5d0a961

File tree

2 files changed

+112
-0
lines changed

2 files changed

+112
-0
lines changed

__tests__/lang/tk.spec.ts

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
import { advanceTo, clear } from 'jest-date-mock';
2+
import { format, register } from '../../src';
3+
import tk from '../../src/lang/tk';
4+
5+
register('tk', tk);
6+
7+
let date = new Date();
8+
9+
beforeEach(() => {
10+
advanceTo(0);
11+
date = new Date();
12+
});
13+
afterEach(() => {
14+
clear();
15+
});
16+
describe('tk', () => {
17+
test('time ago', () => {
18+
advanceTo(9 * 1000);
19+
expect(format(date, 'tk')).toEqual('biraz öň');
20+
21+
advanceTo(30 * 1000);
22+
expect(format(date, 'tk')).toEqual('30 sekunt öň');
23+
24+
advanceTo(1000 * 60);
25+
expect(format(date, 'tk')).toEqual('1 minut öň');
26+
27+
advanceTo(1000 * 60 * 30);
28+
expect(format(date, 'tk')).toEqual('30 minut öň');
29+
30+
advanceTo(1000 * 60 * 60);
31+
expect(format(date, 'tk')).toEqual('1 sagat öň');
32+
33+
advanceTo(1000 * 60 * 60 * 8);
34+
expect(format(date, 'tk')).toEqual('8 sagat öň');
35+
36+
advanceTo(1000 * 60 * 60 * 24);
37+
expect(format(date, 'tk')).toEqual('1 gün öň');
38+
39+
advanceTo(1000 * 60 * 60 * 24 * 3);
40+
expect(format(date, 'tk')).toEqual('3 gün öň');
41+
42+
advanceTo(1000 * 60 * 60 * 24 * 7);
43+
expect(format(date, 'tk')).toEqual('1 hepde öň');
44+
45+
advanceTo(1000 * 60 * 60 * 24 * 7 * 3);
46+
expect(format(date, 'tk')).toEqual('3 hepde öň');
47+
48+
advanceTo(1000 * 60 * 60 * 24 * 31);
49+
expect(format(date, 'tk')).toEqual('1 aý öň');
50+
51+
advanceTo(1000 * 60 * 60 * 24 * 31 * 4);
52+
expect(format(date, 'tk')).toEqual('4 aý öň');
53+
54+
advanceTo(1000 * 60 * 60 * 24 * 366);
55+
expect(format(date, 'tk')).toEqual('1 ýyl öň');
56+
57+
advanceTo(1000 * 60 * 60 * 24 * 366 * 10);
58+
expect(format(date, 'tk')).toEqual('10 ýyl öň');
59+
});
60+
test('time in', () => {
61+
advanceTo(-9 * 1000);
62+
expect(format(date, 'tk')).toEqual('şuwagt');
63+
64+
advanceTo(-30 * 1000);
65+
expect(format(date, 'tk')).toEqual('30 sekuntdan');
66+
67+
advanceTo(-1000 * 60);
68+
expect(format(date, 'tk')).toEqual('1 minutdan');
69+
70+
advanceTo(-1000 * 60 * 30);
71+
expect(format(date, 'tk')).toEqual('30 minutdan');
72+
73+
advanceTo(-1000 * 60 * 60);
74+
expect(format(date, 'tk')).toEqual('1 sagatdan');
75+
76+
advanceTo(-1000 * 60 * 60 * 8);
77+
expect(format(date, 'tk')).toEqual('8 sagatdan');
78+
79+
advanceTo(-1000 * 60 * 60 * 24);
80+
expect(format(date, 'tk')).toEqual('1 günden');
81+
82+
advanceTo(-1000 * 60 * 60 * 24 * 3);
83+
expect(format(date, 'tk')).toEqual('3 günden');
84+
85+
advanceTo(-1000 * 60 * 60 * 24 * 7);
86+
expect(format(date, 'tk')).toEqual('1 hepdeden');
87+
88+
advanceTo(-1000 * 60 * 60 * 24 * 7 * 3);
89+
expect(format(date, 'tk')).toEqual('3 hepdeden');
90+
91+
advanceTo(-1000 * 60 * 60 * 24 * 31);
92+
expect(format(date, 'tk')).toEqual('1 aýdan');
93+
94+
advanceTo(-1000 * 60 * 60 * 24 * 31 * 4);
95+
expect(format(date, 'tk')).toEqual('4 aýdan');
96+
97+
advanceTo(-1000 * 60 * 60 * 24 * 366);
98+
expect(format(date, 'tk')).toEqual('1 ýyldan');
99+
100+
advanceTo(-1000 * 60 * 60 * 24 * 366 * 10);
101+
expect(format(date, 'tk')).toEqual('10 ýyldan');
102+
});
103+
});

src/lang/tk.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
const TK = ['sekunt', 'minut', 'sagat', 'gün', 'hepde', 'aý', 'ýyl'];
2+
function getSuffix(unit: string): string {
3+
return unit.match(/[aouy]/) ? 'dan' : 'den';
4+
}
5+
export default function(diff: number, idx: number): [string, string] {
6+
if (idx === 0) return ['biraz öň', 'şuwagt'];
7+
const unit = TK[Math.floor(idx / 2)];
8+
return [`${diff} ${unit} öň`, `${diff} ${unit}${getSuffix(unit)}`];
9+
}

0 commit comments

Comments
 (0)