webamp/js/skinSprites.test.js
2017-07-13 19:54:00 -07:00

42 lines
1.2 KiB
JavaScript

import skinSprites from "./skinSprites";
const each = (obj, iterator) => {
Object.keys(obj).forEach(key => {
iterator(obj[key]);
});
};
const getNames = arr => arr.map(item => item.name);
describe("skinSprites", () => {
it("each spritSheet has a unique name", () => {
const spriteSheetNames = Object.keys(skinSprites);
const seenNames = [];
spriteSheetNames.forEach(name => {
expect(seenNames).not.toContain(name);
seenNames.push(name);
});
});
it("each sprite has a unique name", () => {
let spriteNames = [];
each(skinSprites, spriteSheet => {
spriteNames = spriteNames.concat(getNames(spriteSheet));
});
const seenNames = [];
spriteNames.forEach(name => {
expect(seenNames).not.toContain(name);
seenNames.push(name);
});
});
it("each sprite has the needed properties", () => {
each(skinSprites, spriteSheet => {
spriteSheet.forEach(sprite => {
expect(typeof sprite.name).toBe("string");
expect(typeof sprite.x).toBe("number");
expect(typeof sprite.y).toBe("number");
expect(typeof sprite.height).toBe("number");
expect(typeof sprite.width).toBe("number");
});
});
});
});