UNPKG

class-o-mat

Version:

ALPHA VERSION ONLY: class-o-mats will help to create getter-setter functionality with validations that can be attached to a container class for easier coding. Some basic validations are included. class-o-mats also has the ability to store params as bloc

73 lines (55 loc) 1.93 kB
import Bunyan from 'bunyan'; const log = Bunyan.createLogger({name: "RadioSetTest"}); import 'mocha'; import { expect } from 'chai'; import { NONE, TEST_CLASS, CLASS_O_MAT, FIELD_O_MAT, RADIO_O_MAT, } from '../src/constants'; import ClassOMat from '../src/class-o-mat'; describe(`Test of radioGroup macro`, ()=> { class TestClass { TYPE = 'TEST' } var classOMat; var testClass; it(`create a basic classOMat created class`, ()=>{ classOMat = new ClassOMat(); classOMat.BaseClass(TestClass) .$(); testClass = new (classOMat.$())(); expect(classOMat.TYPE).to.equal(CLASS_O_MAT); expect(testClass.TYPE).to.equal('TEST'); } ); it(`create a RadioOMat`, ()=>{ const radioOMat = classOMat.radio('main'); expect(radioOMat.TYPE).to.equal(RADIO_O_MAT); const mainField = radioOMat.base('drink').default('Martini'); expect(mainField.TYPE).to.equal(FIELD_O_MAT); const stillRadioOMat = mainField.$(); expect(stillRadioOMat.TYPE).to.equal(RADIO_O_MAT); radioOMat.base('drink').default('Martini').$() .option('martini').value('Martini') .option('vodkaGimlet').value('Vodka Gimlet') .option('tomCollins').value('Tom Collins') .option('shirleyTemple').value$('Shirley Temple'); const minion = new (classOMat.$())(); expect(minion.drink()).to.equal('Martini'); minion.vodkaGimlet(); expect(minion.drink()).to.equal('Vodka Gimlet'); minion.tomCollins(); expect(minion.drink()).to.equal('Tom Collins'); minion.shirleyTemple(); expect(minion.drink()).to.equal('Shirley Temple'); minion.martini(); expect(minion.drink()).to.equal('Martini'); } ); } );