stitch-ui
Version:
132 lines (103 loc) • 4.38 kB
JavaScript
/* global it, describe, expect */
import {
validateCollectionName,
validateDBName,
validateNamespace,
validateFieldName
} from "../validation";
describe("validateCollectionName", () => {
it("Should return null when input is valid", () => {
expect(validateCollectionName("funNameHere")).toEqual(null);
});
it("Should return null when input is valid", () => {
expect(validateCollectionName("funNameHere.notReally")).toEqual(null);
});
it("Should return an error message when input is empty", () => {
expect(validateCollectionName("")).not.toEqual(null);
});
it("Should return an error message when input starts with 'system.'", () => {
expect(validateCollectionName("system.testCollection")).not.toEqual(null);
});
it("Should return an error message when input starts with '.'", () => {
expect(validateCollectionName(".startingWithDot")).not.toEqual(null);
});
it("Should return an error message when input contains '$'", () => {
expect(validateCollectionName("illegal$Name")).not.toEqual(null);
});
it("Should return an error message when input contains '\\'", () => {
expect(validateCollectionName("illegal\\Name")).not.toEqual(null);
});
it("Should return an error message when input contains '/'", () => {
expect(validateCollectionName("illegal/Name")).not.toEqual(null);
});
it("Should return an error message when input contains null byte '\u0000'", () => {
expect(validateCollectionName("illegal\u0000Name")).not.toEqual(null);
});
});
describe("validateDBName", () => {
it("Should return null when input is valid", () => {
expect(validateDBName("seriousNameHere")).toEqual(null);
});
it("Should return an error message when input is empty", () => {
expect(validateDBName("")).not.toEqual(null);
});
it("Should return an error message when input is too long", () => {
expect(
validateDBName(
"reallyLongDatabaseNameWhereYouProbablyDontKeepDataBecauseItsLong"
)
).not.toEqual(null);
});
it("Should return an error message when input contains '$'", () => {
expect(validateDBName("illegal$Name")).not.toEqual(null);
});
it("Should return an error message when input contains '\\'", () => {
expect(validateDBName("illegal\\Name")).not.toEqual(null);
});
it("Should return an error message when input contains '.''", () => {
expect(validateDBName("illegal.Name")).not.toEqual(null);
});
it("Should return an error message when input contains '/'", () => {
expect(validateDBName("illegal/Name")).not.toEqual(null);
});
it("Should return an error message when input contains null byte '\u0000'", () => {
expect(validateDBName("illegal\u0000Name")).not.toEqual(null);
});
it("Should return an error message when input is 'system'", () => {
expect(validateDBName("system")).not.toEqual(null);
});
it("Should return an error message when input is 'local'", () => {
expect(validateDBName("local")).not.toEqual(null);
});
it("Should return an error message when input is 'admin'", () => {
expect(validateDBName("admin")).not.toEqual(null);
});
});
describe("validateNamespace", () => {
it("Should return null when input is valid", () => {
expect(validateNamespace("serious.namespace")).toEqual(null);
});
it("Should return null when input is valid", () => {
expect(validateNamespace("serious.name.space")).toEqual(null);
});
it("Should return an error message when input beings with '.'", () => {
expect(validateNamespace(".invalidNamespace")).not.toEqual(null);
});
it("Should return an error message when input ends with '.'", () => {
expect(validateNamespace("invalidNamespace.")).not.toEqual(null);
});
it("Should return an error message when input does not contain a delimiting '.'", () => {
expect(validateNamespace("invalidNamespace")).not.toEqual(null);
});
});
describe("validateFieldName", () => {
it("Should return null when input is valid", () => {
expect(validateFieldName("thisIsAField")).toEqual(null);
});
it("Should return an error message when input contains null byte '\u0000'", () => {
expect(validateFieldName("invalid\u0000Field")).not.toEqual(null);
});
it("Should return an error message when input contains '$'", () => {
expect(validateFieldName("$no")).not.toEqual(null);
});
});