env/index.test.js
2022-09-11 14:19:45 +00:00

71 lines
2 KiB
JavaScript

const {
slugify, getRepositoryOwner, getRepositoryName, getRefName, getShaShort,
} = require('./index');
test('slugifies text', () => {
expect(slugify(' /abc+efg*123/test§xyz ')).toEqual('abc-efg-123-test-xyz');
});
test('slugifies a text to a maximum length', () => {
expect(slugify(' /abc+efg*123/test§xyz 1234567 /(ö) ', 16))
.toEqual('abc-efg-123-test');
});
test('slugifies a text to a maximum length with trailing dash', () => {
expect(slugify(' /abc+efg*123/test§xyz 1234567 /(ö) ', 17))
.toEqual('abc-efg-123-test');
});
test('slugifies ref name with dash', () => {
expect(slugify('feat/feature-branch-1')).toEqual('feat-feature-branch-1');
});
test('slugifies empty text', () => {
expect(slugify('')).toEqual('');
});
test('gets repository owner', () => {
expect(getRepositoryOwner('FranzDiebold/github-env-vars-action'))
.toEqual('FranzDiebold');
});
test('gets repository owner for empty repository', () => {
expect(getRepositoryOwner(undefined)).toBeFalsy();
});
test('gets repository name from repository', () => {
expect(getRepositoryName('FranzDiebold/github-env-vars-action'))
.toEqual('github-env-vars-action');
});
test('gets repository name for empty repository', () => {
expect(getRepositoryName(undefined)).toBeFalsy();
});
test('gets ref name from simple ref', () => {
expect(getRefName('refs/heads/feature-branch-1'))
.toEqual('feature-branch-1');
});
test('gets ref name from tag', () => {
expect(getRefName('refs/tags/v1.3.7'))
.toEqual('v1.3.7');
});
test('gets ref name from complex ref', () => {
expect(getRefName('refs/heads/feat/feature-branch-1'))
.toEqual('feat/feature-branch-1');
});
test('gets ref name for empty ref', () => {
expect(getRefName(undefined)).toBeFalsy();
});
test('gets short SHA', () => {
expect(getShaShort('ffac537e6cbbf934b08745a378932722df287a53'))
.toEqual('ffac537e');
});
test('gets short SHA for empty SHA', () => {
expect(getShaShort(undefined)).toBeFalsy();
});