Browse Source

Refactor metrics tests to use mock from vitest-mock-extended and improve type imports

Yuki Takei 9 months ago
parent
commit
29f890a475

+ 5 - 7
apps/app/src/features/opentelemetry/server/custom-metrics/application-metrics.spec.ts

@@ -1,6 +1,7 @@
 import crypto from 'crypto';
 import crypto from 'crypto';
 
 
-import { metrics } from '@opentelemetry/api';
+import { metrics, type Meter, type ObservableGauge } from '@opentelemetry/api';
+import { mock } from 'vitest-mock-extended';
 
 
 import { configManager } from '~/server/service/config-manager';
 import { configManager } from '~/server/service/config-manager';
 
 
@@ -34,15 +35,12 @@ vi.mock('~/server/service/growi-info', () => ({
 }));
 }));
 
 
 describe('addApplicationMetrics', () => {
 describe('addApplicationMetrics', () => {
-  const mockMeter = {
-    createObservableGauge: vi.fn(),
-    addBatchObservableCallback: vi.fn(),
-  };
-  const mockGauge = Symbol('gauge');
+  const mockMeter = mock<Meter>();
+  const mockGauge = mock<ObservableGauge>();
 
 
   beforeEach(() => {
   beforeEach(() => {
     vi.clearAllMocks();
     vi.clearAllMocks();
-    vi.mocked(metrics.getMeter).mockReturnValue(mockMeter as any);
+    vi.mocked(metrics.getMeter).mockReturnValue(mockMeter);
     mockMeter.createObservableGauge.mockReturnValue(mockGauge);
     mockMeter.createObservableGauge.mockReturnValue(mockGauge);
   });
   });
 
 

+ 6 - 8
apps/app/src/features/opentelemetry/server/custom-metrics/user-counts-metrics.spec.ts

@@ -1,4 +1,5 @@
-import { metrics } from '@opentelemetry/api';
+import { metrics, type Meter, type ObservableGauge } from '@opentelemetry/api';
+import { mock } from 'vitest-mock-extended';
 
 
 import { addUserCountsMetrics } from './user-counts-metrics';
 import { addUserCountsMetrics } from './user-counts-metrics';
 
 
@@ -29,16 +30,13 @@ vi.mock('~/server/service/growi-info', () => ({
 }));
 }));
 
 
 describe('addUserCountsMetrics', () => {
 describe('addUserCountsMetrics', () => {
-  const mockMeter = {
-    createObservableGauge: vi.fn(),
-    addBatchObservableCallback: vi.fn(),
-  };
-  const mockUserCountGauge = Symbol('userCountGauge');
-  const mockActiveUserCountGauge = Symbol('activeUserCountGauge');
+  const mockMeter = mock<Meter>();
+  const mockUserCountGauge = mock<ObservableGauge>();
+  const mockActiveUserCountGauge = mock<ObservableGauge>();
 
 
   beforeEach(() => {
   beforeEach(() => {
     vi.clearAllMocks();
     vi.clearAllMocks();
-    vi.mocked(metrics.getMeter).mockReturnValue(mockMeter as unknown as ReturnType<typeof metrics.getMeter>);
+    vi.mocked(metrics.getMeter).mockReturnValue(mockMeter);
     mockMeter.createObservableGauge
     mockMeter.createObservableGauge
       .mockReturnValueOnce(mockUserCountGauge)
       .mockReturnValueOnce(mockUserCountGauge)
       .mockReturnValueOnce(mockActiveUserCountGauge);
       .mockReturnValueOnce(mockActiveUserCountGauge);