Skip to content

Commit

Permalink
test(branching): start new configurable branching repository system
Browse files Browse the repository at this point in the history
  • Loading branch information
Joxit committed May 25, 2023
1 parent e7e762d commit 03157d8
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 0 deletions.
27 changes: 27 additions & 0 deletions src/scripts/repositories.js
Original file line number Diff line number Diff line change
@@ -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 changes: 31 additions & 0 deletions test/repositories.test.js
Original file line number Diff line number Diff line change
@@ -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',
]);
});
});
});

0 comments on commit 03157d8

Please sign in to comment.