💡
ライブラリのテストをavaで簡単に作る(TypeScript対応)
以前、viteでJSのライブラリを作る方法を紹介しました。
avaを使うと簡単にテストを追加できるので紹介しておきます。
インストール
ava+TypeScriptに対応するためにts-nodeを追加します。
npm install -D ava ts-node
テストの作成
/tests/hoge.test.ts
を作ります。
import test from 'ava';
const fn = () => 'foo';
test('fn() returns foo', t => {
t.is(fn(), 'foo');
});
設定ファイルを作成
/ava.config.cjs
を作ります。
module.exports = {
extensions: ["ts"],
require: ["ts-node/register"],
};
ちなみにts-node/register/transpile-only
とすると型エラーは無視してくれます。
tsconfig.jsonのmoduleをCommonJSにしておく
ts-nodeで実行するため、tsconfig.json内のmoduleオプションはCommonJSでないといけません。
tsconfig.json
{
"compilerOptions": {
"module": "CommonJS",
},
}
ESMのまま実行するやり方もあるのですが、面倒なので止めました。
CommonJSでもviteのバンドルには影響がないので、基本は大丈夫だと思います。
実行
最後にpackage.jsonに以下を追加し、npm test
を実行して終わりです。
package.json
{
"scripts": {
"test": "ava"
}
}
Discussion