mirror of
https://github.com/Joxit/docker-registry-ui.git
synced 2025-04-26 06:59:52 +03:00
122 lines
4.2 KiB
JavaScript
122 lines
4.2 KiB
JavaScript
import { getBranching } from '../src/scripts/repositories.js';
|
|
import { DockerRegistryUIError } from '../src/scripts/error.js';
|
|
import assert from 'assert';
|
|
|
|
describe('repositories', () => {
|
|
describe('getBranching', () => {
|
|
it('should not branch for no levels', () => {
|
|
const branching = getBranching(0, 0);
|
|
assert.deepEqual(branching(['alpine', 'debian', 'nginx']), ['alpine', 'debian', 'nginx']);
|
|
assert.deepEqual(branching(['alpine', 'joxit/docker-registry-ui', 'joxit/docker-registry-ui/amd64', 'nginx']), [
|
|
'alpine',
|
|
'joxit/docker-registry-ui',
|
|
'joxit/docker-registry-ui/amd64',
|
|
'nginx',
|
|
]);
|
|
});
|
|
|
|
it('should branch for one level', () => {
|
|
const branching = getBranching(1, 1);
|
|
assert.deepEqual(branching(['alpine', 'debian', 'nginx']), ['alpine', 'debian', 'nginx']);
|
|
assert.deepEqual(branching(['alpine', 'joxit/docker-registry-ui', 'nginx']), [
|
|
'alpine',
|
|
{ images: ['joxit/docker-registry-ui'], repo: 'joxit/' },
|
|
'nginx',
|
|
]);
|
|
assert.deepEqual(
|
|
branching(['alpine', 'joxit/docker-registry-ui', 'joxit/kokai', 'joxit/docker-registry-ui/amd64', 'nginx']),
|
|
[
|
|
'alpine',
|
|
{ images: ['joxit/docker-registry-ui', 'joxit/docker-registry-ui/amd64', 'joxit/kokai'], repo: 'joxit/' },
|
|
'nginx',
|
|
]
|
|
);
|
|
});
|
|
|
|
it('should branch for two level', () => {
|
|
const branching = getBranching(2, 2);
|
|
assert.deepEqual(branching(['alpine', 'debian', 'nginx']), ['alpine', 'debian', 'nginx']);
|
|
assert.deepEqual(branching(['alpine', 'joxit/docker-registry-ui', 'nginx']), [
|
|
'alpine',
|
|
'joxit/docker-registry-ui',
|
|
'nginx',
|
|
]);
|
|
assert.deepEqual(
|
|
branching([
|
|
'alpine',
|
|
'joxit/docker-registry-ui',
|
|
'joxit/kokai',
|
|
'joxit/docker-registry-ui/amd64',
|
|
'joxit/docker-registry-ui/amd64/latest',
|
|
'joxit/docker-registry-ui/armv7',
|
|
'joxit/docker-registry-ui/armv7/latest',
|
|
'nginx',
|
|
]),
|
|
[
|
|
'alpine',
|
|
'joxit/docker-registry-ui',
|
|
{
|
|
images: [
|
|
'joxit/docker-registry-ui/amd64',
|
|
'joxit/docker-registry-ui/amd64/latest',
|
|
'joxit/docker-registry-ui/armv7',
|
|
'joxit/docker-registry-ui/armv7/latest',
|
|
],
|
|
repo: 'joxit/docker-registry-ui/',
|
|
},
|
|
'joxit/kokai',
|
|
'nginx',
|
|
]
|
|
);
|
|
});
|
|
|
|
it('should branch from one to two level', () => {
|
|
const branching = getBranching(1, 2);
|
|
assert.deepEqual(branching(['alpine', 'debian', 'nginx']), ['alpine', 'debian', 'nginx']);
|
|
assert.deepEqual(branching(['alpine', 'joxit/docker-registry-ui', 'nginx']), [
|
|
'alpine',
|
|
{ images: ['joxit/docker-registry-ui'], repo: 'joxit/' },
|
|
'nginx',
|
|
]);
|
|
assert.deepEqual(
|
|
branching([
|
|
'alpine',
|
|
'joxit/docker-registry-ui',
|
|
'joxit/kokai',
|
|
'joxit/docker-registry-ui/amd64',
|
|
'joxit/docker-registry-ui/amd64/latest',
|
|
'joxit/docker-registry-ui/armv7',
|
|
'joxit/docker-registry-ui/armv7/latest',
|
|
'nginx',
|
|
]),
|
|
[
|
|
'alpine',
|
|
{
|
|
images: [
|
|
'joxit/docker-registry-ui',
|
|
{
|
|
images: [
|
|
'joxit/docker-registry-ui/amd64',
|
|
'joxit/docker-registry-ui/amd64/latest',
|
|
'joxit/docker-registry-ui/armv7',
|
|
'joxit/docker-registry-ui/armv7/latest',
|
|
],
|
|
repo: 'joxit/docker-registry-ui/',
|
|
},
|
|
'joxit/kokai',
|
|
],
|
|
repo: 'joxit/',
|
|
},
|
|
'nginx',
|
|
]
|
|
);
|
|
});
|
|
});
|
|
|
|
it('should branch from one to two level', () => {
|
|
assert.throws(() => getBranching(2, 1), DockerRegistryUIError, `Did not throw on min > max`);
|
|
assert.throws(() => getBranching(-2, 1), DockerRegistryUIError, `Did not throw on min < 0`);
|
|
assert.throws(() => getBranching(2, -1), DockerRegistryUIError, `Did not throw on max < 0`);
|
|
assert.throws(() => getBranching('foo', 'bar'), DockerRegistryUIError, `Did not throw on max < 0`);
|
|
});
|
|
});
|