@absolute/change-tracker-node-sdk
Version:
ChangeTracker SDK for Node.js
87 lines (64 loc) • 2.85 kB
JavaScript
const modelTracker = require('../src/modelTracker');
const {Row, Field, Table} = require('../src/models');
test('create field model', () => {
let name = 'name';
let prevValue = 'oldValue';
let nextValue = 'newValue';
let model = new Field(name, prevValue, nextValue);
expect(model).not.toBeNull();
expect(model).toMatchObject({name, prevValue, nextValue, f: name, p: prevValue, n: nextValue});
const stringifiedModel = model.toString();
expect(stringifiedModel).toContain(name);
expect(stringifiedModel).toContain(prevValue)
expect(stringifiedModel).toContain(name)
})
test('create row model and check if contains data', () => {
let key = 'test key';
let model = new Row(key);
expect(model).not.toBeNull();
expect(model.key).toBe(key);
expect(model.tables).toBeInstanceOf(Array)
expect(model.fields).toBeInstanceOf(Array)
model.fields.push(new Field('testField', 0, 1));
expect(model.isFilled()).toBeTruthy();
const subRow = new Row('test sub key')
subRow.fields.push(new Field('testSubField', 'a', 'b'));
model.fields = [];
model.tables.push(new Table('testTable', [subRow]));
expect(model.isFilled()).toBeTruthy();
})
test('create table model from constructor', () => {
let tableName = 'tableName';
let model = new Table(tableName);
expect(model).not.toBeNull();
expect(model.name).toBe(tableName);
expect(model.rows).toBeInstanceOf(Array)
expect(model.rows.length).toBe(0);
let rowKey = 'testRowKey';
model = new Table(tableName, [new Row(rowKey)]);
expect(model).not.toBeNull();
expect(model.name).toBe(tableName);
expect(model.rows).toBeInstanceOf(Array)
expect(model.rows.length).toBe(1);
expect(model.rows[0]).toMatchObject({key: rowKey});
})
test('create table model from static method', () => {
let tableName = 'tableName';
let rowKey = 'testRowKey';
let username = 'testUsername';
let ipAddress = '127.0.0.1';
//pass object instead of an array should return a null value
let model = Table.createTable(new Row(rowKey), tableName, username, ipAddress);
expect(model).toBeNull();
//pass anything else should return null
model = Table.createTable(rowKey, tableName, username, ipAddress);
expect(model).toBeNull();
model = Table.createTable([new Row(rowKey)], tableName, username, ipAddress);
expect(model).not.toBeNull();
expect(model).toMatchObject({name: tableName, user: username, ip: ipAddress});
expect(model.odt).toBeInstanceOf(Date)
expect(model.operationDateTime).toBeInstanceOf(Date)
expect(model.rows).toBeInstanceOf(Array)
expect(model.rows.length).toBe(1);
expect(model.rows[0]).toMatchObject({key: rowKey});
})