94 lines
2.8 KiB
TypeScript
94 lines
2.8 KiB
TypeScript
|
import assert from 'assert/strict';
|
||
|
import {BookshelfClickEventRepository, ClickEvent} from '../src';
|
||
|
import sinon from 'sinon';
|
||
|
|
||
|
describe('BookshelfClickEventRepository', function () {
|
||
|
afterEach(function () {
|
||
|
sinon.restore();
|
||
|
});
|
||
|
|
||
|
it('toPrimitive', async function () {
|
||
|
const repository = new BookshelfClickEventRepository({} as any, {
|
||
|
sentry: undefined
|
||
|
});
|
||
|
assert.deepEqual(
|
||
|
repository.toPrimitive(ClickEvent.create({
|
||
|
id: 'id',
|
||
|
recommendationId: 'recommendationId',
|
||
|
memberId: 'memberId',
|
||
|
createdAt: new Date('2021-01-01')
|
||
|
})),
|
||
|
{
|
||
|
id: 'id',
|
||
|
recommendation_id: 'recommendationId',
|
||
|
member_id: 'memberId',
|
||
|
created_at: new Date('2021-01-01')
|
||
|
}
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('modelToEntity', async function () {
|
||
|
const repository = new BookshelfClickEventRepository({} as any, {
|
||
|
sentry: undefined
|
||
|
});
|
||
|
const entity = repository.modelToEntity({
|
||
|
id: 'id',
|
||
|
get: (key: string) => {
|
||
|
return {
|
||
|
recommendation_id: 'recommendationId',
|
||
|
member_id: 'memberId',
|
||
|
created_at: new Date('2021-01-01')
|
||
|
}[key];
|
||
|
}
|
||
|
} as any);
|
||
|
|
||
|
assert.deepEqual(
|
||
|
entity,
|
||
|
ClickEvent.create({
|
||
|
id: 'id',
|
||
|
recommendationId: 'recommendationId',
|
||
|
memberId: 'memberId',
|
||
|
createdAt: new Date('2021-01-01')
|
||
|
})
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('modelToEntity returns null on errors', async function () {
|
||
|
const captureException = sinon.stub();
|
||
|
const repository = new BookshelfClickEventRepository({} as any, {
|
||
|
sentry: {
|
||
|
captureException
|
||
|
}
|
||
|
});
|
||
|
|
||
|
sinon.stub(ClickEvent, 'create').throws(new Error('test'));
|
||
|
const entity = repository.modelToEntity({
|
||
|
id: 'id',
|
||
|
get: (key: string) => {
|
||
|
return {
|
||
|
recommendation_id: 'recommendationId',
|
||
|
member_id: 'memberId',
|
||
|
created_at: new Date('2021-01-01')
|
||
|
}[key];
|
||
|
}
|
||
|
} as any);
|
||
|
|
||
|
assert.deepEqual(
|
||
|
entity,
|
||
|
null
|
||
|
);
|
||
|
sinon.assert.calledOnce(captureException);
|
||
|
});
|
||
|
|
||
|
it('getFieldToColumnMap returns', async function () {
|
||
|
const captureException = sinon.stub();
|
||
|
const repository = new BookshelfClickEventRepository({} as any, {
|
||
|
sentry: {
|
||
|
captureException
|
||
|
}
|
||
|
});
|
||
|
|
||
|
assert.ok(repository.getFieldToColumnMap());
|
||
|
});
|
||
|
});
|