stat-tracker/module/__tests__/schemas/barGraph.test.mjs

51 lines
1.6 KiB
JavaScript

import { api } from "../../api.mjs";
export function barGraphTests(quench) {
quench.registerBatch(
`${__ID__}.barGraphSchema`,
(ctx) => {
const { describe, it, expect } = ctx;
describe(`the bar graph schema`, () => {
it(`should default any additional properties left out`, () => {
const { value, error } = api.schemas.graphs.bar.validate(
{ type: `bar` },
);
expect(value).to.have.keys(`type`, `stacked`, `showEmptyBuckets`);
expect(error).to.be.undefined;
});
it(`should allow stacked to be provided specifically`, () => {
const { value, error } = api.schemas.graphs.bar.validate(
{ type: `bar`, stacked: true },
);
expect(value).to.have.keys(`type`, `stacked`, `showEmptyBuckets`);
expect(error).to.be.undefined;
});
it(`should allow showEmptyBuckets to be provided specifically`, () => {
const { value, error } = api.schemas.graphs.bar.validate(
{ type: `bar`, showEmptyBuckets: true },
);
expect(value).to.have.keys(`type`, `stacked`, `showEmptyBuckets`);
expect(error).to.be.undefined;
});
it(`should only allow showEmptyBuckets to be a boolean`, () => {
const { value, error } = api.schemas.graphs.bar.validate(
{ type: `bar`, showEmptyBuckets: `a potato` },
);
expect(value).to.have.keys(`type`, `stacked`, `showEmptyBuckets`);
expect(error).not.to.be.undefined;
});
it(`should only allow stacked to be a boolean`, () => {
const { error } = api.schemas.graphs.bar.validate(
{ type: `bar`, stacked: `a potato` },
);
expect(error).not.to.be.undefined;
});
});
},
);
};