🧪

「【解決策あり】Cloudflare KVを使ったテストが簡単すぎた!🚀🍀VitestとMiniflareを使ってみた結果…」

2024/06/09に公開

最近、CloudflareのKVに興味が出て、テストしてみようと思いました👀

最初は bun でやろうとしたんだけど、こんなエラーが出て詰まっちゃった。

一応最新版にアップデートしてみたけど、結局無理でした💦

なので、普通に vitest を使ってみることにしました。参考にしたのは「Cloudflare WorkersのKVやD1のBindings取り出してテストを書く」という記事です。いろいろ試行錯誤した結果、ちゃんと動いてラッキーでした!✨ 以下がそのコードです。

kv.spec.ts
import { expect, describe, test } from 'vitest'
import { Miniflare } from "miniflare";

describe("cloudflare", async () => {
  const mf = new Miniflare({
    script: `addEventListener("fetch", (event) => {
      event.respondWith(new Response("Hello Miniflare!"));
    })`,
    kvNamespaces: ['KV'],
  });

  const kv = await mf.getKVNamespace('KV');

  test("KV", async () => {
    await kv.put('foo', 'bar');
    expect(await kv.get('foo')).toBe('bar');

    await mf.dispose();
  });
});

テストの実行はこんな感じでやりました。

$ bunx vitest kv.spec.ts --run

 ✓ kv.spec.ts (1)
   ✓ timer (1)
     ✓ KV

 Test Files  1 passed (1)
      Tests  1 passed (1)
   Start at  23:00:36
   Duration  563ms (transform 167ms, setup 0ms, collect 359ms, tests 59ms, environment 0ms, prepare 39ms)

いかがでしたか?Cloudflare WorkersのKVを使ったテスト、思ったより簡単にできましたね!🛠️✨ この情報が少しでもお役に立てれば嬉しいです。もし良ければ「いいね」やコメントでフィードバックいただけると励みになります。次回もお楽しみに!🚀👨‍💻

参考文献

Discussion