hunk.code_window:       theme={theme}
         tabs={tabs}
         showUserPreferences={showUserPreferences}
         allowedNotificationActions={allowedNotificationActions}
         offset={popover?.offset}
         position={popover?.position}
       >
         {({ unseenCount }) => (
           <NotificationBell
             colorScheme={colorScheme}
             unseenCount={unseenCount}
  
hunk.labels: keep keep keep keep replace replace keep keep keep keep keep
hunk.after_edit:       offset={popoverConfig?.offset}
         position={popoverConfig?.position}
  
hunk.file_path: packages/notification-center/src/components/notification-center-web-component/notification-center-component.tsx
hunk.type: replace
file: import { Novu } from '../novu';
  import axios from 'axios';
  import { ChannelTypeEnum } from '@novu/shared';
  
  const mockConfig = {
    apiKey: '1234',
  };
  
  jest.mock('axios');
  
  describe('test use of novus node package - Integrations class', () => {
    const mockedAxios = axios as jest.Mocked<typeof axios>;
    let novu: Novu;
  
    beforeEach(() => {
      mockedAxios.create.mockReturnThis();
      novu = new Novu(mockConfig.apiKey);
    });
  
    test('should fetch all the integrations correctly', async () => {
      mockedAxios.post.mockResolvedValue({});
  
      await novu.integrations.getAll();
  
      expect(mockedAxios.get).toHaveBeenCalled();
      expect(mockedAxios.get).toHaveBeenCalledWith('/integrations');
    });
  
    test('should create an integration with the given parameters', async () => {
      mockedAxios.post.mockResolvedValue({});
  
      await novu.integrations.create('emailjs', {
        credentials: {
          apiKey: 'api key',
          secretKey: 'api secret',
        },
        active: true,
        channel: ChannelTypeEnum.EMAIL,
        check: true,
      });
  
      expect(mockedAxios.post).toHaveBeenCalled();
      expect(mockedAxios.post).toHaveBeenCalledWith('/integrations', {
        providerId: 'emailjs',
        credentials: {
          apiKey: 'api key',
          secretKey: 'api secret',
        },
        active: true,
        channel: ChannelTypeEnum.EMAIL,
        check: true,
      });
    });
  
    test('should fetch all the active integrations correctly', async () => {
      mockedAxios.post.mockResolvedValue({});
  
      await novu.integrations.getActive();
  
      expect(mockedAxios.get).toHaveBeenCalled();
      expect(mockedAxios.get).toHaveBeenCalledWith('/integrations/active');
    });
  
    test('should get the webhook provider status of integration correctly', async () => {
      mockedAxios.post.mockResolvedValue({});
  
      await novu.integrations.getWebhookProviderStatus('emailjs');
  
      expect(mockedAxios.get).toHaveBeenCalled();
      expect(mockedAxios.get).toHaveBeenCalledWith(
        `integrations/webhook/provider/emailjs/status`
      );
    });
  
    test('should update the given integration', async () => {
      mockedAxios.post.mockResolvedValue({});
  
      await novu.integrations.update('INTEGRATION_ID', {
        active: true,
        check: false,
        credentials: {
          apiKey: 'newApiKey',
          secretKey: 'newApiSecret',
        },
      });
  
      expect(mockedAxios.put).toHaveBeenCalled();
      expect(mockedAxios.put).toHaveBeenCalledWith(
        '/integrations/INTEGRATION_ID',
        {
          active: true,
          check: false,
          credentials: {
            apiKey: 'newApiKey',
            secretKey: 'newApiSecret',
          },
        }
      );
    });
  
    test('should delete the specified integration', async () => {
      mockedAxios.post.mockResolvedValue({});
  
      await novu.integrations.delete('INTEGRATION_ID');
  
      expect(mockedAxios.delete).toHaveBeenCalled();
      expect(mockedAxios.delete).toHaveBeenCalledWith(
        '/integrations/INTEGRATION_ID'
      );
    });
  });
  