UNPKG

@hackoregon/component-library

Version:

Official repo for Hack Oregon React component library

189 lines (186 loc) 4.38 kB
"use strict"; var _checkData = _interopRequireDefault(require("./checkData")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } describe("checkData", function () { it("should add an error for invalid types", function () { expect((0, _checkData["default"])({}, ["doorKey", "houseKey"])).to.eql({ allKeysValid: false, invalidType: true }); expect((0, _checkData["default"])({ keyType: "door" }, "doorKey")).to.eql({ allKeysValid: false, invalidType: true }); expect((0, _checkData["default"])({}, ["doorKey", "houseKey"])).to.eql({ allKeysValid: false, invalidType: true }); }); it("should work for a simple test case", function () { expect((0, _checkData["default"])([{ keyType: "door", lockType: "door" }, { keyType: "car", lockType: "plane" }], ["keyType"])).to.eql({ allKeysValid: true, invalidType: false, keyType: { valid: 2, total: 2 } }); }); it("should ignore unchecked keys", function () { expect((0, _checkData["default"])([{ keyType: "door", lockType: "door", junk: "trunk" }, { keyType: "car", lockType: "plane" }], ["keyType"])).to.eql({ allKeysValid: true, invalidType: false, keyType: { valid: 2, total: 2 } }); }); it("should handle multiple keys", function () { expect((0, _checkData["default"])([{ keyType: "door", lockType: "door", junk: "trunk" }, { keyType: "car", lockType: "plane" }], ["keyType", "lockType"])).to.eql({ allKeysValid: true, invalidType: false, keyType: { valid: 2, total: 2 }, lockType: { valid: 2, total: 2 } }); }); it("should handle invalid data properly", function () { expect((0, _checkData["default"])([{ keyType: "door", lockType: "door", junk: "trunk" }, { keyType: "car", lockType: "plane" }], ["keyType", "lockType", "junk"])).to.eql({ allKeysValid: false, invalidType: false, keyType: { valid: 2, total: 2 }, lockType: { valid: 2, total: 2 }, junk: { valid: 1, total: 2 } }); }); it("should handle invalid keys properly", function () { expect((0, _checkData["default"])([{ keyType: "door", lockType: "door", junk: "trunk" }, { keyType: "car", lockType: "plane" }], ["keyType", "lockType", "category"])).to.eql({ allKeysValid: false, invalidType: false, keyType: { valid: 2, total: 2 }, lockType: { valid: 2, total: 2 }, category: { valid: 0, total: 2 } }); }); it("should work for a simple object test case", function () { expect((0, _checkData["default"])({ keyType: "door", lockType: "door" }, ["keyType"], true)).to.eql({ allKeysValid: true, invalidType: false, keyType: { valid: 1, total: 1 } }); }); it("should handle object multiple keys", function () { expect((0, _checkData["default"])({ keyType: "door", lockType: "door", junk: "trunk" }, ["keyType", "lockType"], true)).to.eql({ allKeysValid: true, invalidType: false, keyType: { valid: 1, total: 1 }, lockType: { valid: 1, total: 1 } }); }); it("should handle object missing keys properly", function () { expect((0, _checkData["default"])({ keyType: "door", lockType: "door" }, ["keyType", "lockType", "junk"], true)).to.eql({ allKeysValid: false, invalidType: false, keyType: { valid: 1, total: 1 }, lockType: { valid: 1, total: 1 }, junk: { valid: 0, total: 1 } }); }); it("should error when dataIsObject = true and passed array", function () { expect((0, _checkData["default"])([{ keyType: "door", lockType: "door" }], ["keyType", "lockType", "junk"], true)).to.eql({ allKeysValid: false, invalidType: true }); }); });