Skip to content

Commit

Permalink
Fix: Fix flaky pruneMessagesJob test (#1402)
Browse files Browse the repository at this point in the history
  • Loading branch information
adityapk00 committed Sep 19, 2023
1 parent 8cd6b59 commit e8b2daf
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 3 deletions.
5 changes: 5 additions & 0 deletions .changeset/four-crabs-reflect.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@farcaster/hubble": patch
---

fix: Fix flaky pruneMessagesJob test
18 changes: 15 additions & 3 deletions apps/hubble/src/storage/jobs/pruneMessagesJob.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@ import { jestRocksDB } from "../db/jestUtils.js";
import Engine from "../engine/index.js";
import { seedSigner } from "../engine/seed.js";
import { PruneMessagesJobScheduler } from "./pruneMessagesJob.js";
import { FARCASTER_EPOCH, getFarcasterTime } from "@farcaster/core";
import { bytesCompare, FARCASTER_EPOCH, getFarcasterTime } from "@farcaster/core";
import { setReferenceDateForTest } from "../../utils/versions.js";
import { makeTsHash } from "../../storage/db/message.js";

const db = jestRocksDB("jobs.pruneMessagesJob.test");

Expand All @@ -34,6 +35,15 @@ const seedMessagesFromTimestamp = async (engine: Engine, fid: number, signer: Ed
{ transient: { signer } },
);

// Sort the proofs by tsHash, they are inserted in such a way that every insert succeeds (not pruned)
// because the earlier ones will get pruned
proofs.sort((a, b) =>
bytesCompare(
makeTsHash(a.data.timestamp, a.hash)._unsafeUnwrap(),
makeTsHash(b.data.timestamp, b.hash)._unsafeUnwrap(),
),
);

return engine.mergeMessages([castAdd, reactionAdd, linkAdd, ...proofs]);
};

Expand Down Expand Up @@ -74,14 +84,16 @@ describe("doJobs", () => {
const signer1 = Factories.Ed25519Signer.build();
const signer1Key = (await signer1.getSignerKey())._unsafeUnwrap();
await seedSigner(engine, fid1, signer1Key);
await seedMessagesFromTimestamp(engine, fid1, signer1, currentTime);
let results = await seedMessagesFromTimestamp(engine, fid1, signer1, currentTime);
results.forEach((r) => expect(r.isOk()).toBeTruthy());

const fid2 = Factories.Fid.build();

const signer2 = Factories.Ed25519Signer.build();
const signer2Key = (await signer2.getSignerKey())._unsafeUnwrap();
await seedSigner(engine, fid2, signer2Key);
await seedMessagesFromTimestamp(engine, fid2, signer2, currentTime);
results = await seedMessagesFromTimestamp(engine, fid2, signer2, currentTime);
results.forEach((r) => expect(r.isOk()).toBeTruthy());

for (const fid of [fid1, fid2]) {
const casts = await engine.getCastsByFid(fid);
Expand Down

0 comments on commit e8b2daf

Please sign in to comment.