43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
import { api } from "../../api.mjs";
|
|
|
|
const graph = { type: `bar` };
|
|
const buckets = { type: `string` };
|
|
|
|
export function tableTests(quench) {
|
|
quench.registerBatch(
|
|
`${__ID__}.tableSchema`,
|
|
(ctx) => {
|
|
const { describe, it, expect } = ctx;
|
|
|
|
describe(`the table schema`, () => {
|
|
it(`should require that name be a non-empty string`, () => {
|
|
const { error } = api.schemas.table.validate(
|
|
{ name: ``, graph, buckets },
|
|
);
|
|
expect(error).not.to.be.undefined;
|
|
});
|
|
|
|
it(`should require that name only contain alphanumeric characters`, () => {
|
|
const { error } = api.schemas.table.validate(
|
|
{ name: `:(`, graph, buckets },
|
|
);
|
|
expect(error).not.to.be.undefined;
|
|
});
|
|
|
|
it(`should allow the name to contain spaces`, () => {
|
|
const { error } = api.schemas.table.validate(
|
|
{ name: `a name with spaces`, graph, buckets },
|
|
);
|
|
expect(error).to.be.undefined;
|
|
});
|
|
|
|
it(`should allow a single forward slash for subtables`, () => {
|
|
const { error } = api.schemas.table.validate(
|
|
{ name: `Table/subtable`, graph, buckets },
|
|
);
|
|
expect(error).to.be.undefined;
|
|
});
|
|
});
|
|
},
|
|
);
|
|
};
|