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
81 lines (69 loc) • 2.22 kB
JavaScript
import Bunyan from 'bunyan';
const log = Bunyan.createLogger({name: "NestedUsageTest"});
import 'mocha';
import { expect } from 'chai';
import { NONE,
TEST_CLASS,
CLASS_O_MAT,
FIELD,
CHILD_ADDER,
COPY,
STACK,
QUEUE
} from '../src/constants';
import ClassOMat from '../src/class-o-mat';
describe(`Test of creating params with validation.`,
()=> {
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(`test stack ability`,
()=>{
const expected = [10, 20, 30];
classOMat.field('stack').stack().$();
testClass = new (classOMat.$())();
const stack = testClass.stack();
stack.add(10);
stack.add(20);
stack.add(30);
const values = stack.values();
// internal getterSetter for the stack "stack"
expect(typeof testClass.___stack).to.equal('function');
expect(values).to.deep.equal(expected);
const valuesFromNext = [stack.next(), stack.next(), stack.next()];
expect(valuesFromNext).to.deep.equal(expected.reverse());
expect(stack.TYPE).to.equal(STACK)
}
);
it(`test queue ability`,
()=>{
const expected = [30, 20, 10];
classOMat.field('queue').queue().$();
testClass = new (classOMat.$())();
const queue = testClass.queue();
queue.add(10);
queue.add(20);
queue.add(30);
const values = queue.values();
// internal getterSetter for the queue "queue"
expect(typeof testClass.___queue).to.equal('function');
expect(values).to.deep.equal(expected);
const valuesFromNext = [queue.next(), queue.next(), queue.next()];
expect(valuesFromNext).to.deep.equal(expected.reverse());
expect(queue.TYPE).to.equal(QUEUE)
}
);
}
);