Skip to content
Snippets Groups Projects
check-existing.spec.ts 1.34 KiB
import { defaultConfig, partial, platform } from '../../../test/util';
import { PR_STATE_CLOSED } from '../../constants/pull-requests';
import { BranchConfig } from '../common';
import { prAlreadyExisted } from './check-existing';

describe('workers/branch/check-existing', () => {
  describe('prAlreadyExisted', () => {
    let config: BranchConfig;
    beforeEach(() => {
      config = partial<BranchConfig>({
        ...defaultConfig,
        branchName: 'some-branch',
        prTitle: 'some-title',
      });
      jest.resetAllMocks();
    });
    it('returns false if recreating closed PRs', async () => {
      config.recreateClosed = true;
      expect(await prAlreadyExisted(config)).toBeNull();
      expect(platform.findPr).toHaveBeenCalledTimes(0);
    });
    it('returns false if check misses', async () => {
      config.recreatedClosed = true;
      expect(await prAlreadyExisted(config)).toBeNull();
      expect(platform.findPr).toHaveBeenCalledTimes(1);
    });
    it('returns true if first check hits', async () => {
      platform.findPr.mockResolvedValueOnce({ number: 12 } as never);
      platform.getPr.mockResolvedValueOnce({
        number: 12,
        state: PR_STATE_CLOSED,
      } as never);
      expect(await prAlreadyExisted(config)).toEqual({ number: 12 });
      expect(platform.findPr).toHaveBeenCalledTimes(1);
    });
  });
});