/** * @jest-environment jsdom * */ import { UpdateManager, Store, Fetcher, sym } from "rdflib"; import { createContainerLogic } from "../src/util/containerLogic"; import { alice } from "./helpers/dataSetup"; window.$SolidTestEnvironment = { username: alice.uri } describe("Container", () => { let store let containerLogic beforeEach(() => { fetchMock.resetMocks() store = new Store() store.fetcher = new Fetcher(store, { fetch: fetch }); store.updater = new UpdateManager(store); containerLogic = createContainerLogic(store) }) it("getContainerMembers - When container has some containment triples", async () => { containerHasSomeContainmentTriples() const containerMembers = await containerLogic.getContainerMembers(sym('https://container.com/')); const result = containerMembers.map(oneResult => oneResult.value) expect(result.sort()).toEqual([ 'https://container.com/foo.txt', 'https://container.com/bar/' ].sort()); }); it.skip("getContainerMembers- When container is empty - Resolves to an empty array", async () => { jest.setTimeout(2000) containerIsEmpty(); const result = await containerLogic.getContainerMembers(sym('https://container.com/')); expect(result).toEqual([]); }); function containerIsEmpty() { fetchMock.mockOnceIf( "https://com/", "", // FIXME: https://github.com/jefflau/jest-fetch-mock/issues/189 { headers: { "Content-Type": "text/turtle" }, } ); } function containerHasSomeContainmentTriples() { fetchMock.mockOnceIf( "https://container.com/", "<.> <./foo.txt>, <./bar/> .", { headers: { "Content-Type": "text/turtle" }, } ); } })