aboutsummaryrefslogtreecommitdiff
path: root/test/js/node/zlib/zlib.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/js/node/zlib/zlib.test.js')
-rw-r--r--test/js/node/zlib/zlib.test.js39
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);
+ });
+ });
+ });
+});