## 概要
[[Bruno]]の`Tests`タブでテストコードを書くとき、補完は出るが[[JavaScript]]なので型安全ではない。[[TypeScript]]の力を使ってテストコードをいじるようのPlaygroundを作成した。
## Playground
```ts
import { expect, assert } from "chai";
import moment from "moment";
// bunのtest関数を使ってもよいが、await漏れを防げないため自作したほうが安全
declare let test: <T, U>(
description: string,
handler: () => T
) => T extends Promise<void> ? Promise<void> : void;
// bruの定義で必要なものを適宜追加する
declare let bru: {
getEnvVar(key: string): string | undefined;
};
declare let res: { status: number; body: any };
// requireは書かない
async function main() {
// main関数の中身をBrunoのコードエディタに貼り付ける
await test("test", async () => {
// TODO: test
});
}
```
[[Chai]]と[[Moment.js]]の型定義インストールが必要。
```console
bun add -D @types/chai @types/moment
```