import { jest } from '@jest/globals';
const { EventName } = require('@paddle/paddle-node-sdk');

const cancelMock = jest.fn();
class Paddle {
  apiKey: string;
  options: Record<string, any>;

  constructor(apiKey: string, options: Record<string, any>) {
    this.apiKey = apiKey;
    this.options = options;
  }

  webhooks = {
    unmarshal: (rawRequestBody, secretKey, signature) => JSON.parse(rawRequestBody),
  };
  subscriptions = {
    cancel: cancelMock,
    get: () => ({
      managementUrls: {
        cancel: 'http://cancel-subscription.com',
      },
    }),
  };
}

const Environment = { production: 'production', sandbox: 'sandbox', development: 'development' };

export { cancelMock, Environment, EventName, Paddle };
