💡

ライブラリのテストをavaで簡単に作る(TypeScript対応)

2022/01/08に公開

以前、viteでJSのライブラリを作る方法を紹介しました。

https://zenn.dev/drop_table_user/articles/7b043bef6cec29

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