1 /* eslint-disable security/detect-object-injection */
4 const sinon
= require('sinon');
12 'authenticationSuccess',
14 'authenticationUpsert',
15 'authenticationUpdateCredential',
16 'authenticationUpdateOTPKey',
19 'subscriptionsByTopicId',
20 'subscriptionCountByTopicUrl',
22 'subscriptionDeleteExpired',
23 'subscriptionDeliveryClaim',
24 'subscriptionDeliveryClaimById',
25 'subscriptionDeliveryComplete',
26 'subscriptionDeliveryGone',
27 'subscriptionDeliveryIncomplete',
29 'subscriptionGetById',
34 'topicFetchClaimById',
36 'topicFetchIncomplete',
37 'topicFetchRequested',
41 'topicGetContentById',
43 'topicPublishHistory',
48 'verificationClaimById',
49 'verificationComplete',
50 'verificationGetById',
51 'verificationIncomplete',
53 'verificationRelease',
55 'verificationValidated',
58 const stubDatabase
= {
59 _implementation: [ ...spyFns
, ...stubFns
],
61 spyFns
.forEach((fn
) => sinon
.spy(stubDatabase
, fn
));
62 stubFns
.forEach((fn
) => sinon
.stub(stubDatabase
, fn
));
64 context: async (fn
) => await
fn({}),
65 transaction: async (dbCtx
, fn
) => await
fn(dbCtx
),
68 stubFns
.forEach((fn
) => {
69 stubDatabase
[fn
] = () => {};
72 module
.exports
= stubDatabase
;