diff options
Diffstat (limited to 'test/js/node/zlib/zlib.test.js')
-rw-r--r-- | test/js/node/zlib/zlib.test.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/test/js/node/zlib/zlib.test.js b/test/js/node/zlib/zlib.test.js new file mode 100644 index 000000000..60f3fe23a --- /dev/null +++ b/test/js/node/zlib/zlib.test.js @@ -0,0 +1,39 @@ +import { describe, it, expect } from "bun:test"; +import { gzipSync, deflateSync, inflateSync, gunzipSync } from "bun"; + +describe("zlib", () => { + it("should be able to deflate and inflate", () => { + const data = new TextEncoder().encode("Hello World!".repeat(1)); + const compressed = deflateSync(data); + const decompressed = inflateSync(compressed); + expect(decompressed.join("")).toBe(data.join("")); + }); + + it("should be able to gzip and gunzip", () => { + const data = new TextEncoder().encode("Hello World!".repeat(1)); + const compressed = gzipSync(data); + const decompressed = gunzipSync(compressed); + expect(decompressed.join("")).toBe(data.join("")); + }); +}); + +import * as zlib from "node:zlib"; +import * as fs from "node:fs"; +import * as buffer from "node:buffer"; + +describe("zlib.gunzip", () => { + it("should be able to unzip a Buffer and return an unzipped Buffer", async () => { + const content = fs.readFileSync(import.meta.dir + "/fixture.html.gz"); + return new Promise((resolve, reject) => { + zlib.gunzip(content, (error, data) => { + if (error) { + reject(error); + return; + } + expect(data !== null).toBe(true); + expect(buffer.Buffer.isBuffer(data)).toBe(true); + resolve(true); + }); + }); + }); +}); |