mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-11 07:55:47 +01:00
91 lines
2.2 KiB
TypeScript
91 lines
2.2 KiB
TypeScript
import * as validator from "./repositoryValidation";
|
|
|
|
describe("repository name validation", () => {
|
|
// we don't need rich tests, because they are in validation.test.js
|
|
it("should validate the name", () => {
|
|
expect(validator.isNameValid("scm-manager")).toBe(true);
|
|
});
|
|
|
|
it("should fail for old nested repository names", () => {
|
|
// in v2 this is not allowed
|
|
expect(validator.isNameValid("scm/manager")).toBe(false);
|
|
expect(validator.isNameValid("scm/ma/nager")).toBe(false);
|
|
});
|
|
|
|
it("should allow same names as the backend", () => {
|
|
const validPaths = ["scm", "s", "sc", ".hiddenrepo", "b.", "...", "..c", "d..", "a..c"];
|
|
|
|
validPaths.forEach(path => expect(validator.isNameValid(path)).toBe(true));
|
|
});
|
|
|
|
it("should deny same names as the backend", () => {
|
|
const invalidPaths = [
|
|
".",
|
|
"/",
|
|
"//",
|
|
"..",
|
|
"/.",
|
|
"/..",
|
|
"./",
|
|
"../",
|
|
"/../",
|
|
"/./",
|
|
"/...",
|
|
"/abc",
|
|
".../",
|
|
"/sdf/",
|
|
"asdf/",
|
|
"./b",
|
|
"scm/plugins/.",
|
|
"scm/../plugins",
|
|
"scm/main/",
|
|
"/scm/main/",
|
|
"scm/./main",
|
|
"scm//main",
|
|
"scm\\main",
|
|
"scm/main-$HOME",
|
|
"scm/main-${HOME}-home",
|
|
"scm/main-%HOME-home",
|
|
"scm/main-%HOME%-home",
|
|
"abc$abc",
|
|
"abc%abc",
|
|
"abc<abc",
|
|
"abc>abc",
|
|
"abc#abc",
|
|
"abc+abc",
|
|
"abc{abc",
|
|
"abc}abc",
|
|
"abc(abc",
|
|
"abc)abc",
|
|
"abc[abc",
|
|
"abc]abc",
|
|
"abc|abc",
|
|
"scm/main",
|
|
"scm/plugins/git-plugin",
|
|
".scm/plugins",
|
|
"a/b..",
|
|
"a/..b",
|
|
"scm/main",
|
|
"scm/plugins/git-plugin",
|
|
"scm/plugins/git-plugin"
|
|
];
|
|
|
|
invalidPaths.forEach(path => expect(validator.isNameValid(path)).toBe(false));
|
|
});
|
|
});
|
|
|
|
describe("repository contact validation", () => {
|
|
it("should allow empty contact", () => {
|
|
expect(validator.isContactValid("")).toBe(true);
|
|
});
|
|
|
|
// we don't need rich tests, because they are in validation.test.js
|
|
it("should allow real mail addresses", () => {
|
|
expect(validator.isContactValid("trici.mcmillian@hitchhiker.com")).toBe(true);
|
|
});
|
|
|
|
it("should fail on invalid mail addresses", () => {
|
|
expect(validator.isContactValid("tricia")).toBe(false);
|
|
});
|
|
});
|