From 8d6c1919785d1a82bc88ae7d5d9ecb1ab5d48dd9 Mon Sep 17 00:00:00 2001 From: Kohei Watanabe Date: Tue, 3 Sep 2024 09:50:43 +0900 Subject: [PATCH] test with deno and bun --- .github/workflows/test.yml | 24 ++++++++++++++++++++- README.md | 3 +++ runtime/bun/Integrity-metadata.test.ts | 12 +++++++++++ runtime/bun/bun.lockb | Bin 0 -> 3124 bytes runtime/bun/package.json | 8 +++++++ runtime/bun/tsconfig.json | 27 ++++++++++++++++++++++++ runtime/deno/deno.json | 8 +++++++ runtime/deno/deno.lock | 26 +++++++++++++++++++++++ runtime/deno/integrity-metadata.test.ts | 13 ++++++++++++ 9 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 runtime/bun/Integrity-metadata.test.ts create mode 100755 runtime/bun/bun.lockb create mode 100644 runtime/bun/package.json create mode 100644 runtime/bun/tsconfig.json create mode 100644 runtime/deno/deno.json create mode 100644 runtime/deno/deno.lock create mode 100644 runtime/deno/integrity-metadata.test.ts diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 92adfbf..c6ea761 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,7 +1,7 @@ name: test on: push jobs: - nodejs: + node: name: Node.js v${{ matrix.node-version }} strategy: matrix: @@ -18,3 +18,25 @@ jobs: cache: npm - run: npm ci - run: npm test + deno: + name: Deno + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + - uses: denoland/setup-deno@v1 + with: + deno-version: latest + - run: deno task test + working-directory: runtime/deno + bun: + name: Bun + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + - uses: oven-sh/setup-bun@v2 + with: + bun-version: latest + - run: bun test + working-directory: runtime/bun diff --git a/README.md b/README.md index c6020e0..1290d86 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,9 @@ yarn add websri # pnpm pnpm install websri +# deno +deno add npm:websri + # bun bun install websri ``` diff --git a/runtime/bun/Integrity-metadata.test.ts b/runtime/bun/Integrity-metadata.test.ts new file mode 100644 index 0000000..2016569 --- /dev/null +++ b/runtime/bun/Integrity-metadata.test.ts @@ -0,0 +1,12 @@ +import { expect, test } from "bun:test"; +import { createIntegrityMetadata } from "../../src/index.ts"; + +test("createIntegrityMetadata()", async () => { + const res = new Response("Hello, world!"); + const data = await res.arrayBuffer(); + const integrityMetadata = await createIntegrityMetadata("sha256", data); + + expect(integrityMetadata.toString()).toBe( + "sha256-MV9b23bQeMQ7isAGTkoBZGErH853yGk0W/yUx1iU7dM=", + ); +}); diff --git a/runtime/bun/bun.lockb b/runtime/bun/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..4a82f7ce6aa1daf12b704365c520257289f6c4ff GIT binary patch literal 3124 zcmY#Z)GsYA(of3F(@)JSQ%EY!;{sycoc!eMw9K4T-L(9o+{6;yG6OCq1_p-YkjVMM zOSD}?rB3L4{Fa=OP0|OV3 z1;h=WK$;UsPXp3G!y0Y_X&xZm3l#@aV09oG1WvJO?)5fk{8IfU{cMNOYo&?$QN3zg zZ7n(TZH~PPoV9!L=^2&tvo2-MS8dSIZcR;MglHq11cd?!hybxE&|M(&Kp5szAQLZu z=??;`vPRM`g;y6s5~hD4P{<0XALI^T_%QGxl;CB-^gjoxas=vU1=1k9K{PP{re6c- zX%nD+kiS8CL2e)h!1QMT_1i%02kB=aMl)0m$P5q$8o|H}WrNHB@!5bF1VA*1kDSoR z)Ax`6AIKnT0-$+}3=ngXjb^dw5fx?X->0e5rS>9U`%ctleS=`({=2~+uduY=EVVDw zTwj(KR$uU@WcBZvlg&22;*ZHJF*+i&=ccW{!is{tS4ifU0v0b)SE8_o+GySh5w$E67{`@WeC32n7pPs&$_||0i+^mDHyS_h|6ecA6 z>UBl-!G0ujLE#MpEE`WAetso0!M^lZg|;Kpu?haWf;L{UH}6W#NbC`rb*E&>A+rm` z^>(XEG86+1jxtU>Tx{1rBh!T0ZW?QOVU+ePBy*ADpG7U8$NKrg5+|-zfrXP7$%i$F zgk>1NJ!*Z%{^8fMlGWxbHYz>~nCf>{MSpM0jL1sX82yf#O_LPAKiuyvn)a${36i6+!<<%^U4x@>cJc`m|8TghfgHd_i~zu?k)yB*H;PdIUVQq=dbyNvCz31tU(#YERm z7R>#+?^;~M!BS_f4ri4sh7*y@g{3o4Sg;t~+V<^GGlLud+m*>~-2PTm-dleA;F=lq z^76&=9Cw8uY;kXU9shC4DZxvX$Br8Won_h1sqnjYUVM@Cl$+Pt+kXPh9Vh?`cNk5M zI|k7C_{9*r0Uy0cs!zv=ZX7DK$2-1M0(J0w}&fUCH>Ex;IOs%M~Q z02T$;_^_IugDEGmB(=DNfdST5fYtp>jD~uKdPZgp46xP$toCPOth3NF)iX3;fVC@N z?F68Vk%69}k)8#tr2%U>0A);phUuAL(W3?N7()lthbQ1ZMUK+q)ZDVvB0blNlGLKS z#GK%gqRhN>I|V~TAXvZyp`dV5UB> z)t6CHQc!HAuV0j!o>^Q{RH>I&kegMkmtT~wk5Htq3sR~J3TX?ylJqJN2W$c!-EcKf z&0zIlBY@!xGy`gSc`=lcm!Fb~$2cTaKm$RFbs=$RXaX{=G%qDHIg_BHkd* { + const res = new Response("Hello, world!"); + const data = await res.arrayBuffer(); + const integrityMetadata = await createIntegrityMetadata("sha256", data); + + assertEquals( + integrityMetadata.toString(), + "sha256-MV9b23bQeMQ7isAGTkoBZGErH853yGk0W/yUx1iU7dM=", + ); +});