FeedRepository no longer owns favicons, WebSub subscriber lists or the monitoring counters singleton. Each concern gets its own repository (IconRepository, WebSubSubscriptionRepository, CountersRepository), sharing the key schema via feed-keys. KV key strings are unchanged; counters increment policy stays in utils/stats.ts. Co-Authored-By: Claude Opus 4.7 <[email protected]>
19 lines
729 B
TypeScript
19 lines
729 B
TypeScript
import { describe, it, expect } from "vitest";
|
|
import { createMockEnv } from "../test/setup";
|
|
import { IconRepository } from "./icon-repository";
|
|
import type { Env } from "../types";
|
|
|
|
const mockEnv = () => createMockEnv() as unknown as Env;
|
|
|
|
describe("IconRepository", () => {
|
|
it("stores and reads favicons as text or json under the icon: key", async () => {
|
|
const repo = new IconRepository(mockEnv().EMAIL_STORAGE);
|
|
expect(await repo.getText("example.com")).toBeNull();
|
|
await repo.put("example.com", JSON.stringify({ data: null }), 60);
|
|
expect(await repo.getText("example.com")).toBe('{"data":null}');
|
|
expect(await repo.getJson<{ data: null }>("example.com")).toEqual({
|
|
data: null,
|
|
});
|
|
});
|
|
});
|