75 lines · 2.1 KB · TypeScript
RawDownload
import { EnvironmentId } from "@t3tools/contracts";import { describe, expect, it } from "vite-plus/test"; import {  attachmentUploadBlockReason,  formatAttachmentUploadProgress,} from "./attachmentUploadState"; const environmentId = EnvironmentId.make("environment-1"); describe("attachmentUploadBlockReason", () => {  it("allows uploaded images from the active environment", () => {    expect(      attachmentUploadBlockReason({        imageIds: ["image-1"],        environmentId,        uploadsByImageId: {          "image-1": {            status: "ready",            environmentId,            attachmentId: "pending-1",          },        },      }),    ).toBeNull();  });   it("blocks images that are missing or uploading", () => {    expect(      attachmentUploadBlockReason({        imageIds: ["image-1", "image-2"],        environmentId,        uploadsByImageId: {          "image-1": { status: "uploading", environmentId, progress: 0.5 },        },      }),    ).toBe("Attachments still uploading");  });   it("asks the user to retry or remove failed uploads", () => {    expect(      attachmentUploadBlockReason({        imageIds: ["image-1"],        environmentId,        uploadsByImageId: {          "image-1": { status: "failed", environmentId, reason: "Upload failed" },        },      }),    ).toBe("Retry or remove the failed attachment");  });   it("does not accept an upload from another environment", () => {    expect(      attachmentUploadBlockReason({        imageIds: ["image-1"],        environmentId,        uploadsByImageId: {          "image-1": {            status: "ready",            environmentId: EnvironmentId.make("environment-2"),            attachmentId: "pending-1",          },        },      }),    ).toBe("Attachment still uploading");  });}); describe("formatAttachmentUploadProgress", () => {  it("formats bounded whole percentages", () => {    expect(formatAttachmentUploadProgress(0.429)).toBe("42%");    expect(formatAttachmentUploadProgress(2)).toBe("100%");    expect(formatAttachmentUploadProgress(Number.NaN)).toBe("0%");  });});