1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-24 15:59:41 +02:00
portainer/app/react/portainer/registries/utils/findRegistryMatch.test.ts

81 lines
2.3 KiB
TypeScript

import { Registry, RegistryId, RegistryTypes } from '../types/registry';
import { findBestMatchRegistry } from './findRegistryMatch';
function buildTestRegistry(
id: RegistryId,
type: RegistryTypes,
name: string,
url: string
): Registry {
return {
Id: id,
Type: type,
URL: url,
Name: name,
Username: '',
Authentication: false,
BaseURL: '',
Ecr: { Region: '' },
Github: { OrganisationName: '', UseOrganisation: false },
Quay: { OrganisationName: '', UseOrganisation: false },
Gitlab: { InstanceURL: '', ProjectId: 0, ProjectPath: '' },
RegistryAccesses: {},
};
}
describe('findBestMatchRegistry', () => {
const registries: Array<Registry> = [
buildTestRegistry(
1,
RegistryTypes.DOCKERHUB,
'DockerHub',
'hub.docker.com'
),
buildTestRegistry(
2,
RegistryTypes.DOCKERHUB,
'DockerHub2',
'https://registry2.com'
),
buildTestRegistry(
3,
RegistryTypes.GITHUB,
'GitHub',
'https://registry3.com'
),
];
it('should return the registry with the given ID', () => {
const registryId = 2;
const result = findBestMatchRegistry('repository', registries, registryId);
expect(result).toEqual(registries[1]);
});
it('should return the DockerHub registry with matching username and URL', () => {
const repository = 'user1/repository';
const result = findBestMatchRegistry(repository, registries);
expect(result).toEqual(registries[0]);
});
it('should return the registry with a matching URL', () => {
const repository = 'https://registry2.com/repository';
const result = findBestMatchRegistry(repository, registries);
expect(result).toEqual(registries[1]);
});
it('should return the default DockerHub registry if no matches are found', () => {
const repository = 'repository';
const result = findBestMatchRegistry(repository, registries);
expect(result).toEqual(registries[0]);
});
it('when using something:latest, shouldn\'t choose "tes" docker', () => {
const repository = 'something:latest';
const result = findBestMatchRegistry(repository, [
...registries,
buildTestRegistry(4, RegistryTypes.CUSTOM, 'Test', 'tes'),
]);
expect(result).toEqual(registries[0]);
});
});