mirror of
https://github.com/Joxit/docker-registry-ui.git
synced 2025-04-27 07:29:54 +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