From 6758bf15e980413add0003141ea79027820893a5 Mon Sep 17 00:00:00 2001 From: Trivikram Kamat <16024985+trivikr@users.noreply.github.com> Date: Mon, 16 Dec 2024 21:50:30 +0000 Subject: [PATCH] chore(crc64-nvme-crt): add tests --- packages/crc64-nvme-crt/package.json | 1 + .../crc64-nvme-crt/src/CrtCrc64Nvme.spec.ts | 22 +++++++++++++++++++ packages/crc64-nvme-crt/vitest.config.ts | 8 +++++++ yarn.lock | 1 + 4 files changed, 32 insertions(+) create mode 100644 packages/crc64-nvme-crt/src/CrtCrc64Nvme.spec.ts create mode 100644 packages/crc64-nvme-crt/vitest.config.ts diff --git a/packages/crc64-nvme-crt/package.json b/packages/crc64-nvme-crt/package.json index 2c206a2aa5ff0..821ff0ac060ab 100644 --- a/packages/crc64-nvme-crt/package.json +++ b/packages/crc64-nvme-crt/package.json @@ -27,6 +27,7 @@ "tslib": "^2.6.2" }, "devDependencies": { + "@smithy/util-base64": "^3.0.0", "@tsconfig/recommended": "1.0.1", "concurrently": "7.0.0", "downlevel-dts": "0.10.1", diff --git a/packages/crc64-nvme-crt/src/CrtCrc64Nvme.spec.ts b/packages/crc64-nvme-crt/src/CrtCrc64Nvme.spec.ts new file mode 100644 index 0000000000000..6c71ae9ca9447 --- /dev/null +++ b/packages/crc64-nvme-crt/src/CrtCrc64Nvme.spec.ts @@ -0,0 +1,22 @@ +import { toBase64 } from "@smithy/util-base64"; +import { describe, expect, it } from "vitest"; + +import { CrtCrc64Nvme } from "./CrtCrc64Nvme"; + +describe(CrtCrc64Nvme.name, () => { + it("should throw an error if digest is called before update", async () => { + const crc64 = new CrtCrc64Nvme(); + await expect(crc64.digest()).rejects.toThrowError("No data provided to checksum"); + }); + + it.each([ + ["", "AAAAAAAAAAA="], + ["abc", "BeXKuz/B+us="], + ["Hello world", "OOJZ0D8xKts="], + ])(`crc64-nvme for "%s" is "%s"`, async (input, output) => { + const crc64 = new CrtCrc64Nvme(); + crc64.update(new TextEncoder().encode(input)); + const digest = await crc64.digest(); + expect(toBase64(digest)).toEqual(output); + }); +}); diff --git a/packages/crc64-nvme-crt/vitest.config.ts b/packages/crc64-nvme-crt/vitest.config.ts new file mode 100644 index 0000000000000..82a0517935eb0 --- /dev/null +++ b/packages/crc64-nvme-crt/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + include: ["**/*.spec.ts"], + environment: "node", + }, +}); diff --git a/yarn.lock b/yarn.lock index 9f5f91f2d9ab7..e0923d2224004 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23252,6 +23252,7 @@ __metadata: dependencies: "@aws-sdk/crt-loader": "npm:*" "@aws-sdk/types": "npm:*" + "@smithy/util-base64": "npm:^3.0.0" "@smithy/util-utf8": "npm:^3.0.0" "@tsconfig/recommended": "npm:1.0.1" concurrently: "npm:7.0.0"