universal_bot-ts

Форк
0
/
nlu.test.ts 
154 строки · 4.6 Кб
1
import {Nlu, INlu} from '../../src';
2

3
describe('Nlu test', () => {
4
    let nlu: Nlu = new Nlu();
5

6
    beforeEach(() => {
7
        const nluContent: INlu = {
8
            thisUser: {
9
                username: 'name',
10
                first_name: 'fn',
11
                last_name: 'ln'
12
            },
13
            entities: [
14
                {
15
                    type: Nlu.T_GEO,
16
                    tokens: {
17
                        start: 0,
18
                        end: 1
19
                    },
20
                    value: {
21
                        city: "city"
22
                    }
23
                },
24
                {
25
                    type: Nlu.T_NUMBER,
26
                    tokens: {
27
                        start: 0,
28
                        end: 1
29
                    },
30
                    value: 512
31
                },
32
                {
33
                    type: Nlu.T_FIO,
34
                    tokens: {
35
                        start: 0,
36
                        end: 1
37
                    },
38
                    value: {
39
                        first_name: "fn"
40
                    }
41
                },
42
                {
43
                    type: Nlu.T_DATETIME,
44
                    tokens: {
45
                        start: 0,
46
                        end: 1
47
                    },
48
                    value: {
49
                        year: 2020
50
                    }
51
                },
52
            ],
53
            intents: {
54
                custom: {
55
                    slots: {
56
                        name: {
57
                            type: "YANDEX.STRING",
58
                            tokens: {
59
                                start: 1,
60
                                end: 2
61
                            },
62
                            value: "test"
63
                        },
64
                        action: {
65
                            type: "YANDEX.STRING",
66
                            tokens: {
67
                                start: 2,
68
                                end: 4
69
                            },
70
                            value: "спит"
71
                        }
72
                    }
73
                }
74
            }
75
        };
76
        nlu.setNlu(nluContent);
77
    });
78

79
    it('Find phone', () => {
80
        expect(Nlu.getPhone('123456').status).toBe(true);
81
        expect(Nlu.getPhone('12-34-56').status).toBe(true);
82
        expect(Nlu.getPhone('89999999999').status).toBe(true);
83
        expect(Nlu.getPhone('8(999).toBe(true)999-99-99').status);
84
        expect(Nlu.getPhone('512').status).toBe(false);
85
        expect(Nlu.getPhone('test').status).toBe(false);
86
    });
87

88
    it('Find e-mail', () => {
89
        expect(Nlu.getEMail('test@test.ru').status).toBe(true);
90
        expect(Nlu.getEMail('test@test.test').status).toBe(true);
91
        expect(Nlu.getEMail('test@yandex.ru').status).toBe(true);
92
        expect(Nlu.getEMail('test@google.com').status).toBe(true);
93
        expect(Nlu.getEMail('test').status).toBe(false);
94
    });
95

96
    it('Find link', () => {
97
        expect(Nlu.getLink('https://test.ru').status).toBe(true);
98
        expect(Nlu.getLink('https://test.test').status).toBe(true);
99
        expect(Nlu.getLink('http://test.ru').status).toBe(true);
100
        expect(Nlu.getLink('http://test.test').status).toBe(true);
101
    });
102

103
    it('find user name', () => {
104
        expect(nlu.getUserName()).toEqual({
105
            username: 'name',
106
            first_name: 'fn',
107
            last_name: 'ln'
108
        });
109
    });
110

111
    it('Get fio', () => {
112
        expect(nlu.getFio().status).toBe(true);
113
        expect(nlu.getFio().result).toEqual([{first_name: 'fn'}]);
114
    });
115

116
    it('Get geo', () => {
117
        expect(nlu.getGeo().status).toBe(true);
118
        expect(nlu.getGeo().result).toEqual([{city: 'city'}]);
119
    });
120

121
    it('Get date time', () => {
122
        expect(nlu.getDateTime().status).toBe(true);
123
        expect(nlu.getDateTime().result).toEqual([{year: 2020}]);
124
    });
125

126
    it('Get number', () => {
127
        expect(nlu.getNumber().status).toBe(true);
128
        expect(nlu.getNumber().result).toEqual([512]);
129
    });
130

131
    it('Get intent', () => {
132
        expect(nlu.getIntent('custom')).toEqual({
133
            slots: {
134
                name: {
135
                    type: "YANDEX.STRING",
136
                    tokens: {
137
                        start: 1,
138
                        end: 2
139
                    },
140
                    value: "test"
141
                },
142
                action: {
143
                    type: "YANDEX.STRING",
144
                    tokens: {
145
                        start: 2,
146
                        end: 4
147
                    },
148
                    value: "спит"
149
                }
150
            }
151
        });
152
        expect(nlu.getIntent('test') === null).toBe(true);
153
    });
154
});
155

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.