mirror of
https://github.com/jakejarvis/sofa.git
synced 2026-10-16 01:05:42 -04:00
47 lines
1.2 KiB
TypeScript
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);
|
|
});
|
|
});
|