Added a Dependency injection model to load the DB asynchronously during the constructor
This commit is contained in:
@ -29,20 +29,20 @@ describe("test class ManageListener", function () {
|
||||
it("should save the inserted objects", async function () {
|
||||
await withFile(async ({ path }) => {
|
||||
// given
|
||||
const ml = new ListenerRssAggregator(path);
|
||||
await ml.load();
|
||||
const ml = new ListenerRssAggregator(
|
||||
await ListenerRssAggregator.instantiateAggregator(path)
|
||||
);
|
||||
|
||||
for (const item of dataWithoutHistory) await ml.registerListener(item);
|
||||
await ml.saveOverride(dataWithoutHistory);
|
||||
|
||||
// when
|
||||
ml.save();
|
||||
const ml_bis = new ListenerRssAggregator(path);
|
||||
await ml_bis.load();
|
||||
|
||||
const ml_bis = new ListenerRssAggregator(
|
||||
await ListenerRssAggregator.instantiateAggregator(path)
|
||||
);
|
||||
// expect
|
||||
expect(
|
||||
ml_bis.listenerArray.map((listener) => listener.getProperty())
|
||||
).to.be.eql(dataWithoutHistory);
|
||||
expect(await ml_bis.getAllConfigs()).to.have.deep.members(
|
||||
dataWithoutHistory
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
@ -60,8 +60,9 @@ describe("test class ManageListener", function () {
|
||||
await withFile(async ({ path }) => {
|
||||
// given
|
||||
const clock = sinon.useFakeTimers();
|
||||
const ml = new ListenerRssAggregator(path);
|
||||
await ml.load();
|
||||
const ml = new ListenerRssAggregator(
|
||||
await ListenerRssAggregator.instantiateAggregator(path)
|
||||
);
|
||||
for (const item of dataWithoutHistory) await ml.registerListener(item);
|
||||
|
||||
const updateSpy = sinon.spy();
|
||||
@ -89,12 +90,9 @@ describe("test class ManageListener", function () {
|
||||
|
||||
// here we're testing the first call
|
||||
// when
|
||||
await Promise.all([
|
||||
events.once(ml.listenerArray[0], "update"),
|
||||
events.once(ml.listenerArray[1], "update"),
|
||||
events.once(ml.listenerArray[2], "update"),
|
||||
]);
|
||||
|
||||
await events.once(ml, "update");
|
||||
await events.once(ml, "update");
|
||||
await events.once(ml, "update");
|
||||
//expect
|
||||
expect(updateSpy).to.have.been.calledThrice;
|
||||
expect(newEntriesSpy).to.have.been.calledThrice;
|
||||
@ -106,7 +104,7 @@ describe("test class ManageListener", function () {
|
||||
|
||||
// when
|
||||
await clock.tickAsync(10000);
|
||||
await events.once(ml.listenerArray[0], "update");
|
||||
await events.once(ml, "update");
|
||||
|
||||
//expect
|
||||
expect(updateSpy).to.have.been.calledOnce;
|
||||
@ -118,10 +116,8 @@ describe("test class ManageListener", function () {
|
||||
|
||||
// when
|
||||
await clock.tickAsync(10000);
|
||||
await Promise.all([
|
||||
events.once(ml.listenerArray[0], "update"),
|
||||
events.once(ml.listenerArray[1], "update"),
|
||||
]);
|
||||
await events.once(ml, "update");
|
||||
await events.once(ml, "update");
|
||||
|
||||
//expect
|
||||
expect(updateSpy).to.have.been.calledTwice;
|
||||
@ -133,10 +129,8 @@ describe("test class ManageListener", function () {
|
||||
|
||||
// when
|
||||
await clock.tickAsync(10000);
|
||||
await Promise.all([
|
||||
events.once(ml.listenerArray[0], "update"),
|
||||
events.once(ml.listenerArray[2], "update"),
|
||||
]);
|
||||
await events.once(ml, "update");
|
||||
await events.once(ml, "update");
|
||||
|
||||
//expect
|
||||
expect(updateSpy).to.have.been.calledTwice;
|
||||
@ -150,8 +144,9 @@ describe("test class ManageListener", function () {
|
||||
await withFile(async ({ path }) => {
|
||||
// given
|
||||
const clock = sinon.useFakeTimers();
|
||||
const ml = new ListenerRssAggregator(path);
|
||||
await ml.load();
|
||||
const ml = new ListenerRssAggregator(
|
||||
await ListenerRssAggregator.instantiateAggregator(path)
|
||||
);
|
||||
for (const item of dataWithHistory) await ml.registerListener(item);
|
||||
|
||||
const updateSpy = sinon.spy();
|
||||
@ -179,11 +174,9 @@ describe("test class ManageListener", function () {
|
||||
|
||||
// here we're testing the first call
|
||||
// when
|
||||
await Promise.all([
|
||||
events.once(ml.listenerArray[0], "update"),
|
||||
events.once(ml.listenerArray[1], "update"),
|
||||
events.once(ml.listenerArray[2], "update"),
|
||||
]);
|
||||
await events.once(ml, "update");
|
||||
await events.once(ml, "update");
|
||||
await events.once(ml, "update");
|
||||
|
||||
//expect
|
||||
expect(updateSpy).to.have.been.calledThrice;
|
||||
@ -210,7 +203,7 @@ describe("test class ManageListener", function () {
|
||||
|
||||
// when
|
||||
await clock.tickAsync(10000);
|
||||
await events.once(ml.listenerArray[0], "update");
|
||||
await events.once(ml, "update");
|
||||
|
||||
//expect
|
||||
expect(updateSpy).to.have.been.calledOnce;
|
||||
@ -223,10 +216,8 @@ describe("test class ManageListener", function () {
|
||||
|
||||
// when
|
||||
await clock.tickAsync(10000);
|
||||
await Promise.all([
|
||||
events.once(ml.listenerArray[0], "update"),
|
||||
events.once(ml.listenerArray[1], "update"),
|
||||
]);
|
||||
await events.once(ml, "update");
|
||||
await events.once(ml, "update");
|
||||
|
||||
//expect
|
||||
expect(updateSpy).to.have.been.calledTwice;
|
||||
@ -239,10 +230,8 @@ describe("test class ManageListener", function () {
|
||||
|
||||
// when
|
||||
await clock.tickAsync(10000);
|
||||
await Promise.all([
|
||||
events.once(ml.listenerArray[0], "update"),
|
||||
events.once(ml.listenerArray[2], "update"),
|
||||
]);
|
||||
await events.once(ml, "update");
|
||||
await events.once(ml, "update");
|
||||
|
||||
//expect
|
||||
expect(updateSpy).to.have.been.calledTwice;
|
||||
|
Reference in New Issue
Block a user