UNPKG

@absolute/change-tracker-node-sdk

Version:

ChangeTracker SDK for Node.js

67 lines (48 loc) 2.8 kB
const {Table, Row} = require('../src/models'); const {makeChangeTrackerService} = require('../src/changeTrackerService'); test('use changeTrackerService.store to perform diff and store data', async () => { const generateToken = () => 'TESTTOKEN'; const store = () => ({ok: true}); const diff = () => (new Row('diffModel')); const createTable = () => (new Table()); const changeTrackerService = makeChangeTrackerService({generateToken, store, diff, createTable}) const service = changeTrackerService('test', 'POSTSECRET', 10); const result = await service.store('ACCOUNTTEST', 'currentTestUser', 'test row', new Row('prevModel'), new Row('nextModel'), '127.0.0.1'); expect(result).toMatchObject({ok: true}); }) test('changeTrackerService.store returns error in case of diff returns null', async () => { const generateToken = () => 'TESTTOKEN'; const store = () => ({ok: true}); const diff = () => null; const createTable = () => (new Table()); const changeTrackerService = makeChangeTrackerService({generateToken, store, diff, createTable}) const service = changeTrackerService('test', 'POSTSECRET'); const result = await service.store('ACCOUNTTEST', 'currentTestUser', 'test row', new Row('prevModel'), new Row('nextModel'), '127.0.0.1'); expect(result).toMatchObject({ok: false}); console.log(result.errorText) }) test('changeTrackerService.store propagates remoteClient error', async () => { const generateToken = () => 'TESTTOKEN'; const remoteClientResponse = {ok: false, errorText: 'TEST ERROR TEXT'}; const store = () => remoteClientResponse; const diff = () => new Row('diffModel'); const createTable = () => (new Table()); const changeTrackerService = makeChangeTrackerService({generateToken, store, diff, createTable}) const service = changeTrackerService('test', 'GETSECRET','POSTSECRET'); const result = await service.store('ACCOUNTTEST', 'currentTestUser', 'test row', new Row('prevModel'), new Row('nextModel'), '127.0.0.1'); expect(result).toMatchObject(remoteClientResponse); }) test('check changeTrackerService.getToken arguments', async () => { const generateToken = (...args) => args.reduce((p, c) => p + '-' + c); const defaultMockLambda = () => null; const changeTrackerService = makeChangeTrackerService({ generateToken, store: defaultMockLambda, diff: defaultMockLambda, createTable: defaultMockLambda }) const service = changeTrackerService('test', 'GETSECRET', 'POSTSECRET'); const result = service.getToken('TABLENAME', 'ROWKEY'); const resultString ='GETSECRET-TABLENAME-ROWKEY-5'; expect(result).toBe(resultString); })