Skip to content
Snippets Groups Projects
Select Git revision
  • e310887f36575a9839901063014c2ee6731e73c0
  • master default
2 results

check-existing.spec.js

Blame
  • check-existing.spec.js 1.66 KiB
    const {
      prAlreadyExisted,
    } = require('../../../lib/workers/branch/check-existing');
    const defaultConfig = require('../../../lib/config/defaults').getConfig();
    const logger = require('../../_fixtures/logger');
    
    describe('workers/branch/check-existing', () => {
      describe('prAlreadyExisted', () => {
        let config;
        beforeEach(() => {
          config = {
            ...defaultConfig,
            api: { findPr: jest.fn() },
            logger,
            branchName: 'some-branch',
            prTitle: 'some-title',
          };
        });
        it('returns false if recreating closed PRs', async () => {
          config.recreateClosed = true;
          expect(await prAlreadyExisted(config)).toBe(false);
          expect(config.api.findPr.mock.calls.length).toBe(0);
        });
        it('returns false if both checks miss', async () => {
          config.recreatedClosed = true;
          expect(await prAlreadyExisted(config)).toBe(false);
          expect(config.api.findPr.mock.calls.length).toBe(2);
        });
        it('returns true if first check hits', async () => {
          config.api.findPr.mockReturnValueOnce({});
          expect(await prAlreadyExisted(config)).toBe(true);
          expect(config.api.findPr.mock.calls.length).toBe(1);
        });
        it('returns true if second check hits', async () => {
          config.api.findPr.mockReturnValueOnce(null);
          config.api.findPr.mockReturnValueOnce({});
          expect(await prAlreadyExisted(config)).toBe(true);
          expect(config.api.findPr.mock.calls.length).toBe(2);
        });
        it('returns false if mistaken', async () => {
          config.api.findPr.mockReturnValueOnce({
            closed_at: '2017-10-15T21:28:07.000Z',
          });
          expect(await prAlreadyExisted(config)).toBe(false);
        });
      });
    });