UNPKG

@absolute/change-tracker-node-sdk

Version:

ChangeTracker SDK for Node.js

87 lines (64 loc) 2.85 kB
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}); })