config-manager.spec.ts 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import { mock } from 'vitest-mock-extended';
  2. import { Config } from '../models/config';
  3. import { configManager } from './config-manager';
  4. import type { S2sMessagingService } from './s2s-messaging/base';
  5. describe('ConfigManager test', () => {
  6. const s2sMessagingServiceMock = mock<S2sMessagingService>();
  7. beforeAll(async() => {
  8. process.env.CONFIG_PUBSUB_SERVER_TYPE = 'nchan';
  9. configManager.setS2sMessagingService(s2sMessagingServiceMock);
  10. });
  11. describe('updateConfigsInTheSameNamespace()', () => {
  12. test('invoke publishUpdateMessage()', async() => {
  13. // setup
  14. Config.bulkWrite = vi.fn();
  15. configManager.loadConfigs = vi.fn();
  16. configManager.publishUpdateMessage = vi.fn();
  17. // when
  18. const dummyConfig = { dummyKey: 'dummyValue' };
  19. await configManager.updateConfigsInTheSameNamespace('dummyNs', dummyConfig);
  20. // then
  21. expect(Config.bulkWrite).toHaveBeenCalledTimes(1);
  22. expect(configManager.loadConfigs).toHaveBeenCalledTimes(1);
  23. expect(configManager.publishUpdateMessage).toHaveBeenCalledTimes(1);
  24. });
  25. test('does not invoke publishUpdateMessage()', async() => {
  26. // setup
  27. Config.bulkWrite = vi.fn();
  28. configManager.loadConfigs = vi.fn();
  29. configManager.publishUpdateMessage = vi.fn();
  30. // when
  31. const dummyConfig = { dummyKey: 'dummyValue' };
  32. await configManager.updateConfigsInTheSameNamespace('dummyNs', dummyConfig, true);
  33. // then
  34. expect(Config.bulkWrite).toHaveBeenCalledTimes(1);
  35. expect(configManager.loadConfigs).toHaveBeenCalledTimes(1);
  36. expect(configManager.publishUpdateMessage).not.toHaveBeenCalled();
  37. });
  38. });
  39. });