lobe-chat

Форк
0
82 строки · 2.0 Кб
1
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
2

3
import { UserModel } from '../user';
4

5
describe('UserModel', () => {
6
  let userData: any;
7

8
  beforeEach(() => {
9
    // Set up user data with the correct structure
10
    userData = {
11
      uuid: 'user1',
12
      settings: {},
13
      avatar: 'avatar.png',
14
    };
15
  });
16

17
  afterEach(async () => {
18
    // Clean up the database after each test
19
    await UserModel.clear();
20
  });
21

22
  it('should create a user record', async () => {
23
    const result = await UserModel.create(userData);
24

25
    expect(result).toEqual(1);
26
    // Verify that the user has been added to the database
27
    const userInDb = await UserModel.getUser();
28

29
    expect(userInDb).toEqual(
30
      expect.objectContaining({
31
        uuid: userData.uuid,
32
        settings: userData.settings,
33
        avatar: userData.avatar,
34
      }),
35
    );
36
  });
37

38
  it('should update a user record', async () => {
39
    const result = await UserModel.create(userData);
40

41
    const newAvatar = 'new_avatar.png';
42
    await UserModel.updateAvatar(newAvatar);
43

44
    const userInDb = await UserModel.getUser();
45

46
    expect(userInDb).toHaveProperty('avatar', newAvatar);
47
  });
48

49
  it('should update user settings', async () => {
50
    await UserModel.create(userData);
51

52
    await UserModel.updateSettings({ general: { themeMode: 'dark' } });
53

54
    const userInDb = await UserModel.getUser();
55

56
    expect(userInDb).toHaveProperty('settings', {
57
      general: { themeMode: 'dark' },
58
    });
59
  });
60

61
  it('should reset user settings', async () => {
62
    await UserModel.create(userData);
63

64
    await UserModel.updateSettings({ general: { themeMode: 'dark' } });
65

66
    await UserModel.resetSettings();
67

68
    const userInDb = await UserModel.getUser();
69

70
    expect(userInDb.settings).toBeUndefined();
71
  });
72

73
  it('should clear the user table', async () => {
74
    await UserModel.create(userData);
75

76
    await UserModel.clear();
77

78
    const userInDb = await UserModel.table.count();
79

80
    expect(userInDb).toEqual(0);
81
  });
82
});
83

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

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

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

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