X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=test%2Fsrc%2Fdb%2Fintegration.js;h=bd28e92a9124c7ba1d7cb2c0a7bc9d256e10c983;hb=1d571ced238ac89098fa690bd35f5c9f58cb18f2;hp=8d5b61553d24f3b72e4ec6d39fd73534de7617cd;hpb=085b55f507dedc16016bb491d520c556acd60643;p=websub-hub diff --git a/test/src/db/integration.js b/test/src/db/integration.js index 8d5b615..bd28e92 100644 --- a/test/src/db/integration.js +++ b/test/src/db/integration.js @@ -79,6 +79,11 @@ describe('Database Integration', function () { assert(db); }); + it('is healthy', async function () { + const result = await db.healthCheck(); + assert(result); + }); + describe('Authentication', function () { let identifier, credential; beforeEach(function () { @@ -148,12 +153,15 @@ describe('Database Integration', function () { const data = { topicId, leaseSecondsMin: 60, - } + }; await db.context(async(dbCtx) => { - let topic = await db.topicGetByUrl(dbCtx, testData.topicSet.url); + const expected = await db.topicGetByUrl(dbCtx, testData.topicSet.url, true); + expected.leaseSecondsMin = data.leaseSecondsMin; + let topic = await db.topicGetByUrl(dbCtx, testData.topicSet.url, false); await db.topicUpdate(dbCtx, { ...topic, ...data }); topic = await db.topicGetByUrl(dbCtx, testData.topicSet.url); assert.strictEqual(Number(topic.leaseSecondsMin), data.leaseSecondsMin); + assert.deepEqual(topic, expected); }); }); step('gets topic by id', async function () { @@ -220,6 +228,14 @@ describe('Database Integration', function () { assert.strictEqual(Number(topic.contentFetchAttemptsSinceSuccess), 0); }); }); + step('gets publish history', async function () { + await db.context(async (dbCtx) => { + const result = (await db.topicPublishHistory(dbCtx, topicId, 7)) + .map((x) => Number(x)); + const expected = [1, 0, 0, 0, 0, 0, 0]; + assert.deepStrictEqual(result, expected); + }); + }); step('deletes a topic', async function () { await db.context(async (dbCtx) => { const result = await db.topicSet(dbCtx, testData.anotherTopicSet); @@ -328,7 +344,8 @@ describe('Database Integration', function () { step('complete subscription', async function () { const { callback } = testData.subscriptionUpsert; await db.context(async (dbCtx) => { - await db.subscriptionDeliveryComplete(dbCtx, callback, topicId); + const topic = await db.topicGetById(dbCtx, topicId); + await db.subscriptionDeliveryComplete(dbCtx, callback, topicId, topic.contentUpdated); const subscription = await db.subscriptionGetById(dbCtx, subscriptionId); assert.strictEqual(Number(subscription.deliveryAttemptsSinceSuccess), 0); });