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
JavaScript
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');
}
);
}
);