mirror of
https://github.com/Joxit/docker-registry-ui.git
synced 2025-04-30 00:49:53 +03:00
test(branching): start new configurable branching repository system
This commit is contained in:
parent
e7e762d6d9
commit
03157d841e
2 changed files with 58 additions and 0 deletions
27
src/scripts/repositories.js
Normal file
27
src/scripts/repositories.js
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
const getRepositoryName = (split, max) => {
|
||||||
|
let repositoryName = '';
|
||||||
|
for (let i = 0; i < max; i++) {
|
||||||
|
repositoryName += `${split[i]}/`;
|
||||||
|
}
|
||||||
|
return repositoryName;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getBranching =
|
||||||
|
(min = 1, max = 1) =>
|
||||||
|
(repositories) =>
|
||||||
|
repositories.sort().reduce(function (acc, image) {
|
||||||
|
const split = image.split('/');
|
||||||
|
if (split.length > min && min > 0) {
|
||||||
|
const repoName = getRepositoryName(split, max);
|
||||||
|
if (acc.length === 0 || acc[acc.length - 1].repo != repoName) {
|
||||||
|
acc.push({
|
||||||
|
repo: repoName,
|
||||||
|
images: [],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
acc[acc.length - 1].images.push(image);
|
||||||
|
return acc;
|
||||||
|
}
|
||||||
|
acc.push(image);
|
||||||
|
return acc;
|
||||||
|
}, []);
|
31
test/repositories.test.js
Normal file
31
test/repositories.test.js
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
import { getBranching } from '../src/scripts/repositories.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', 'nginx']), [
|
||||||
|
'alpine',
|
||||||
|
'joxit/docker-registry-ui',
|
||||||
|
'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', 'nginx']), [
|
||||||
|
'alpine',
|
||||||
|
{ images: ['joxit/docker-registry-ui', 'joxit/kokai'], repo: 'joxit/' },
|
||||||
|
'nginx',
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
Loading…
Add table
Add a link
Reference in a new issue