Automerge backed Markdown editor for the Atmosphere
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364/** * Tests for getBlobArrayBuffer utility function. * * Obsidian API: `function getBlobArrayBuffer(blob: Blob): Promise<ArrayBuffer>` */import { describe, it, expect } from 'vitest'import { getBlobArrayBuffer } from '../obsidian-stubs'
describe('getBlobArrayBuffer', () => { it('returns empty ArrayBuffer for empty Blob', async () => { const blob = new Blob([]) const buffer = await getBlobArrayBuffer(blob) expect(buffer.byteLength).toBe(0) })
it('converts text Blob to ArrayBuffer', async () => { const text = 'Hello, World!' const blob = new Blob([text], { type: 'text/plain' }) const buffer = await getBlobArrayBuffer(blob) const decoded = new TextDecoder().decode(buffer) expect(decoded).toBe(text) })
it('converts binary Blob to ArrayBuffer', async () => { const bytes = new Uint8Array([0xde, 0xad, 0xbe, 0xef]) const blob = new Blob([bytes]) const buffer = await getBlobArrayBuffer(blob) const result = new Uint8Array(buffer) expect(result.length).toBe(4) expect(result[0]).toBe(0xde) expect(result[1]).toBe(0xad) expect(result[2]).toBe(0xbe) expect(result[3]).toBe(0xef) })
it('handles multi-part Blob', async () => { const part1 = new Uint8Array([0x01, 0x02]) const part2 = new Uint8Array([0x03, 0x04]) const blob = new Blob([part1, part2]) const buffer = await getBlobArrayBuffer(blob) const result = new Uint8Array(buffer) expect(result.length).toBe(4) expect(result[0]).toBe(0x01) expect(result[1]).toBe(0x02) expect(result[2]).toBe(0x03) expect(result[3]).toBe(0x04) })
it('preserves exact byte values', async () => { // Test all possible byte values in a range const bytes = new Uint8Array(256) for (let i = 0; i < 256; i++) { bytes[i] = i } const blob = new Blob([bytes]) const buffer = await getBlobArrayBuffer(blob) const result = new Uint8Array(buffer) expect(result.length).toBe(256) for (let i = 0; i < 256; i++) { expect(result[i]).toBe(i) } })})