Skip to content
Snippets Groups Projects
Select Git revision
  • main
1 result

MaxCut_200.mc

Blame
  • index.spec.ts 5.60 KiB
    import { Fixtures } from '../../../../test/fixtures';
    import * as httpMock from '../../../../test/http-mock';
    import { mocked } from '../../../../test/util';
    import * as _hostRules from '../../../util/host-rules';
    import { GoDatasource } from '.';
    
    jest.mock('../../../util/host-rules');
    const hostRules = mocked(_hostRules);
    
    const getReleasesDirectMock = jest.fn();
    
    const getDigestGithubMock = jest.fn();
    const getDigestGitlabMock = jest.fn();
    const getDigestGitMock = jest.fn();
    const getDigestBitbucketMock = jest.fn();
    jest.mock('./releases-direct', () => {
      return {
        GoDirectDatasource: jest.fn().mockImplementation(() => {
          return {
            git: { getDigest: () => getDigestGitMock() },
            github: { getDigest: () => getDigestGithubMock() },
            gitlab: { getDigest: () => getDigestGitlabMock() },
            bitbucket: { getDigest: () => getDigestBitbucketMock() },
            getReleases: () => getReleasesDirectMock(),
          };
        }),
      };
    });
    
    const getReleasesProxyMock = jest.fn();
    jest.mock('./releases-goproxy', () => {
      return {
        GoProxyDatasource: jest.fn().mockImplementation(() => {
          return {
            getReleases: () => getReleasesProxyMock(),
          };
        }),
      };
    });
    
    const datasource = new GoDatasource();
    
    describe('modules/datasource/go/index', () => {
      describe('getReleases', () => {
        beforeEach(() => {
          jest.resetAllMocks();
          hostRules.find.mockReturnValue({});
          hostRules.hosts.mockReturnValue([]);
        });
    
        afterEach(() => {
          jest.resetAllMocks();
          delete process.env.GOPROXY;
        });
    
        it('fetches release info directly from VCS', async () => {
          const expected = { releases: [{ version: '0.0.1' }] };
          getReleasesProxyMock.mockResolvedValue(null);
          getReleasesDirectMock.mockResolvedValue(expected);
    
          const res = await datasource.getReleases({
            packageName: 'golang.org/foo/bar',
          });
    
          expect(res).toBe(expected);
          expect(getReleasesProxyMock).not.toHaveBeenCalled();
          expect(getReleasesDirectMock).toHaveBeenCalled();
        });
    
        it('supports GOPROXY', async () => {