UNPKG

vmagic

Version:

vMagic is a RESTFul framework for NodeJS applications.

139 lines (124 loc) 3.99 kB
/*eslint no-underscore-dangle: ["error", { "allow": ["_getWhereSQL", "_getSelectSQL"] }]*/ "use strict"; import AppModel from "../../src/Model/AppModel.js"; import { expect } from "chai"; let appModel = null; before(function () { const config = { dataSource: "MySQL", host: "127.0.0.1", port: 3306, user: "root", password: "<password>", database: "db", }; appModel = new AppModel(config); }); describe("AppModel Tests.", function () { it("Should validate the required field rules.", function (done) { appModel.validate([ { field1: { rule: "notEmpty", message: "Required field field1.", }, }, { field2: { rule: "notEmpty", message: "Required field field2.", }, }, ]); try { appModel._checkRules({ field1: "", field2: "test" }); } catch (err) { expect("Required field field1.").to.equal(err.message); done(); } }); it("Should validate the maxLength rule.", function (done) { appModel.validate([ { description: { rule: "maxLength", value: 8, message: "The description field requires the max length 8 characters.", }, }, ]); try { appModel._checkRules({ description: "123456789" }); } catch (err) { expect("The description field requires the max length 8 characters.").to.equal(err.message); done(); } }); it("Should validate the minLength rule.", function (done) { appModel.validate([ { description: { rule: "minLength", value: 3, message: "The description field requires the min length 3 characters.", }, }, ]); try { appModel._checkRules({ description: "12" }); } catch (err) { expect("The description field requires the min length 3 characters.").to.equal(err.message); done(); } }); it("Should validate the minValue rule.", function (done) { appModel.validate([ { amount: { rule: "minValue", value: 1, message: "The amount field cannot be less than 1.", }, }, ]); try { appModel._checkRules({ amount: 0 }); } catch (err) { expect("The amount field cannot be less than 1.").to.equal(err.message); done(); } }); it("Should validate the minValue rule with array values.", function (done) { appModel.validate([ { amount: { rule: "minValue", value: 1, message: "The amount field cannot be less than 1.", }, }, ]); try { appModel._checkRules([{ amount: 0 }, { amount: -1 }]); } catch (err) { expect("The amount field cannot be less than 1.").to.equal(err.message); done(); } }); it("Should validate the many rules from property.", function (done) { appModel.validate([ { amount: [ { rule: "notEmpty", message: "Required field amount." }, { rule: "minValue", value: 1, message: "Amount cannot be less than 1." }, ], }, ]); try { appModel._checkRules({ amount: 0 }); } catch (err) { expect("Amount cannot be less than 1.").to.equal(err.message); done(); } }); });