import { expect, test, describe, assert } from "vitest"; import { downloadFile } from "./download-file"; import { deleteRepo } from "./delete-repo"; import { createRepo } from "./create-repo"; import { TEST_ACCESS_TOKEN, TEST_HUB_URL, TEST_USER } from "../test/consts"; import { insecureRandomString } from "../utils/insecureRandomString"; describe("downloadFile", () => { test("should download regular file", async () => { const blob = await downloadFile({ repo: { type: "model", name: "openai-community/gpt2", }, path: "README.md", }); const text = await blob?.slice(0, 1000).text(); assert( text?.includes(`--- language: en tags: - exbert license: mit --- # GPT-2 Test the whole generation capabilities here: https://transformer.huggingface.co/doc/gpt2-large`) ); }); test("should downoad xet file", async () => { const blob = await downloadFile({ repo: { type: "model", name: "celinah/xet-experiments", }, path: "large_text.txt", }); const text = await blob?.slice(0, 100).text(); expect(text).toMatch("this is a text file.".repeat(10).slice(0, 100)); }); test("should download private file", async () => { const repoName = `datasets/${TEST_USER}/TEST-${insecureRandomString()}`; const result = await createRepo({ accessToken: TEST_ACCESS_TOKEN, hubUrl: TEST_HUB_URL, private: true, repo: repoName, files: [{ path: ".gitattributes", content: new Blob(["*.html filter=lfs diff=lfs merge=lfs -text"]) }], }); assert.deepStrictEqual(result, { repoUrl: `${TEST_HUB_URL}/${repoName}`, }); try { const blob = await downloadFile({ repo: repoName, path: ".gitattributes", hubUrl: TEST_HUB_URL, accessToken: TEST_ACCESS_TOKEN, }); assert(blob, "File should be found"); const text = await blob?.text(); assert.strictEqual(text, "*.html filter=lfs diff=lfs merge=lfs -text"); } finally { await deleteRepo({ repo: repoName, hubUrl: TEST_HUB_URL, accessToken: TEST_ACCESS_TOKEN, }); } }); });