Skip to content

Commit 3a4ebe6

Browse files
committed
Update tests and mocks for EnsDbWriterWorker
1 parent 0c65914 commit 3a4ebe6

2 files changed

Lines changed: 72 additions & 12 deletions

File tree

apps/ensindexer/src/lib/ensdb-writer-worker/ensdb-writer-worker.mock.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010

1111
import type { EnsDbClient } from "@/lib/ensdb-client/ensdb-client";
1212
import * as ensDbClientMock from "@/lib/ensdb-client/ensdb-client.mock";
13+
import { EnsDbWriterWorker } from "@/lib/ensdb-writer-worker/ensdb-writer-worker";
1314
import type { IndexingStatusBuilder } from "@/lib/indexing-status-builder";
1415
import type { PublicConfigBuilder } from "@/lib/public-config-builder";
1516

@@ -23,12 +24,27 @@ export function createMockEnsDbClient(
2324
} as unknown as EnsDbClient;
2425
}
2526

27+
export function createMockEnsDbWriterWorker(
28+
ensDbClient: EnsDbClient,
29+
publicConfigBuilder: PublicConfigBuilder,
30+
indexingStatusBuilder: IndexingStatusBuilder,
31+
migrationsDirPath: string = "/mock/migrations",
32+
) {
33+
return new EnsDbWriterWorker(
34+
ensDbClient,
35+
publicConfigBuilder,
36+
indexingStatusBuilder,
37+
migrationsDirPath,
38+
);
39+
}
40+
2641
export function baseEnsDbClient() {
2742
return {
2843
getEnsIndexerPublicConfig: vi.fn().mockResolvedValue(undefined),
2944
upsertEnsDbVersion: vi.fn().mockResolvedValue(undefined),
3045
upsertEnsIndexerPublicConfig: vi.fn().mockResolvedValue(undefined),
3146
upsertIndexingStatusSnapshot: vi.fn().mockResolvedValue(undefined),
47+
migrate: vi.fn().mockResolvedValue(undefined),
3248
};
3349
}
3450

apps/ensindexer/src/lib/ensdb-writer-worker/ensdb-writer-worker.test.ts

Lines changed: 56 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ import {
77
} from "@ensnode/ensnode-sdk";
88

99
import * as ensDbClientMock from "@/lib/ensdb-client/ensdb-client.mock";
10-
import { EnsDbWriterWorker } from "@/lib/ensdb-writer-worker/ensdb-writer-worker";
1110
import type { IndexingStatusBuilder } from "@/lib/indexing-status-builder/indexing-status-builder";
1211
import type { PublicConfigBuilder } from "@/lib/public-config-builder/public-config-builder";
1312

1413
import {
1514
createMockCrossChainSnapshot,
1615
createMockEnsDbClient,
16+
createMockEnsDbWriterWorker,
1717
createMockIndexingStatusBuilder,
1818
createMockOmnichainSnapshot,
1919
createMockPublicConfigBuilder,
@@ -54,7 +54,11 @@ describe("EnsDbWriterWorker", () => {
5454
const publicConfigBuilder = createMockPublicConfigBuilder();
5555
const indexingStatusBuilder = createMockIndexingStatusBuilder(omnichainSnapshot);
5656

57-
const worker = new EnsDbWriterWorker(ensDbClient, publicConfigBuilder, indexingStatusBuilder);
57+
const worker = createMockEnsDbWriterWorker(
58+
ensDbClient,
59+
publicConfigBuilder,
60+
indexingStatusBuilder,
61+
);
5862

5963
// act
6064
await worker.run();
@@ -94,7 +98,11 @@ describe("EnsDbWriterWorker", () => {
9498
const publicConfigBuilder = createMockPublicConfigBuilder(ensDbClientMock.publicConfig);
9599
const indexingStatusBuilder = createMockIndexingStatusBuilder();
96100

97-
const worker = new EnsDbWriterWorker(ensDbClient, publicConfigBuilder, indexingStatusBuilder);
101+
const worker = createMockEnsDbWriterWorker(
102+
ensDbClient,
103+
publicConfigBuilder,
104+
indexingStatusBuilder,
105+
);
98106

99107
// act & assert
100108
await expect(worker.run()).rejects.toThrow("incompatible");
@@ -107,7 +115,11 @@ describe("EnsDbWriterWorker", () => {
107115
const publicConfigBuilder = createMockPublicConfigBuilder();
108116
const indexingStatusBuilder = createMockIndexingStatusBuilder();
109117

110-
const worker = new EnsDbWriterWorker(ensDbClient, publicConfigBuilder, indexingStatusBuilder);
118+
const worker = createMockEnsDbWriterWorker(
119+
ensDbClient,
120+
publicConfigBuilder,
121+
indexingStatusBuilder,
122+
);
111123

112124
// act - first run
113125
await worker.run();
@@ -128,7 +140,11 @@ describe("EnsDbWriterWorker", () => {
128140
} as unknown as PublicConfigBuilder;
129141
const indexingStatusBuilder = createMockIndexingStatusBuilder();
130142

131-
const worker = new EnsDbWriterWorker(ensDbClient, publicConfigBuilder, indexingStatusBuilder);
143+
const worker = createMockEnsDbWriterWorker(
144+
ensDbClient,
145+
publicConfigBuilder,
146+
indexingStatusBuilder,
147+
);
132148

133149
// act & assert
134150
await expect(worker.run()).rejects.toThrow("Network failure");
@@ -145,7 +161,11 @@ describe("EnsDbWriterWorker", () => {
145161
const publicConfigBuilder = createMockPublicConfigBuilder();
146162
const indexingStatusBuilder = createMockIndexingStatusBuilder();
147163

148-
const worker = new EnsDbWriterWorker(ensDbClient, publicConfigBuilder, indexingStatusBuilder);
164+
const worker = createMockEnsDbWriterWorker(
165+
ensDbClient,
166+
publicConfigBuilder,
167+
indexingStatusBuilder,
168+
);
149169

150170
// act & assert
151171
await expect(worker.run()).rejects.toThrow("Database connection lost");
@@ -164,7 +184,11 @@ describe("EnsDbWriterWorker", () => {
164184
const publicConfigBuilder = createMockPublicConfigBuilder(ensDbClientMock.publicConfig);
165185
const indexingStatusBuilder = createMockIndexingStatusBuilder();
166186

167-
const worker = new EnsDbWriterWorker(ensDbClient, publicConfigBuilder, indexingStatusBuilder);
187+
const worker = createMockEnsDbWriterWorker(
188+
ensDbClient,
189+
publicConfigBuilder,
190+
indexingStatusBuilder,
191+
);
168192

169193
// act
170194
await worker.run();
@@ -186,7 +210,11 @@ describe("EnsDbWriterWorker", () => {
186210
const publicConfigBuilder = createMockPublicConfigBuilder();
187211
const indexingStatusBuilder = createMockIndexingStatusBuilder();
188212

189-
const worker = new EnsDbWriterWorker(ensDbClient, publicConfigBuilder, indexingStatusBuilder);
213+
const worker = createMockEnsDbWriterWorker(
214+
ensDbClient,
215+
publicConfigBuilder,
216+
indexingStatusBuilder,
217+
);
190218

191219
// act
192220
await worker.run();
@@ -210,7 +238,11 @@ describe("EnsDbWriterWorker", () => {
210238
const publicConfigBuilder = createMockPublicConfigBuilder();
211239
const indexingStatusBuilder = createMockIndexingStatusBuilder();
212240

213-
const worker = new EnsDbWriterWorker(ensDbClient, publicConfigBuilder, indexingStatusBuilder);
241+
const worker = createMockEnsDbWriterWorker(
242+
ensDbClient,
243+
publicConfigBuilder,
244+
indexingStatusBuilder,
245+
);
214246

215247
// act
216248
await worker.run();
@@ -235,7 +267,11 @@ describe("EnsDbWriterWorker", () => {
235267
const publicConfigBuilder = createMockPublicConfigBuilder();
236268
const indexingStatusBuilder = createMockIndexingStatusBuilder();
237269

238-
const worker = new EnsDbWriterWorker(ensDbClient, publicConfigBuilder, indexingStatusBuilder);
270+
const worker = createMockEnsDbWriterWorker(
271+
ensDbClient,
272+
publicConfigBuilder,
273+
indexingStatusBuilder,
274+
);
239275

240276
// assert - not running initially
241277
expect(worker.isRunning).toBe(false);
@@ -280,7 +316,11 @@ describe("EnsDbWriterWorker", () => {
280316
.mockResolvedValueOnce(validSnapshot),
281317
} as unknown as IndexingStatusBuilder;
282318

283-
const worker = new EnsDbWriterWorker(ensDbClient, publicConfigBuilder, indexingStatusBuilder);
319+
const worker = createMockEnsDbWriterWorker(
320+
ensDbClient,
321+
publicConfigBuilder,
322+
indexingStatusBuilder,
323+
);
284324

285325
// act - run returns immediately
286326
await worker.run();
@@ -337,7 +377,11 @@ describe("EnsDbWriterWorker", () => {
337377
.mockResolvedValueOnce(snapshot2),
338378
} as unknown as IndexingStatusBuilder;
339379

340-
const worker = new EnsDbWriterWorker(ensDbClient, publicConfigBuilder, indexingStatusBuilder);
380+
const worker = createMockEnsDbWriterWorker(
381+
ensDbClient,
382+
publicConfigBuilder,
383+
indexingStatusBuilder,
384+
);
341385

342386
// act
343387
await worker.run();

0 commit comments

Comments
 (0)