Files
sofa/packages/core/test/availability.test.ts
T

47 lines
1.2 KiB
TypeScript

import { beforeEach, describe, expect, test, vi } from "vitest";
import { titleAvailability } from "@sofa/db/schema";
import {
clearAllTables,
eq,
insertPlatform,
insertTitle,
insertTitleAvailability,
testDb,
} from "@sofa/test/db";
const { getWatchProviders } = vi.hoisted(() => ({
getWatchProviders: vi.fn<() => Promise<{ results: Record<string, unknown> }>>(async () => ({
results: {},
})),
}));
vi.mock("@sofa/tmdb/client", () => ({
getWatchProviders,
}));
import { refreshAvailability } from "../src/availability";
beforeEach(() => {
clearAllTables();
getWatchProviders.mockImplementation(async () => ({ results: {} }));
});
describe("refreshAvailability", () => {
test("clears stale US offers when TMDB returns no US availability", async () => {
insertTitle({ id: "movie-1", tmdbId: 101, type: "movie", title: "Movie" });
const platformId = insertPlatform({ id: "p-1", tmdbProviderId: 8 });
insertTitleAvailability("movie-1", platformId);
await refreshAvailability("movie-1");
const offers = testDb
.select()
.from(titleAvailability)
.where(eq(titleAvailability.titleId, "movie-1"))
.all();
expect(offers).toHaveLength(0);
});
});