app.service.spec.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. import { Test, TestingModule } from '@nestjs/testing';
  2. import { AppService } from './app.service';
  3. import { ConfigService } from './config.service';
  4. import { DatasetsService } from './datasets.service';
  5. import { DbService } from './db.service';
  6. import { HandbrakeService } from './handbrake.service';
  7. import { MaintenanceService } from './maintenance.service';
  8. import { TaskQueueService } from './task-queue.service';
  9. import { WatcherService } from './watcher.service';
  10. // Mock chokidar
  11. jest.mock('chokidar', () => ({
  12. watch: jest.fn(),
  13. }));
  14. describe('AppService', () => {
  15. let service: AppService;
  16. let configService: jest.Mocked<ConfigService>;
  17. beforeEach(async () => {
  18. const mockConfigService = {
  19. getSettings: jest.fn(),
  20. setSettings: jest.fn(),
  21. deleteSetting: jest.fn(),
  22. };
  23. const mockDbService = {};
  24. const mockWatcherService = {};
  25. const mockMaintenanceService = {};
  26. const mockHandbrakeService = {};
  27. const mockDatasetsService = {};
  28. const mockTaskQueueService = {};
  29. const module: TestingModule = await Test.createTestingModule({
  30. providers: [
  31. AppService,
  32. {
  33. provide: DbService,
  34. useValue: mockDbService,
  35. },
  36. {
  37. provide: WatcherService,
  38. useValue: mockWatcherService,
  39. },
  40. {
  41. provide: ConfigService,
  42. useValue: mockConfigService,
  43. },
  44. {
  45. provide: MaintenanceService,
  46. useValue: mockMaintenanceService,
  47. },
  48. {
  49. provide: HandbrakeService,
  50. useValue: mockHandbrakeService,
  51. },
  52. {
  53. provide: DatasetsService,
  54. useValue: mockDatasetsService,
  55. },
  56. {
  57. provide: TaskQueueService,
  58. useValue: mockTaskQueueService,
  59. },
  60. ],
  61. }).compile();
  62. service = module.get<AppService>(AppService);
  63. configService = module.get(ConfigService);
  64. });
  65. it('should be defined', () => {
  66. expect(service).toBeDefined();
  67. });
  68. describe('getSettings', () => {
  69. it('should call configService.getSettings with key and defaultValue', () => {
  70. const mockResult = 'testValue';
  71. configService.getSettings.mockReturnValue(mockResult);
  72. const result = service.getSettings('testKey', 'default');
  73. expect(configService.getSettings).toHaveBeenCalledWith(
  74. 'testKey',
  75. 'default',
  76. );
  77. expect(result).toEqual(mockResult);
  78. });
  79. });
  80. describe('setSettings', () => {
  81. it('should call configService.setSettings', () => {
  82. const settings = { key: 'value' };
  83. const mockResult = true;
  84. configService.setSettings.mockReturnValue(mockResult);
  85. const result = service.setSettings(settings);
  86. expect(configService.setSettings).toHaveBeenCalledWith(settings);
  87. expect(result).toEqual(mockResult);
  88. });
  89. });
  90. describe('deleteSetting', () => {
  91. it('should call configService.deleteSetting', () => {
  92. const mockResult = true;
  93. configService.deleteSetting.mockReturnValue(mockResult);
  94. const result = service.deleteSetting('testKey');
  95. expect(configService.deleteSetting).toHaveBeenCalledWith('testKey');
  96. expect(result).toEqual(mockResult);
  97. });
  98. });
  99. });