universal_bot-ts
154 строки · 4.6 Кб
1import {Nlu, INlu} from '../../src';
2
3describe('Nlu test', () => {
4let nlu: Nlu = new Nlu();
5
6beforeEach(() => {
7const nluContent: INlu = {
8thisUser: {
9username: 'name',
10first_name: 'fn',
11last_name: 'ln'
12},
13entities: [
14{
15type: Nlu.T_GEO,
16tokens: {
17start: 0,
18end: 1
19},
20value: {
21city: "city"
22}
23},
24{
25type: Nlu.T_NUMBER,
26tokens: {
27start: 0,
28end: 1
29},
30value: 512
31},
32{
33type: Nlu.T_FIO,
34tokens: {
35start: 0,
36end: 1
37},
38value: {
39first_name: "fn"
40}
41},
42{
43type: Nlu.T_DATETIME,
44tokens: {
45start: 0,
46end: 1
47},
48value: {
49year: 2020
50}
51},
52],
53intents: {
54custom: {
55slots: {
56name: {
57type: "YANDEX.STRING",
58tokens: {
59start: 1,
60end: 2
61},
62value: "test"
63},
64action: {
65type: "YANDEX.STRING",
66tokens: {
67start: 2,
68end: 4
69},
70value: "спит"
71}
72}
73}
74}
75};
76nlu.setNlu(nluContent);
77});
78
79it('Find phone', () => {
80expect(Nlu.getPhone('123456').status).toBe(true);
81expect(Nlu.getPhone('12-34-56').status).toBe(true);
82expect(Nlu.getPhone('89999999999').status).toBe(true);
83expect(Nlu.getPhone('8(999).toBe(true)999-99-99').status);
84expect(Nlu.getPhone('512').status).toBe(false);
85expect(Nlu.getPhone('test').status).toBe(false);
86});
87
88it('Find e-mail', () => {
89expect(Nlu.getEMail('test@test.ru').status).toBe(true);
90expect(Nlu.getEMail('test@test.test').status).toBe(true);
91expect(Nlu.getEMail('test@yandex.ru').status).toBe(true);
92expect(Nlu.getEMail('test@google.com').status).toBe(true);
93expect(Nlu.getEMail('test').status).toBe(false);
94});
95
96it('Find link', () => {
97expect(Nlu.getLink('https://test.ru').status).toBe(true);
98expect(Nlu.getLink('https://test.test').status).toBe(true);
99expect(Nlu.getLink('http://test.ru').status).toBe(true);
100expect(Nlu.getLink('http://test.test').status).toBe(true);
101});
102
103it('find user name', () => {
104expect(nlu.getUserName()).toEqual({
105username: 'name',
106first_name: 'fn',
107last_name: 'ln'
108});
109});
110
111it('Get fio', () => {
112expect(nlu.getFio().status).toBe(true);
113expect(nlu.getFio().result).toEqual([{first_name: 'fn'}]);
114});
115
116it('Get geo', () => {
117expect(nlu.getGeo().status).toBe(true);
118expect(nlu.getGeo().result).toEqual([{city: 'city'}]);
119});
120
121it('Get date time', () => {
122expect(nlu.getDateTime().status).toBe(true);
123expect(nlu.getDateTime().result).toEqual([{year: 2020}]);
124});
125
126it('Get number', () => {
127expect(nlu.getNumber().status).toBe(true);
128expect(nlu.getNumber().result).toEqual([512]);
129});
130
131it('Get intent', () => {
132expect(nlu.getIntent('custom')).toEqual({
133slots: {
134name: {
135type: "YANDEX.STRING",
136tokens: {
137start: 1,
138end: 2
139},
140value: "test"
141},
142action: {
143type: "YANDEX.STRING",
144tokens: {
145start: 2,
146end: 4
147},
148value: "спит"
149}
150}
151});
152expect(nlu.getIntent('test') === null).toBe(true);
153});
154});
155