Add external triangle scene GLTF and update file import handling
This commit is contained in:
@@ -4,21 +4,31 @@ import { createProjectAssetStorageKey } from "../../src/assets/project-assets";
|
||||
import { createInMemoryProjectAssetStorage } from "../../src/assets/project-asset-storage";
|
||||
|
||||
describe("project asset storage", () => {
|
||||
it("stores, clones, and deletes binary asset payloads", async () => {
|
||||
it("stores, clones, and deletes binary asset file packages", async () => {
|
||||
const storage = createInMemoryProjectAssetStorage();
|
||||
const storageKey = createProjectAssetStorageKey("asset-model-triangle");
|
||||
const bytes = new Uint8Array([0, 1, 2, 3, 4]).buffer;
|
||||
const sidecarBytes = new Uint8Array([9, 8, 7]).buffer;
|
||||
|
||||
await storage.putAsset(storageKey, {
|
||||
bytes,
|
||||
mimeType: "model/gltf+json"
|
||||
files: {
|
||||
"tiny-triangle.gltf": {
|
||||
bytes,
|
||||
mimeType: "model/gltf+json"
|
||||
},
|
||||
"triangle.bin": {
|
||||
bytes: sidecarBytes,
|
||||
mimeType: "application/octet-stream"
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const loadedAsset = await storage.getAsset(storageKey);
|
||||
|
||||
expect(loadedAsset).not.toBeNull();
|
||||
expect(loadedAsset?.mimeType).toBe("model/gltf+json");
|
||||
expect(Array.from(new Uint8Array(loadedAsset?.bytes ?? new ArrayBuffer(0)))).toEqual([0, 1, 2, 3, 4]);
|
||||
expect(Object.keys(loadedAsset?.files ?? {})).toEqual(["tiny-triangle.gltf", "triangle.bin"]);
|
||||
expect(Array.from(new Uint8Array(loadedAsset?.files["tiny-triangle.gltf"].bytes ?? new ArrayBuffer(0)))).toEqual([0, 1, 2, 3, 4]);
|
||||
expect(Array.from(new Uint8Array(loadedAsset?.files["triangle.bin"].bytes ?? new ArrayBuffer(0)))).toEqual([9, 8, 7]);
|
||||
|
||||
await storage.deleteAsset(storageKey);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user