// Mock the @google-cloud/logging library jest.mock('@google-cloud/logging', () => { return { Logging: jest.fn().mockImplementation(() => ({ setDetectedResource: jest.fn().mockResolvedValue({}), log: jest.fn().mockImplementation(() => ({ entry: jest.fn().mockReturnValue({}), write: jest.fn().mockResolvedValue([true]), })) })) } }) // Mock the FirestoreAdapter to prevent actual network calls jest.mock('../firestore', () => { return { FirestoreAdapter: jest.fn().mockImplementation(() => ({ getDoc: jest.fn().mockResolvedValue({ logLevel: 'info' }), setDoc: jest.fn().mockResolvedValue(true) })) } }) import { LoggingAdapter } from '..' describe('testing logging adapter', () => { let $logger: LoggingAdapter beforeEach(async () => { $logger = LoggingAdapter.getInstance() await $logger.initializeSettings('development', 'test-service', 'unit-test') }) afterEach(() => { jest.clearAllMocks() }) test('should send debug log ', () => { const result = $logger.debug({ message: { env: 'test', timestamp: new Date().toISOString(), service: 'logging-adapter', process: 'testing logging adapter', action: 'should send debug log', tenant_id: '1', success: true, }, }) expect(result).toBeTruthy() }) test('should send warn log ', async () => { const result = await $logger.warn({ message: { env: 'test', timestamp: new Date().toISOString(), service: 'logging-adapter', process: 'testing logging adapter', action: 'should send warn log', tenant_id: '1', success: true, }, }) expect(result).toBeTruthy() }) test('should send error log ', async () => { const result = await $logger.error({ message: { env: 'test', timestamp: new Date().toISOString(), service: 'logging-adapter', process: 'testing logging adapter', action: 'should send error log', tenant_id: '1', success: true, }, }) expect(result).toBeTruthy() }) test('should send info log with labels', async () => { const result = await $logger.info({ labels: { location: 'test', service: 'logging-adapter', method: 'testing logging adapter', }, message: { env: 'test', timestamp: new Date().toISOString(), service: 'logging-adapter', process: 'testing logging adapter', action: 'should send info log with labels', tenant_id: '1', success: true, }, }) expect(result).toBeTruthy() }) })